VMware Cloud Community
TylerDurden77
Enthusiast
Enthusiast
Jump to solution

Add tag based on $_Guest.OsFullname

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

1 Solution

Accepted Solutions
LucD
Leadership
Leadership
Jump to solution

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

View solution in original post

4 Replies
LucD
Leadership
Leadership
Jump to solution

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

TylerDurden77
Enthusiast
Enthusiast
Jump to solution

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?

Reply
0 Kudos
TylerDurden77
Enthusiast
Enthusiast
Jump to solution

Solved it

I changed $_.Guest.xxx to $vm.Guest.xxx

Many thanks!

Reply
0 Kudos
LucD
Leadership
Leadership
Jump to solution

Typo.

I corrected the script above.


Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference

Reply
0 Kudos