Powershell 使用特定标记值从RG获取Vm并更新Vm标记
我试图做的是检查一个RG中的标记,该标记已设置为true,然后对于RG中当前设置为$False的资源VM,将其设置为true。我有一个更新脚本 尝试编写一个IF语句,它将拉出所有设置为true的标记,然后在vm中循环,并将它们上的标记设置为$true,在循环中有点卡住,IF$OverRide-eq$true{ 获取AzureRmVM..这就是我所能得到的:Powershell 使用特定标记值从RG获取Vm并更新Vm标记,powershell,azure,Powershell,Azure,我试图做的是检查一个RG中的标记,该标记已设置为true,然后对于RG中当前设置为$False的资源VM,将其设置为true。我有一个更新脚本 尝试编写一个IF语句,它将拉出所有设置为true的标记,然后在vm中循环,并将它们上的标记设置为$true,在循环中有点卡住,IF$OverRide-eq$true{ 获取AzureRmVM..这就是我所能得到的: $x = Get-AzureRmVm -name "ThisVM" -ResourceGroupName "ThisRG" $tags =
$x = Get-AzureRmVm -name "ThisVM" -ResourceGroupName "ThisRG"
$tags = $x.Tags
$tags['Shutdown'] = "$True"
$UpdateTag = Set-AzureRmResource -Tag $tags $x
但是,我如何从RG获取覆盖设置为true的vm,然后通过每个vm循环将其设置为false
尝试编写一个IF语句,它将拉出所有设置为true的标记,然后在vm中循环,并将它们上的标记设置为$true,在循环中有点卡住
if($OverRide -eq $true) {
Get-AzureRmVm -ResourceGroupname | Where-Object { $_.Tags['ShutdownSchedule'] -eq $false } |`
ForEach-Object { $tags = $_.Tags; $tags['ShutdownSchedule'] = $true; `
$_ | Set-AzureRmResource -Tag $tags }
希望这更有意义
更新
类似的,获取所有类似于此RG的RG,并获取RG名称,然后将其传递到捕获所有vm的循环中
$resourcegroup = get-AzureRmResourceGroup | where -FilterScript {
$_.ResourceGroupName -like "This-RG*"
}
$rgname = $resourcegroup | select resourcegroupname
Get-AzureRmVm | foreach ($rgname in $rgnames)
{
Where-Object { $_.Tags['Shutdown'] -eq $false } | ForEach-Object`
{ $tags = $_.Tags; $tags['Shutdown'] = $true; $_ | Set-AzureRmResource -Tag $tags }
}
这将发现标记shutdown等于false的所有资源组,并将这些组中所有VM上的shutdown标记更改为true谢谢,标记是一个难题。我发现这个错误无法索引到空数组中。在第1行char:61+…ResourceGroup | Where Object{$\标记['ShutdownSchedule\u AllowStop']+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
$resourceGroups = Get-AzureRmResourceGroups | Where-Object { $_.Tags['Shutdown'] -eq $false -and $_.Name -like 'This-RG*' }
$resourceGroups.ForEach({
$vms = Get-AzureRmVm -resourceGroup $_.Name
$vms.ForEach({
$tags = $_.Tags
$tags['Shutdown'] = $true;
Set-AzureRmResource -ResourceId $_.Id -Tag $tags
})
})