我正在尝试在Azure Run书中运行此命令
(Get-AzureRmStorageAccountKey -Name $defaultStorageAccountName -ResourceGroupName $defaultResourceGroupName).Value[0]
它在我的本地计算机上运行良好,并且可以看到存储帐户密钥。但是,当我在Azure Runbook中运行相同的命令时,它将引发以下错误

Cannot index into a null array

如果我只是在Azure Runbook中运行Get-AzureRmStorageAccountKey -Name $defaultStorageAccountName -ResourceGroupName $defaultResourceGroupName,它可以正常运行,并且可以看到密钥。只是当我从数组中选择一个元素时,它失败并引发错误。

在我的本地计算机和Azure Runbook上,PowerShell版本为5。

更新:

从自动化帐户中的库中更新模块后,我的问题已解决。

最佳答案

根据您的描述,我在Runbook中测试您的cmdlet,可以获得存储密钥。
powershell - Azure Runbook错误,AzureRmStorageAccountKey无法索引到空数组-LMLPHP

您可以使用以下命令登录您的订阅。

Write-Verbose "Get connection asset: $ConnectionAssetName" -Verbose
$connectionName = Get-AutomationConnection -Name "AzureRunAsConnection"
$AzureCredentialAssetName = "AzureRunAsConnection"
try
{
    # Get the connection "AzureRunAsConnection "
    $servicePrincipalConnection=Get-AutomationConnection -Name $AzureCredentialAssetName

    "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
    }
}

$key=(Get-AzureRmStorageAccountKey -Name <storage account name> -ResourceGroupName <resource group name>).Value[0]
"The storage account key is $key"

更多信息请引用此link
更新资料

您需要在自动化帐户中更新Azure存储帐户模块版本,然后可以解决此问题。

08-26 23:14