Azure 自动化帐户 Powershell 错误设置上下文
Azure Automation account Powershell Error setting context
我正在尝试 运行 使用 Azure 自动化帐户 运行 一本简单的 powershell 运行 书。我有一个 RunasAccount 设置,它对订阅有贡献者特权,我正在尝试在我的 Sql 服务器之一中获取列入白名单的 IP 列表。
Import-Module Az.Sql
Import-Module Az.Accounts
$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
}
}
Get-AzSqlServerFirewallRule -ResourceGroupName test-rg -ServerName test-server101
当我 运行 执行此操作时,出现以下错误。
Get-AzSqlServerFirewallRule : No subscription found in the context. Please ensure that the credentials you provided are authorized to access an Azure subscription, then run Connect-AzAccount to login. At line:36 char:1 + Get-AzSqlServerFirewallRule -ResourceGroupName test-rg -ServerName te ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : CloseError: (:) [Get-AzSqlServerFirewallRule], AzPSApplicationException + FullyQualifiedErrorId : Microsoft.Azure.Commands.Sql.FirewallRule.Cmdlet.GetAzureSqlServerFirewallRule
我注意到 Get-AzSqlServerFirewallRule commandlet 有一个选项可以设置 -DefaultProfile。但是我不确定这里要给出什么。
我做错了什么?
您正在混合使用 PowerShell 模块。如果您使用的是 Az 模块,则需要使用 Connect-AzAccount
而不是 Add-AzureRmAccount
。如果您使用的是 AzureRm 模块,则需要使用 Get-AzureRmSqlServerFirewallRule
而不是 Get-AzSqlServerFirewallRule
.
我正在尝试 运行 使用 Azure 自动化帐户 运行 一本简单的 powershell 运行 书。我有一个 RunasAccount 设置,它对订阅有贡献者特权,我正在尝试在我的 Sql 服务器之一中获取列入白名单的 IP 列表。
Import-Module Az.Sql
Import-Module Az.Accounts
$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
}
}
Get-AzSqlServerFirewallRule -ResourceGroupName test-rg -ServerName test-server101
当我 运行 执行此操作时,出现以下错误。
Get-AzSqlServerFirewallRule : No subscription found in the context. Please ensure that the credentials you provided are authorized to access an Azure subscription, then run Connect-AzAccount to login. At line:36 char:1 + Get-AzSqlServerFirewallRule -ResourceGroupName test-rg -ServerName te ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : CloseError: (:) [Get-AzSqlServerFirewallRule], AzPSApplicationException + FullyQualifiedErrorId : Microsoft.Azure.Commands.Sql.FirewallRule.Cmdlet.GetAzureSqlServerFirewallRule
我注意到 Get-AzSqlServerFirewallRule commandlet 有一个选项可以设置 -DefaultProfile。但是我不确定这里要给出什么。
我做错了什么?
您正在混合使用 PowerShell 模块。如果您使用的是 Az 模块,则需要使用 Connect-AzAccount
而不是 Add-AzureRmAccount
。如果您使用的是 AzureRm 模块,则需要使用 Get-AzureRmSqlServerFirewallRule
而不是 Get-AzSqlServerFirewallRule
.