Azure 自动化 - Get-PSAutomationCredential 提供的凭据不适用于 Add-AzureAccount?

Azure automation - credentials delivered by Get-PSAutomationCredential don't work with Add-AzureAccount?

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

运行手册如下所示:

$Cred = Get-AutomationPSCredential -Name 'automationCredential'

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

Add-AzureAccount -Credential $Cred

我使用门户凭据边栏选项卡创建了一个名为 "automationCredential" 的凭据。对于用户名和密码,我提供了用于登录 Azure 门户的 username/pw。注意:这不是 school/work 微软帐户,而是个人帐户

我可以看出对 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

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

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

根据您的描述,您的账户似乎是微软账户(如*@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默认创建的,你可以直接使用它,你可以检查这个连接,它包含你的订阅信息。

另外,您可以创建一个新的连接,请参考这个link