Я создаю Azure runbook (powershell), который проверяет, включено ли резервное копирование vm, если это не так, оно включит его. У меня проблема с добавлением и построением оператора IF, чтобы сделать его лучше.
Вот как я это делаю сейчас, и он работает, но если в vm включено резервное копирование, runbook будет печатать много красного цвета, и это нехорошо. Это часть большого модуля Runbook, и все они работают внутри на foreach.
$vault= Get-AzureRmRecoveryServicesVault -ResourceGroupName "RGName" -Name "VaultName"
Set-AzureRmRecoveryServicesVaultContext -Vault $vault
Write-Output "Configuring Azure backup to $($vm.Name)"
$policy = Get-AzureRmRecoveryServicesBackupProtectionPolicy -Name "PolicyName"
Enable-AzureRmRecoveryServicesBackupProtection `
-ResourceGroupName $vm.ResourceGroupName `
-Name $vm.Name `
-Policy $policy
Затем я хотел добавить туда оператор IF, чтобы, если резервное копирование было включено на vm, оно просто пропустило бы его. Приведенная ниже команда распечатает результаты резервного копирования (true или false), но я не знаю, как реализовать это в операторе if, поэтому, если результаты будут ложными, он запустит блок сценария, и если результат будет истинным, он будет просто пропустить и распечатать $ vm.Name уже настроено для Azure резервного копирования.
Get-AzRecoveryServicesBackupStatus -Name 'VmName' -ResourceGroupName 'RgName' -Type AzureVM
Результаты command
if ()
{
$vault= Get-AzureRmRecoveryServicesVault -ResourceGroupName "RgName" -Name "VaultName"
Set-AzureRmRecoveryServicesVaultContext -Vault $vault
Write-Output "Configuring Azure backup to $($vm.Name)"
$policy = Get-AzureRmRecoveryServicesBackupProtectionPolicy -Name "PolicyName"
Enable-AzureRmRecoveryServicesBackupProtection `
-ResourceGroupName $vm.ResourceGroupName `
-Name $vm.Name `
-Policy $policy
}
else {
Write-Output "$vm.Name has already configured to Azure backup"
}
Итак, какие-нибудь советы, как это сделать? Можно как-то так: if (Get-AzRecoveryServicesBackupStatus -Name 'vmanme' -ResourceGroupName 'rgname' -Type AzureVM backedup -match false)?