Первый выпуск
Я могу воспроизвести вашу ошибку, используя Get-AzSnapshot
только в том случае, если группа ресурсов недействительна или не найдена, что вернет ErrorCode: ResourceGroupNotFound
. Если вы указали правильную группу ресурсов, но неверное имя снимка, вы получите ErrorCode: ResourceNotFound
. Я бы дважды проверил, существует ли группа ресурсов, к которой вы пытаетесь получить доступ.
Если вы хотите убедиться, что вы не запускаете Get-AzSnapshot
, если группа ресурсов не существует, я бы добавил переменную ошибки с -ErrorVariable
, чтобы сохранить результат ошибки, если исключение произошло из Get-AzResourceGroup
. Результат ошибки сохраняется как тип System.Collections.ArrayList
, поэтому мы можем просто проверить, больше ли найденных ошибок, чем ноль. Вы можете запустить $resourceGroupError.GetType().FullName
, чтобы получить полное имя типа. Мы также можем использовать -ErrorAction SilentlyContinue
для подавления ошибки из Get-AzResourceGroup
, если группа ресурсов не найдена.
$resourceGroupName = "demo-RG"
$snapshotName = "demo-snapshot"
# First get resource group
Get-AzResourceGroup -Name $resourceGroupName -ErrorVariable resourceGroupError -ErrorAction SilentlyContinue
if ($resourceGroupError.Count -gt 0)
{
# ResourceGroup doesn't exist
# Don't get snapshot
Write-Host "Cannot find $resourceGroupName resource group"
}
else
{
# ResourceGroup exist
# Can get snapshot
Get-AzSnapshot -ResourceGroupName $resourceGroupName -SnapshotName $snapshotName
}
Второй выпуск
В списке будут только группы ресурсов под вашей текущей активной подпиской , если вы запустите az group list
или Get-AzResourceGroup
. Поэтому, если ваш снимок находится в указанной подписке c, и вы в настоящее время не настроены на эту подписку, вам нужно переключиться на эту указанную c подписку с az account set --subscription
. Для Azure PowerShell я предлагаю переключить контексты на вашу активную подписку, используя этот метод .