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。
我正在修改按计划将实时数据库复制到测试数据库的库 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。