0

我正在修改按计划将实时数据库复制到测试数据库的库运行手册。它在第一关就失败了;验证和选择相关的 Azure 订阅

运行手册如下所示:

$Cred = Get-AutomationPSCredential -Name 'automationCredential'

Write-Output "UN: $($Cred.Username)"

Add-AzureAccount -Credential $Cred

我使用门户凭据刀片创建了一个名为“automationCredential”的凭据。对于用户名和密码,我提供了登录 azure 门户时使用的用户名/密码。注意:这不是学校/工作 Microsoft 帐户,而是个人帐户

我可以看出对 Get-PSAutomationCredential 的调用正在奏效,因为Write-Ouput调用显示了正确的值

但是,Add-AzureAccount 会出现以下错误:

Add-AzureAccount : unknown_user_type: Unknown User Type At
Set-DailyDatabaseRestore:22 char:22 CategoryInfo          :
CloseError: (:) [Add-AzureAccount], AadAuthenticationFailedException
FullyQualifiedErrorId :
Microsoft.WindowsAzure.Commands.Profile.AddAzureAccount

任何指示如何获得工作证书?

4

2 回答 2

1

您是否尝试过在登录 cmdlet (Add-AzureRmAccount) 中使用资源管理器版本?

于 2017-07-10T16:51:03.233 回答
1

根据您的描述,您的账号好像是微软账号(如*@outlook.com、*@hotmail.com)。Microsoft 不支持非交互式登录。您使用您的帐户直接登录您的订阅也是不安全的。对于 Runbook,您可以使用以下代码登录。

$connectionName = "AzureRunAsConnection"
try
{
    # Get the connection "AzureRunAsConnection "
    $servicePrincipalConnection=Get-AutomationConnection -Name $connectionName         

    "Logging in to Azure..."
    Add-AzureRmAccount `
        -ServicePrincipal `
        -TenantId $servicePrincipalConnection.TenantId `
        -ApplicationId $servicePrincipalConnection.ApplicationId `
        -CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint 
}
catch {
    if (!$servicePrincipalConnection)
    {
        $ErrorMessage = "Connection $connectionName not found."
        throw $ErrorMessage
    } else{
        Write-Error -Message $_.Exception
        throw $_.Exception
    }
}

在上面的代码中,你需要使用 connection AzureRunAsConnection,它是 Azure 默认创建的,你可以直接使用它,你可以检查这个连接,它包含你的订阅信息。 在此处输入图像描述

此外,您可以创建一个新连接,请参阅此链接

于 2017-07-11T01:14:47.063 回答