Azure PowerShell Runbook Получить набор Az-Disk динамически

Команда пытается автоматизировать восстановление моментального снимка, что было успешно выполнено. Однако я не могу понять, как динамически получить предыдущий диск в группе ресурсов; А так же задать следующему диску новое имя.

В приведенном ниже коде «AZR-001_OsDisk_7» должен динамически устанавливаться в «AZR-001_OsDisk_8» при следующем запуске:

$diskConfig = New-AzDiskConfig -Location $snapshot.Location -SourceResourceId $snapshot.Id -CreateOption Copy
$disk = New-AzDisk -Disk $diskConfig -ResourceGroupName "ETD-RFT" -DiskName "AZR-001_OsDisk_7"
$disk1 = Get-AzDisk -ResourceGroupName "ETD-RFT" -Name "AZR-001_OsDisk_7" 

person fmourtaza    schedule 02.01.2020    source источник
comment
невозможно ответить на ваш вопрос. как скрипт узнает о своем запуске next time? Например?   -  person 4c74356b41    schedule 02.01.2020
comment
мы планируем запланировать его для целей автоматизации... есть требование восстановить моментальный снимок в заданное время, и Runbook идеально подходит   -  person fmourtaza    schedule 02.01.2020


Ответы (1)


Не окончательное решение, но у меня есть идея. Вы можете использовать Get-AzDisk -ResourceGroupName 'ResourceGroupName ', чтобы получить все диски. И тогда вы можете получить имя диска.

Поскольку вы назвали диск соответствующим правилом, вы можете разделить строку имени на _, тогда вы получите массив строк, содержащий все части. Таким образом, вы сможете получить версию.

Образец:

$disks = Get-AzDisk -ResourceGroupName JackVS2019

foreach($disk in $disks){
    $arr = $disk.Name.Split('_')
    Write-Host $arr[2]
}

Выход:

1

Затем вы можете сгенерировать новое имя диска.

person Jack Jia    schedule 02.01.2020
comment
Попробую, спасибо Джек - person fmourtaza; 02.01.2020
comment
У меня есть несколько дисков, и меня интересует только подключенный диск... есть ли способ получить подключенный диск? - person fmourtaza; 02.01.2020
comment
@ user3674148 Да; используйте DiskState. Например: Get-AzDisk -ResourceGroupName 'ETD-RTF' | Where-Object -Property 'DiskState' -EQ 'Attached' - person Travis; 03.01.2020
comment
Или, если вам не нужен конвейер: @(Get-AzDisk -ResourceGroupName 'ETD-RTF').DiskState -eq 'Attached' - person Travis; 03.01.2020