如何在具有 AutomationConnection 的 Powershell Runbook 中使用 Connect-AzAccount
How to use Connect-AzAccount in a Powershell Runbook with an AutomationConnection
我能找到的所有用于验证 Runbook 的示例都使用 AzureRM 模块:
$connectionName = "AzureRunAsConnection"
$servicePrincipalConnection=Get-AutomationConnection -Name $connectionName
Add-AzureRmAccount `
-ServicePrincipal `
-TenantId $servicePrincipalConnection.TenantId `
-ApplicationId $servicePrincipalConnection.ApplicationId `
-CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint
但是,如果您使用的是新的 Az 模块,则此代码不起作用并且您不能混合使用 AzureRM 模块 和 Az 模块在同一个 Runbook 中。如何获得身份验证以使用新的 Az 模块。
此块可用于在 Runbook 中进行身份验证。
请务必遵循模块配置说明:
Az module support in Azure Automation
$connectionName = "AzureRunAsConnection"
try
{
# Get the connection "AzureRunAsConnection "
$servicePrincipalConnection = Get-AutomationConnection -Name $connectionName
"Logging in to Azure..."
$connectionResult = Connect-AzAccount -Tenant $servicePrincipalConnection.TenantID `
-ApplicationId $servicePrincipalConnection.ApplicationID `
-CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint `
-ServicePrincipal
"Logged in."
}
catch {
if (!$servicePrincipalConnection)
{
$ErrorMessage = "Connection $connectionName not found."
throw $ErrorMessage
} else{
Write-Error -Message $_.Exception
throw $_.Exception
}
}
我能找到的所有用于验证 Runbook 的示例都使用 AzureRM 模块:
$connectionName = "AzureRunAsConnection"
$servicePrincipalConnection=Get-AutomationConnection -Name $connectionName
Add-AzureRmAccount `
-ServicePrincipal `
-TenantId $servicePrincipalConnection.TenantId `
-ApplicationId $servicePrincipalConnection.ApplicationId `
-CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint
但是,如果您使用的是新的 Az 模块,则此代码不起作用并且您不能混合使用 AzureRM 模块 和 Az 模块在同一个 Runbook 中。如何获得身份验证以使用新的 Az 模块。
此块可用于在 Runbook 中进行身份验证。 请务必遵循模块配置说明: Az module support in Azure Automation
$connectionName = "AzureRunAsConnection"
try
{
# Get the connection "AzureRunAsConnection "
$servicePrincipalConnection = Get-AutomationConnection -Name $connectionName
"Logging in to Azure..."
$connectionResult = Connect-AzAccount -Tenant $servicePrincipalConnection.TenantID `
-ApplicationId $servicePrincipalConnection.ApplicationID `
-CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint `
-ServicePrincipal
"Logged in."
}
catch {
if (!$servicePrincipalConnection)
{
$ErrorMessage = "Connection $connectionName not found."
throw $ErrorMessage
} else{
Write-Error -Message $_.Exception
throw $_.Exception
}
}