Azure自动化 - Get-PSAutomationCredential提供的凭据不能与Add-AzureAccount一起使用?

时间:2017-07-10 15:06:07

标签: azure-powershell azure-automation azure-authentication

我正在修改图库Runbook,它会按计划将实时数据库复制到测试数据库。它在第一道障碍时失败了;验证并选择相关的azure订阅

Runbook看起来像这样:

$Cred = Get-AutomationPSCredential -Name 'automationCredential'

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

Add-AzureAccount -Credential $Cred

我已使用门户网站凭据刀片创建名为" automationCredential"的凭据。对于用户名和密码,我提供了用户登录到azure门户网站的用户名/ pw。注意:这不是学校/工作的微软帐户,而是个人帐户

我可以告诉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

如何获得工作凭证的任何指示?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

根据您的描述,您的帐户似乎是Microsoft帐户(例如*@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
    }
}

在上面的代码中,您需要使用连接AzureRunAsConnection,它是由Azure默认创建的,您可以直接使用它,您可以检查此连接,它包含您的订阅信息。 enter image description here

此外,您可以创建新的连接,请参阅此link