<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Create Guest OS list by OS in VMware PowerCLI Discussions</title>
    <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Create-Guest-OS-list-by-OS/m-p/2718016#M94405</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You could use a switch statement:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;get-vm | %{&lt;/P&gt;&lt;P&gt; switch ($_.ExtensionData.Config.GuestFullname) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Microsoft Windows Server 2012 (64-bit)" {"Do one thing"} &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Red Hat Enterprise Linux 6 (64-bit)" {"Do another"} &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; default {"I don't know what to do with $_"}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 05 Apr 2016 02:07:19 GMT</pubDate>
    <dc:creator>zik</dc:creator>
    <dc:date>2016-04-05T02:07:19Z</dc:date>
    <item>
      <title>Create Guest OS list by OS</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Create-Guest-OS-list-by-OS/m-p/2718015#M94404</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am trying to get a list of Guest OS VMs and then change something.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I see some examples where I can use the Get-VM and also Get-View for both cases.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;
&lt;P&gt;get-vm | Select Name,@{N="Configured OS";E={$_.ExtensionData.Config.GuestFullname}},@{N="Running OS";E={$_.Guest.OsFullName}}&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;or just&lt;/P&gt;&lt;BLOCKQUOTE&gt;
&lt;P&gt;Get-View -ViewType VirtualMachine -Property Name,Config.GuestFullName&amp;nbsp; | %{&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-Object -TypeName PSObject -Property @{&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Name = $_.Name&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GuestOS = $_.Config.GuestFullName&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/P&gt;
&lt;P&gt;} | Select Name, GuestOS&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Using a filter( -Filter @{"Config.GuestFullName" = "Windows*"} ) or not to list the proper Guest OS type.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But what I need, and I am not able to do is, using with the Get-View or Get-VM, removing the filter, and in a foreach check witch VM have Linux or Windows, then do an action after found the type of Guest OS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For example, add a TAG like this: New-TagCategory –Name "Windows" -Description "VMs System Operation TAG" –Cardinality single –EntityType VirtualMachine&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I can run everything individually and works fine, but my problem is to put everything in only script and with a condition for each type of Guest OS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in advance for any help.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NW&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Apr 2016 22:28:35 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Create-Guest-OS-list-by-OS/m-p/2718015#M94404</guid>
      <dc:creator>No_Way</dc:creator>
      <dc:date>2016-04-04T22:28:35Z</dc:date>
    </item>
    <item>
      <title>Re: Create Guest OS list by OS</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Create-Guest-OS-list-by-OS/m-p/2718016#M94405</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You could use a switch statement:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;get-vm | %{&lt;/P&gt;&lt;P&gt; switch ($_.ExtensionData.Config.GuestFullname) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Microsoft Windows Server 2012 (64-bit)" {"Do one thing"} &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Red Hat Enterprise Linux 6 (64-bit)" {"Do another"} &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; default {"I don't know what to do with $_"}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 Apr 2016 02:07:19 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Create-Guest-OS-list-by-OS/m-p/2718016#M94405</guid>
      <dc:creator>zik</dc:creator>
      <dc:date>2016-04-05T02:07:19Z</dc:date>
    </item>
    <item>
      <title>Re: Create Guest OS list by OS</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Create-Guest-OS-list-by-OS/m-p/2718017#M94406</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Zik&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Thanks for your reply.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Your reply did put me on the right track and had some ideas how to do it&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is what I have until now&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;
&lt;P&gt;$vms = Get-Cluster "Cluster test" | Get-VM&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Foreach($vm in $vms) { &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $vmview = $vm | get-view&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ($vmview.Summary.Config.GuestFullName -like "*Windows*") { &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Host "VM Name: " $vm&amp;nbsp; "Windows VM"&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #New-TagAssignment –Tag "Windows"&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ($vmview.Summary.Config.GuestFullName -like "*Linux*"){&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Host "VM Name: " $vm " Linux VM"}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #New-TagAssignment –Tag "Linux"&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ($vmview.Summary.Config.GuestFullName -like "*CentOS*"){&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Host "VM Name: " $vm " Linux/CentOS VM"}&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else {Write-Host "No Changes "}&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now I am struggling to check if a specific TAG is already created, if not it will creates.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Still testing:&lt;/P&gt;&lt;BLOCKQUOTE&gt;
&lt;P&gt;Foreach($Tags in $Tag) {&lt;/P&gt;
&lt;P&gt;if ($Tags.Name -notlike "*Linux*" )&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt; Write-Host "No TAG Founded" &lt;/P&gt;
&lt;P&gt; New-Tag –Name "Linux" -Description "VMs System Operation TAG" –Cardinality single –EntityType VirtualMachine&lt;/P&gt;
&lt;P&gt; Write-Host "Tag Linux Added" | Select $tags.Name&lt;/P&gt;
&lt;P&gt; }&lt;/P&gt;
&lt;P&gt;else {Write-Host "TAG"}&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But I discover that New-Tag and New-TagCategory works in different PowerCli versions.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 Apr 2016 18:33:46 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Create-Guest-OS-list-by-OS/m-p/2718017#M94406</guid>
      <dc:creator>No_Way</dc:creator>
      <dc:date>2016-04-05T18:33:46Z</dc:date>
    </item>
    <item>
      <title>Re: Create Guest OS list by OS</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Create-Guest-OS-list-by-OS/m-p/2718018#M94407</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;switch also has a -regex flag:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;$vms = Get-Cluster | Get-VM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Foreach($vm in $vms) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $vmview = $vm | get-view&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; switch -Regex ($vmview.Summary.Config.GuestFullName) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Windows" {"Windows"}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Linux" {"Linux"}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "CentOS" {"CentOS"}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; default {"Other"}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Tags I haven't worked with.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 Apr 2016 20:22:27 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Create-Guest-OS-list-by-OS/m-p/2718018#M94407</guid>
      <dc:creator>zik</dc:creator>
      <dc:date>2016-04-05T20:22:27Z</dc:date>
    </item>
    <item>
      <title>Re: Create Guest OS list by OS</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Create-Guest-OS-list-by-OS/m-p/2718019#M94408</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Zik,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Again thank your for the reply.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I also used &lt;EM&gt;wildcard&lt;/EM&gt; in the &lt;EM&gt;switch&lt;/EM&gt;, but I think the option &lt;EM&gt;regex&lt;/EM&gt; is better.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For now I was able to go this far.&lt;/P&gt;&lt;BLOCKQUOTE&gt;
&lt;P&gt;$vms = Get-Cluster "Cluster Test" | Get-VM&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Foreach($vm in $vms) {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $vmview = $vm | get-view&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; switch -Regex ($vmview.Summary.Config.GuestFullName)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Linux" &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If ((Get-TagAssignment -Entity (Get-VM $vms)) -like '*Linux*')&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { Write-Host "VM Linux: " $vm.Name -nonewline; Write-Host " with TAG " -foreground Green }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {Write-Host "VM Linux: " $vm.Name, $vmview.Summary.Config.GuestFullName -NoNewline; Write-Host " NO TAG " -foreground red }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Windows" &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If ((Get-TagAssignment -Entity (Get-VM $vms)) -like '*Windows*')&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { Write-Host "VM Windows: " $vm.Name -nonewline; Write-Host " with TAG " -foreground Green&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {Write-Host "VM Windows: " $vm.Name -nonewline; Write-Host " NO TAG " -foreground red -nonewline; Write-Host "" $vmview.Summary.Config.GuestFullName -foreground Black }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Centos" &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If ((Get-TagAssignment -Entity (Get-VM $vms)) -like '*Centos*')&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { Write-Host "VM Centos: " $vm.Name -nonewline; Write-Host " with TAG " -foreground Green }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {Write-Host "VM Centos: " $vm.Name, $vmview.Summary.Config.GuestFullName -NoNewline; Write-Host " NO TAG " -foreground red }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And after running this in my test environment I have this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;
&lt;P&gt;VM Linux:&amp;nbsp; VM Test 003 SUSE Linux Enterprise 11 (32-bit) &lt;SPAN style="color: #ff0000;"&gt;NO TAG &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;VM Windows:&amp;nbsp; VM Test 001 &lt;SPAN style="color: #00ff00;"&gt;with TAG&lt;/SPAN&gt; &lt;/P&gt;
&lt;P&gt;VM Linux:&amp;nbsp; VM Test 002 Red Hat Enterprise Linux 6 (32-bit) &lt;SPAN style="color: #ff0000;"&gt;NO TAG &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;VM Centos:&amp;nbsp; VM Test 004 CentOS 4/5/6 (32-bit) &lt;SPAN style="color: #ff0000;"&gt;NO TAG &lt;/SPAN&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Maybe I could reduce some lines and differently, but my knowledge only get until here &lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://communities.vmware.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After I will replace the lines with the text (NO TAG, or WITH TAG) with a line to add a TAG to the VM without a TAG.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Because in the first time I run the script no VMs have TAGs, but after running the same script one time a month, it should only pickup VMs with no TAGs and then add a Guest OS TAG.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank You again for the help&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NW&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 06 Apr 2016 22:15:49 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Create-Guest-OS-list-by-OS/m-p/2718019#M94408</guid>
      <dc:creator>No_Way</dc:creator>
      <dc:date>2016-04-06T22:15:49Z</dc:date>
    </item>
  </channel>
</rss>

