【发布时间】:2020-09-14 09:06:10
【问题描述】:
我正在构建 Azure Runbook (powershell),它会检查 vm 是否启用了备份,如果没有,它将启用它。我在添加和构建 IF 语句以使其更好时遇到问题。
这就是我现在的做法,它可以工作,但是如果 vm 启用了备份,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 上启用了备份,它会跳过它。下面的命令将打印备份的结果(真或假),但我不知道如何在 if 语句中实现它,所以如果结果为假,它将运行脚本块,如果结果为真,它只会跳过并打印出 $vm.Name 已配置为 Azure 备份。
Get-AzRecoveryServicesBackupStatus -Name 'VmName' -ResourceGroupName 'RgName' -Type AzureVM
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) ?
【问题讨论】:
标签: azure powershell backup azure-runbook