Очень легко перечислить управляемые диски Azure в PS, но неуправляемые диски очень сложно перечислить, поскольку они не являются объектами от Azure POV.Я попытался написать цикл foreach, чтобы вывести список всех неизмененных дисков (т.е. файлов * .vhd) для каждой учетной записи хранения.Вот код, который я написал:
$StorageAccounts = Get-AzureRmStorageAccount
$sa = $StorageAccounts | foreach-object {
#Get the Management key for the storage account
$key1 = (Get-AzureRmStorageAccountKey -ResourceGroupName $_.ResourceGroupName -name $_.StorageAccountName)[0].value
#Get the Storage Context to access the Storage Container
$storageContext = New-AzureStorageContext -StorageAccountName $_.StorageAccountName -StorageAccountKey $key1
#Get the Storage Container in the Variable
$storageContainer = Get-AzureStorageContainer -Context $storageContext
$blob = Get-AzureStorageBlob -Container $storageContainer.name -Context $storageContext
[PSCustomObject]@{
"Name" = $blob.Name
"Length" = $blob.Length
"Storage Account Name" = $_.StorageAccountName
}
}
Я хочу, чтобы цикл извлекал все VHD для каждой учетной записи хранения и анализировал ее в pscustomobject, чтобы вывести список всех VHD * со всех учетных записей хранения, но я получаю ошибку:
Get-AzureStorageBlob: Невозможно проверить аргумент в параметре «Контейнер».Аргумент нулевой или пустой.Укажите аргумент, который не является пустым или пустым, а затем повторите команду.В строке: 13 символов: 41
Get-AzureStorageBlob: невозможно преобразовать 'System.Object []' в тип 'System.String', требуемый параметром 'Container'.Указанный метод не> поддерживается.В строке: 13 символов: 41
Почему цикл не выполняет синтаксический анализ данных в $ storageContainer в строке 11?Я вижу, что находится внутри двух других переменных, таких как $ key1 и $ storageContext.