我正在修改图库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
如何获得工作凭证的任何指示?
答案 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默认创建的,您可以直接使用它,您可以检查此连接,它包含您的订阅信息。
此外,您可以创建新的连接,请参阅此link。