Hi Admins.
I would like to add vSphere tags based on OS.
What I have so far which aint working is :
$wintag = Get-Tag -Name 'server-windows'
$lintag = Get-Tag -name 'server-linux'
Get-folder 'Test' | Get-VM
If ($_.Guest.OSFullName -like "*win*") {New-TagAssignment -Tag $wintag}
If ($_.Guest.OSFullName -like "*Cent*" -or $_.GuestID -like "*ubuntu*") {
New-TagAssignment -Tag $lintag
}
Advice?
Regards
Tyler
Perhaps try like this
$wintag = Get-Tag -Name 'server-windows'
$lintag = Get-Tag -name 'server-linux'
$othertag = Get-Tag -name 'other'
foreach($vm in (Get-folder 'Test' | Get-VM)){
If ($vm.Guest.OSFullName -like "*win*") {
New-TagAssignment -Entity $vm -Tag $wintag
}
elseIf ($vm.Guest.OSFullName -like "*Cent*" -or $vm.GuestID -like "*ubuntu*") {
New-TagAssignment -Entity $vm -Tag $lintag
}
else{
New-TagAssignment -Entity $vm -Tag $othertag
}
}
Blog: lucd.info Twitter: @LucD22 Co-author PowerCLI Reference
Perhaps try like this
$wintag = Get-Tag -Name 'server-windows'
$lintag = Get-Tag -name 'server-linux'
$othertag = Get-Tag -name 'other'
foreach($vm in (Get-folder 'Test' | Get-VM)){
If ($vm.Guest.OSFullName -like "*win*") {
New-TagAssignment -Entity $vm -Tag $wintag
}
elseIf ($vm.Guest.OSFullName -like "*Cent*" -or $vm.GuestID -like "*ubuntu*") {
New-TagAssignment -Entity $vm -Tag $lintag
}
else{
New-TagAssignment -Entity $vm -Tag $othertag
}
}
Blog: lucd.info Twitter: @LucD22 Co-author PowerCLI Reference
Thanks Luc!
But when I run your suggestion my VMs gets tag $othertag (which in my case is "NoBackup") regardless of $_.guest.OSFullname
Any ideas?
Solved it
I changed $_.Guest.xxx to $vm.Guest.xxx
Many thanks!