<?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>article VMware View PowerCLI Script to Discover Un-used Virtual Machines in Horizon Documents</title>
    <link>https://communities.vmware.com/t5/Horizon-Documents/VMware-View-PowerCLI-Script-to-Discover-Un-used-Virtual-Machines/ta-p/2794995</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;VM sprawl is a concern for View Administrators and routine maintenance to discover unused virtual desktops is a good practice.&amp;nbsp; Below is a View PowerCLI script I’ve created to expose virtual machines that have not been used in a given period of time, set under $timeSpan variable. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The script will query View and populate an array of virtual machines, assigned userIDs, and LastWriteTime of user profile while excluding others such as replicas, master VMs, or unassigned. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Script will then prompt to unassign user from vm, default response is NO. In this script I’m interested in any vm not used for more than 180 days.&amp;nbsp; Upon completion two comma separated files are exported to C:\Temp, an AgingVMs-MM-DD-YYYY.csv and UnAssignedVMs-MM-DD-YYYY.csv. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;System Administrators will need to modify the following areas of this script to align with their environments&lt;/P&gt;&lt;P&gt;·&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;$timeSpan = New-TimeSpan -Days 180&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;·&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;$persistentDrive = "\D$\Users\"&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;·&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;vmName&lt;/STRONG&gt;*&lt;/P&gt;&lt;P&gt;·&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;Export-Csv c:\temp\&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;STRONG&gt;&lt;STRONG&gt;&lt;STRONG&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hljs-comment"&gt;#*****************************************&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hljs-comment"&gt;#&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hljs-comment"&gt;# Author: Silas Sunday&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hljs-comment"&gt;# Version: 1.0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hljs-comment"&gt;# Date: October 30, 2017&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hljs-comment"&gt;#&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hljs-comment"&gt;# Purpose: Used to discover unused VDI clones based&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hljs-comment"&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; on user profile folder LastWriteTime property value.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hljs-comment"&gt;#&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hljs-comment"&gt;#*****************************************&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hljs-variable"&gt;$currentDate&lt;/SPAN&gt; = Get-Date -UFormat &lt;SPAN class="hljs-string"&gt;"-%m-%d-%Y"&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="hljs-comment"&gt;#get current date and format to Month-Day-Year to append at end of CSV exported File&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hljs-variable"&gt;$replyYes&lt;/SPAN&gt; = New-Object System.Management.Automation.Host.ChoiceDescription &lt;SPAN class="hljs-string"&gt;"&amp;amp;Yes"&lt;/SPAN&gt;, &lt;SPAN class="hljs-string"&gt;"Remove User Ownership."&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hljs-variable"&gt;$replyNo&lt;/SPAN&gt; = New-Object System.Management.Automation.Host.ChoiceDescription &lt;SPAN class="hljs-string"&gt;"&amp;amp;No"&lt;/SPAN&gt;, &lt;SPAN class="hljs-string"&gt;"Do NOT Remove User Ownership."&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hljs-variable"&gt;$timeSpan&lt;/SPAN&gt; = New-TimeSpan -Days 180 &lt;SPAN class="hljs-comment"&gt;#establish date in time, where items older that xDays are subject to unassignment&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hljs-variable"&gt;$colUnassigned&lt;/SPAN&gt; = @()&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="hljs-comment"&gt;#create empty array to hold list of users unassigned from vdi clones&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hljs-variable"&gt;$colFolders&lt;/SPAN&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; &lt;SPAN class="hljs-comment"&gt;#create empty array to hold path results&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hljs-variable"&gt;$colResults&lt;/SPAN&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; &lt;SPAN class="hljs-comment"&gt;#create empty array to update results of discovery&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hljs-variable"&gt;$vmList&lt;/SPAN&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="hljs-comment"&gt;#create empty array to hold vdi clone information&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hljs-variable"&gt;$persistentDrive&lt;/SPAN&gt; = &lt;SPAN class="hljs-string"&gt;"\D$\Users\"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #path variable to persistent drive where user profiles are housed&lt;BR /&gt;&lt;BR /&gt;#query connection manager, pass vm Name and assigned User to &lt;SPAN class="hljs-variable"&gt;$vmList&lt;/SPAN&gt; Array.&amp;nbsp; Excluding vms begining with vmName*.&lt;BR /&gt;#for example:&amp;nbsp; exclude all vm names begining with "&lt;/SPAN&gt;master*&lt;SPAN class="hljs-string"&gt;" and "&lt;/SPAN&gt;replica*&lt;SPAN class="hljs-string"&gt;"&lt;BR /&gt;&lt;SPAN class="hljs-variable"&gt;$vmList&lt;/SPAN&gt; = Get-DesktopVM | Select Name, user_displayname | Where {&lt;SPAN class="hljs-variable"&gt;$_&lt;/SPAN&gt;.Name -notlike "&lt;/SPAN&gt;vmName*&lt;SPAN class="hljs-string"&gt;" -and &lt;SPAN class="hljs-variable"&gt;$_&lt;/SPAN&gt;.Name -notlike "&lt;/SPAN&gt;vmName*&lt;SPAN class="hljs-string"&gt;"&amp;nbsp; #add more exclusion is needed&lt;BR /&gt;&lt;BR /&gt;foreach (&lt;SPAN class="hljs-variable"&gt;$i&lt;/SPAN&gt; in &lt;SPAN class="hljs-variable"&gt;$vmList&lt;/SPAN&gt;)&lt;BR /&gt;{&lt;BR /&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; #remove "&lt;/SPAN&gt;DomaindName.DomainName\&lt;SPAN class="hljs-string"&gt;" string information from user_displayname array element&lt;BR /&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; #and replace with nothing ""&amp;nbsp; for example: f2.com\UserID converted to -&amp;gt; UserID&lt;BR /&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; &lt;SPAN class="hljs-variable"&gt;$i&lt;/SPAN&gt;.user_displayname = &lt;SPAN class="hljs-variable"&gt;$i&lt;/SPAN&gt;.user_displayname.Replace("&lt;/SPAN&gt;DomainName.DomainName\&lt;SPAN class="hljs-string"&gt;","")&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;foreach (&lt;SPAN class="hljs-variable"&gt;$i&lt;/SPAN&gt; in &lt;SPAN class="hljs-variable"&gt;$vmList&lt;/SPAN&gt;)&lt;BR /&gt;{&lt;BR /&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; if (&lt;SPAN class="hljs-variable"&gt;$i&lt;/SPAN&gt;.user_displayname -eq &lt;SPAN class="hljs-variable"&gt;$null&lt;/SPAN&gt;){continue}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #skips vm that is not assigned&lt;BR /&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; &lt;SPAN class="hljs-variable"&gt;$testPath&lt;/SPAN&gt; = Test-Path "&lt;/SPAN&gt;\\$(&lt;SPAN class="hljs-variable"&gt;$i&lt;/SPAN&gt;.Name)$(&lt;SPAN class="hljs-variable"&gt;$persistentDrive&lt;/SPAN&gt;)$(&lt;SPAN class="hljs-variable"&gt;$i&lt;/SPAN&gt;.user_displayname)&lt;SPAN class="hljs-string"&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; #checks if folder exists, return TRUE or FALSE&lt;BR /&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; if (&lt;SPAN class="hljs-variable"&gt;$testPath&lt;/SPAN&gt; -eq &lt;SPAN class="hljs-variable"&gt;$false&lt;/SPAN&gt;) {continue}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #vm does not contain DriveLetter$\User\UserID folder.&amp;nbsp; Continue to next VM&lt;BR /&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; &lt;SPAN class="hljs-variable"&gt;$userPath&lt;/SPAN&gt; = "&lt;/SPAN&gt;\\$(&lt;SPAN class="hljs-variable"&gt;$i&lt;/SPAN&gt;.Name)$(&lt;SPAN class="hljs-variable"&gt;$persistentDrive&lt;/SPAN&gt;)$(&lt;SPAN class="hljs-variable"&gt;$i&lt;/SPAN&gt;.user_displayname)&lt;SPAN class="hljs-string"&gt;" #build full path to user folder&lt;BR /&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; &lt;SPAN class="hljs-variable"&gt;$colFolders&lt;/SPAN&gt; = Get-ItemProperty &lt;SPAN class="hljs-variable"&gt;$userPath&lt;/SPAN&gt; | Select Root, Name, LastWriteTime&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; #Gets properties for Root, Name, and LastWriteTime&lt;BR /&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; &lt;SPAN class="hljs-variable"&gt;$LWT&lt;/SPAN&gt; = (Get-ItemProperty &lt;SPAN class="hljs-variable"&gt;$userPath&lt;/SPAN&gt;).LastWriteTime&lt;BR /&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; &lt;SPAN class="hljs-variable"&gt;$colResults&lt;/SPAN&gt; += &lt;SPAN class="hljs-variable"&gt;$colFolders&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #update array with Root, Name, LastWriteTime&lt;BR /&gt;#*****************************************&lt;BR /&gt;#This block will perform vdi user unassignment&lt;BR /&gt;if (((Get-Date) - &lt;SPAN class="hljs-variable"&gt;$LWT&lt;/SPAN&gt;) -gt &lt;SPAN class="hljs-variable"&gt;$timeSpan&lt;/SPAN&gt;)&amp;nbsp;&amp;nbsp; #if current date minus LaswWriteTime is greater than &lt;SPAN class="hljs-variable"&gt;$timeSpan&lt;/SPAN&gt; days then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&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; &lt;SPAN class="hljs-variable"&gt;$titleMSG&lt;/SPAN&gt; = "&lt;/SPAN&gt;Remove User Ownership&lt;SPAN class="hljs-string"&gt;"&lt;BR /&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; &lt;SPAN class="hljs-variable"&gt;$questionMSG&lt;/SPAN&gt; = "&lt;/SPAN&gt;User $(&lt;SPAN class="hljs-variable"&gt;$i&lt;/SPAN&gt;.user_displayname) last write time &lt;SPAN class="hljs-keyword"&gt;for&lt;/SPAN&gt; $(&lt;SPAN class="hljs-variable"&gt;$i&lt;/SPAN&gt;.Name) is $(&lt;SPAN class="hljs-variable"&gt;$LWT&lt;/SPAN&gt;) Do you want to remove user ownership from &lt;SPAN class="hljs-built_in"&gt;clone&lt;/SPAN&gt;? (Default NO)&lt;SPAN class="hljs-string"&gt;"&lt;BR /&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; &lt;SPAN class="hljs-variable"&gt;$usrOptions&lt;/SPAN&gt; = [System.Management.Automation.Host.ChoiceDescription[]](&lt;SPAN class="hljs-variable"&gt;$replyYes&lt;/SPAN&gt;, &lt;SPAN class="hljs-variable"&gt;$replyNo&lt;/SPAN&gt;)&lt;BR /&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; &lt;SPAN class="hljs-variable"&gt;$usrResult&lt;/SPAN&gt; = &lt;SPAN class="hljs-variable"&gt;$host&lt;/SPAN&gt;.UI.PromptForChoice(&lt;SPAN class="hljs-variable"&gt;$titleMSG&lt;/SPAN&gt;, &lt;SPAN class="hljs-variable"&gt;$questionMSG&lt;/SPAN&gt;, &lt;SPAN class="hljs-variable"&gt;$usrOptions&lt;/SPAN&gt;, 1)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #0 sets default to YES, 1 sets default to NO&lt;BR /&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; Switch (&lt;SPAN class="hljs-variable"&gt;$usrResult&lt;/SPAN&gt;)&lt;BR /&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; {&lt;BR /&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;&amp;nbsp;&amp;nbsp; 0&lt;BR /&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="hljs-variable"&gt;$colUnassigned&lt;/SPAN&gt; += &lt;SPAN class="hljs-variable"&gt;$colFolders&lt;/SPAN&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; #update array with systems unassigned for export to CSV&lt;BR /&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&lt;/SPAN&gt;You selected Yes.&amp;nbsp; User Assignment will be removed&lt;SPAN class="hljs-string"&gt;";&lt;BR /&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Remove-UserOwnership -machine_id (Get-DesktopVM -Name &lt;SPAN class="hljs-variable"&gt;$i&lt;/SPAN&gt;.Name).machine_id&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; #command to unassign selected user from vm&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="hljs-variable"&gt;$vmRemoved&lt;/SPAN&gt; = "&lt;/SPAN&gt;TRUE&lt;SPAN class="hljs-string"&gt;"&lt;BR /&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&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;&amp;nbsp;&amp;nbsp; 1&lt;BR /&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&lt;/SPAN&gt;You selected No.&amp;nbsp; User Assignment NOT removed&lt;SPAN class="hljs-string"&gt;"&lt;BR /&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&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; }&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;Else&lt;BR /&gt;&amp;nbsp;&amp;nbsp; {&lt;BR /&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; Continue&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #vm has been access recently. Continue to next vm&lt;BR /&gt;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;}&lt;BR /&gt;#*****************************************&lt;BR /&gt;&lt;SPAN class="hljs-variable"&gt;$colAging&lt;/SPAN&gt; = &lt;SPAN class="hljs-variable"&gt;$colAging&lt;/SPAN&gt; | Sort-Object LastWrietTime&lt;BR /&gt;&lt;SPAN class="hljs-variable"&gt;$colUnassigned&lt;/SPAN&gt; = &lt;SPAN class="hljs-variable"&gt;$colUnassigned&lt;/SPAN&gt; | Sort-Object LastWriteTime&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN class="hljs-variable"&gt;$colUnassigned&lt;/SPAN&gt; | Export-Csv c:\temp\AgingVMs&lt;SPAN class="hljs-variable"&gt;$($currentDate)&lt;/SPAN&gt;.csv&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #export VMs aging and date file&lt;BR /&gt;&lt;BR /&gt;if (&lt;SPAN class="hljs-variable"&gt;$vmRemoved&lt;/SPAN&gt; = "&lt;/SPAN&gt;TRUE&lt;SPAN class="hljs-string"&gt;")&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="hljs-variable"&gt;$colUnassigned&lt;/SPAN&gt; | Export-Csv c:\temp\UnassignedVMs&lt;SPAN class="hljs-variable"&gt;$($currentDate)&lt;/SPAN&gt;.csv&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #export VMs unassigned and date file&lt;BR /&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;PRE __default_attr="c#" __jive_macro_name="code" class="_jivemacro_uid_15095453856712752 jive_macro_code jive_text_macro" data-renderedposition="1961_7.699999809265137_1232_0" jivemacro_uid="_15095453856712752"&gt;&lt;P&gt;&lt;/P&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 01 Nov 2017 14:13:47 GMT</pubDate>
    <dc:creator>SilasSundayII</dc:creator>
    <dc:date>2017-11-01T14:13:47Z</dc:date>
    <item>
      <title>VMware View PowerCLI Script to Discover Un-used Virtual Machines</title>
      <link>https://communities.vmware.com/t5/Horizon-Documents/VMware-View-PowerCLI-Script-to-Discover-Un-used-Virtual-Machines/ta-p/2794995</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;VM sprawl is a concern for View Administrators and routine maintenance to discover unused virtual desktops is a good practice.&amp;nbsp; Below is a View PowerCLI script I’ve created to expose virtual machines that have not been used in a given period of time, set under $timeSpan variable. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The script will query View and populate an array of virtual machines, assigned userIDs, and LastWriteTime of user profile while excluding others such as replicas, master VMs, or unassigned. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Script will then prompt to unassign user from vm, default response is NO. In this script I’m interested in any vm not used for more than 180 days.&amp;nbsp; Upon completion two comma separated files are exported to C:\Temp, an AgingVMs-MM-DD-YYYY.csv and UnAssignedVMs-MM-DD-YYYY.csv. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;System Administrators will need to modify the following areas of this script to align with their environments&lt;/P&gt;&lt;P&gt;·&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;$timeSpan = New-TimeSpan -Days 180&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;·&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;$persistentDrive = "\D$\Users\"&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;·&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;vmName&lt;/STRONG&gt;*&lt;/P&gt;&lt;P&gt;·&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;Export-Csv c:\temp\&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;STRONG&gt;&lt;STRONG&gt;&lt;STRONG&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hljs-comment"&gt;#*****************************************&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hljs-comment"&gt;#&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hljs-comment"&gt;# Author: Silas Sunday&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hljs-comment"&gt;# Version: 1.0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hljs-comment"&gt;# Date: October 30, 2017&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hljs-comment"&gt;#&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hljs-comment"&gt;# Purpose: Used to discover unused VDI clones based&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hljs-comment"&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; on user profile folder LastWriteTime property value.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hljs-comment"&gt;#&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hljs-comment"&gt;#*****************************************&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hljs-variable"&gt;$currentDate&lt;/SPAN&gt; = Get-Date -UFormat &lt;SPAN class="hljs-string"&gt;"-%m-%d-%Y"&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="hljs-comment"&gt;#get current date and format to Month-Day-Year to append at end of CSV exported File&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hljs-variable"&gt;$replyYes&lt;/SPAN&gt; = New-Object System.Management.Automation.Host.ChoiceDescription &lt;SPAN class="hljs-string"&gt;"&amp;amp;Yes"&lt;/SPAN&gt;, &lt;SPAN class="hljs-string"&gt;"Remove User Ownership."&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hljs-variable"&gt;$replyNo&lt;/SPAN&gt; = New-Object System.Management.Automation.Host.ChoiceDescription &lt;SPAN class="hljs-string"&gt;"&amp;amp;No"&lt;/SPAN&gt;, &lt;SPAN class="hljs-string"&gt;"Do NOT Remove User Ownership."&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hljs-variable"&gt;$timeSpan&lt;/SPAN&gt; = New-TimeSpan -Days 180 &lt;SPAN class="hljs-comment"&gt;#establish date in time, where items older that xDays are subject to unassignment&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hljs-variable"&gt;$colUnassigned&lt;/SPAN&gt; = @()&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="hljs-comment"&gt;#create empty array to hold list of users unassigned from vdi clones&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hljs-variable"&gt;$colFolders&lt;/SPAN&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; &lt;SPAN class="hljs-comment"&gt;#create empty array to hold path results&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hljs-variable"&gt;$colResults&lt;/SPAN&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; &lt;SPAN class="hljs-comment"&gt;#create empty array to update results of discovery&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hljs-variable"&gt;$vmList&lt;/SPAN&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="hljs-comment"&gt;#create empty array to hold vdi clone information&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="hljs-variable"&gt;$persistentDrive&lt;/SPAN&gt; = &lt;SPAN class="hljs-string"&gt;"\D$\Users\"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #path variable to persistent drive where user profiles are housed&lt;BR /&gt;&lt;BR /&gt;#query connection manager, pass vm Name and assigned User to &lt;SPAN class="hljs-variable"&gt;$vmList&lt;/SPAN&gt; Array.&amp;nbsp; Excluding vms begining with vmName*.&lt;BR /&gt;#for example:&amp;nbsp; exclude all vm names begining with "&lt;/SPAN&gt;master*&lt;SPAN class="hljs-string"&gt;" and "&lt;/SPAN&gt;replica*&lt;SPAN class="hljs-string"&gt;"&lt;BR /&gt;&lt;SPAN class="hljs-variable"&gt;$vmList&lt;/SPAN&gt; = Get-DesktopVM | Select Name, user_displayname | Where {&lt;SPAN class="hljs-variable"&gt;$_&lt;/SPAN&gt;.Name -notlike "&lt;/SPAN&gt;vmName*&lt;SPAN class="hljs-string"&gt;" -and &lt;SPAN class="hljs-variable"&gt;$_&lt;/SPAN&gt;.Name -notlike "&lt;/SPAN&gt;vmName*&lt;SPAN class="hljs-string"&gt;"&amp;nbsp; #add more exclusion is needed&lt;BR /&gt;&lt;BR /&gt;foreach (&lt;SPAN class="hljs-variable"&gt;$i&lt;/SPAN&gt; in &lt;SPAN class="hljs-variable"&gt;$vmList&lt;/SPAN&gt;)&lt;BR /&gt;{&lt;BR /&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; #remove "&lt;/SPAN&gt;DomaindName.DomainName\&lt;SPAN class="hljs-string"&gt;" string information from user_displayname array element&lt;BR /&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; #and replace with nothing ""&amp;nbsp; for example: f2.com\UserID converted to -&amp;gt; UserID&lt;BR /&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; &lt;SPAN class="hljs-variable"&gt;$i&lt;/SPAN&gt;.user_displayname = &lt;SPAN class="hljs-variable"&gt;$i&lt;/SPAN&gt;.user_displayname.Replace("&lt;/SPAN&gt;DomainName.DomainName\&lt;SPAN class="hljs-string"&gt;","")&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;foreach (&lt;SPAN class="hljs-variable"&gt;$i&lt;/SPAN&gt; in &lt;SPAN class="hljs-variable"&gt;$vmList&lt;/SPAN&gt;)&lt;BR /&gt;{&lt;BR /&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; if (&lt;SPAN class="hljs-variable"&gt;$i&lt;/SPAN&gt;.user_displayname -eq &lt;SPAN class="hljs-variable"&gt;$null&lt;/SPAN&gt;){continue}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #skips vm that is not assigned&lt;BR /&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; &lt;SPAN class="hljs-variable"&gt;$testPath&lt;/SPAN&gt; = Test-Path "&lt;/SPAN&gt;\\$(&lt;SPAN class="hljs-variable"&gt;$i&lt;/SPAN&gt;.Name)$(&lt;SPAN class="hljs-variable"&gt;$persistentDrive&lt;/SPAN&gt;)$(&lt;SPAN class="hljs-variable"&gt;$i&lt;/SPAN&gt;.user_displayname)&lt;SPAN class="hljs-string"&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; #checks if folder exists, return TRUE or FALSE&lt;BR /&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; if (&lt;SPAN class="hljs-variable"&gt;$testPath&lt;/SPAN&gt; -eq &lt;SPAN class="hljs-variable"&gt;$false&lt;/SPAN&gt;) {continue}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #vm does not contain DriveLetter$\User\UserID folder.&amp;nbsp; Continue to next VM&lt;BR /&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; &lt;SPAN class="hljs-variable"&gt;$userPath&lt;/SPAN&gt; = "&lt;/SPAN&gt;\\$(&lt;SPAN class="hljs-variable"&gt;$i&lt;/SPAN&gt;.Name)$(&lt;SPAN class="hljs-variable"&gt;$persistentDrive&lt;/SPAN&gt;)$(&lt;SPAN class="hljs-variable"&gt;$i&lt;/SPAN&gt;.user_displayname)&lt;SPAN class="hljs-string"&gt;" #build full path to user folder&lt;BR /&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; &lt;SPAN class="hljs-variable"&gt;$colFolders&lt;/SPAN&gt; = Get-ItemProperty &lt;SPAN class="hljs-variable"&gt;$userPath&lt;/SPAN&gt; | Select Root, Name, LastWriteTime&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; #Gets properties for Root, Name, and LastWriteTime&lt;BR /&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; &lt;SPAN class="hljs-variable"&gt;$LWT&lt;/SPAN&gt; = (Get-ItemProperty &lt;SPAN class="hljs-variable"&gt;$userPath&lt;/SPAN&gt;).LastWriteTime&lt;BR /&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; &lt;SPAN class="hljs-variable"&gt;$colResults&lt;/SPAN&gt; += &lt;SPAN class="hljs-variable"&gt;$colFolders&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #update array with Root, Name, LastWriteTime&lt;BR /&gt;#*****************************************&lt;BR /&gt;#This block will perform vdi user unassignment&lt;BR /&gt;if (((Get-Date) - &lt;SPAN class="hljs-variable"&gt;$LWT&lt;/SPAN&gt;) -gt &lt;SPAN class="hljs-variable"&gt;$timeSpan&lt;/SPAN&gt;)&amp;nbsp;&amp;nbsp; #if current date minus LaswWriteTime is greater than &lt;SPAN class="hljs-variable"&gt;$timeSpan&lt;/SPAN&gt; days then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&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; &lt;SPAN class="hljs-variable"&gt;$titleMSG&lt;/SPAN&gt; = "&lt;/SPAN&gt;Remove User Ownership&lt;SPAN class="hljs-string"&gt;"&lt;BR /&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; &lt;SPAN class="hljs-variable"&gt;$questionMSG&lt;/SPAN&gt; = "&lt;/SPAN&gt;User $(&lt;SPAN class="hljs-variable"&gt;$i&lt;/SPAN&gt;.user_displayname) last write time &lt;SPAN class="hljs-keyword"&gt;for&lt;/SPAN&gt; $(&lt;SPAN class="hljs-variable"&gt;$i&lt;/SPAN&gt;.Name) is $(&lt;SPAN class="hljs-variable"&gt;$LWT&lt;/SPAN&gt;) Do you want to remove user ownership from &lt;SPAN class="hljs-built_in"&gt;clone&lt;/SPAN&gt;? (Default NO)&lt;SPAN class="hljs-string"&gt;"&lt;BR /&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; &lt;SPAN class="hljs-variable"&gt;$usrOptions&lt;/SPAN&gt; = [System.Management.Automation.Host.ChoiceDescription[]](&lt;SPAN class="hljs-variable"&gt;$replyYes&lt;/SPAN&gt;, &lt;SPAN class="hljs-variable"&gt;$replyNo&lt;/SPAN&gt;)&lt;BR /&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; &lt;SPAN class="hljs-variable"&gt;$usrResult&lt;/SPAN&gt; = &lt;SPAN class="hljs-variable"&gt;$host&lt;/SPAN&gt;.UI.PromptForChoice(&lt;SPAN class="hljs-variable"&gt;$titleMSG&lt;/SPAN&gt;, &lt;SPAN class="hljs-variable"&gt;$questionMSG&lt;/SPAN&gt;, &lt;SPAN class="hljs-variable"&gt;$usrOptions&lt;/SPAN&gt;, 1)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #0 sets default to YES, 1 sets default to NO&lt;BR /&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; Switch (&lt;SPAN class="hljs-variable"&gt;$usrResult&lt;/SPAN&gt;)&lt;BR /&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; {&lt;BR /&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;&amp;nbsp;&amp;nbsp; 0&lt;BR /&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="hljs-variable"&gt;$colUnassigned&lt;/SPAN&gt; += &lt;SPAN class="hljs-variable"&gt;$colFolders&lt;/SPAN&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; #update array with systems unassigned for export to CSV&lt;BR /&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&lt;/SPAN&gt;You selected Yes.&amp;nbsp; User Assignment will be removed&lt;SPAN class="hljs-string"&gt;";&lt;BR /&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Remove-UserOwnership -machine_id (Get-DesktopVM -Name &lt;SPAN class="hljs-variable"&gt;$i&lt;/SPAN&gt;.Name).machine_id&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; #command to unassign selected user from vm&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="hljs-variable"&gt;$vmRemoved&lt;/SPAN&gt; = "&lt;/SPAN&gt;TRUE&lt;SPAN class="hljs-string"&gt;"&lt;BR /&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&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;&amp;nbsp;&amp;nbsp; 1&lt;BR /&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&lt;/SPAN&gt;You selected No.&amp;nbsp; User Assignment NOT removed&lt;SPAN class="hljs-string"&gt;"&lt;BR /&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&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; }&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;Else&lt;BR /&gt;&amp;nbsp;&amp;nbsp; {&lt;BR /&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; Continue&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #vm has been access recently. Continue to next vm&lt;BR /&gt;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;}&lt;BR /&gt;#*****************************************&lt;BR /&gt;&lt;SPAN class="hljs-variable"&gt;$colAging&lt;/SPAN&gt; = &lt;SPAN class="hljs-variable"&gt;$colAging&lt;/SPAN&gt; | Sort-Object LastWrietTime&lt;BR /&gt;&lt;SPAN class="hljs-variable"&gt;$colUnassigned&lt;/SPAN&gt; = &lt;SPAN class="hljs-variable"&gt;$colUnassigned&lt;/SPAN&gt; | Sort-Object LastWriteTime&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN class="hljs-variable"&gt;$colUnassigned&lt;/SPAN&gt; | Export-Csv c:\temp\AgingVMs&lt;SPAN class="hljs-variable"&gt;$($currentDate)&lt;/SPAN&gt;.csv&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #export VMs aging and date file&lt;BR /&gt;&lt;BR /&gt;if (&lt;SPAN class="hljs-variable"&gt;$vmRemoved&lt;/SPAN&gt; = "&lt;/SPAN&gt;TRUE&lt;SPAN class="hljs-string"&gt;")&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="hljs-variable"&gt;$colUnassigned&lt;/SPAN&gt; | Export-Csv c:\temp\UnassignedVMs&lt;SPAN class="hljs-variable"&gt;$($currentDate)&lt;/SPAN&gt;.csv&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #export VMs unassigned and date file&lt;BR /&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;PRE __default_attr="c#" __jive_macro_name="code" class="_jivemacro_uid_15095453856712752 jive_macro_code jive_text_macro" data-renderedposition="1961_7.699999809265137_1232_0" jivemacro_uid="_15095453856712752"&gt;&lt;P&gt;&lt;/P&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 01 Nov 2017 14:13:47 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/Horizon-Documents/VMware-View-PowerCLI-Script-to-Discover-Un-used-Virtual-Machines/ta-p/2794995</guid>
      <dc:creator>SilasSundayII</dc:creator>
      <dc:date>2017-11-01T14:13:47Z</dc:date>
    </item>
    <item>
      <title>Re: VMware View PowerCLI Script to Discover Un-used Virtual Machines</title>
      <link>https://communities.vmware.com/t5/Horizon-Documents/VMware-View-PowerCLI-Script-to-Discover-Un-used-Virtual-Machines/tac-p/2794996#M290</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for the script!&amp;nbsp; I am having a few issues though.&amp;nbsp; Were you able to get it to work as-is? &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin: 2px; font-family: proxima-nova, Arial, sans-serif; color: #666666;"&gt;&lt;SPAN class="hljs-comment" style="font-weight: inherit; font-style: inherit; font-size: inherit !important; font-family: inherit;"&gt;In the below line.&amp;nbsp; Should this be Get-DesktopVM or just Get-VM?&amp;nbsp; I also added a closing } to the end.&amp;nbsp; I get that to work but the entire script errors out on the &lt;SPAN style="color: #666666; font-family: proxima-nova, Arial, sans-serif;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="hljs-variable" style="font-family: proxima-nova, Arial, sans-serif; color: #666666;"&gt;$i&lt;/SPAN&gt;&lt;SPAN style="color: #666666; font-family: proxima-nova, Arial, sans-serif;"&gt;.user_displayname -eq&amp;nbsp; parameter.&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 2px; font-family: proxima-nova, Arial, sans-serif; color: #666666;"&gt;&lt;/P&gt;&lt;P style="margin: 2px; font-family: proxima-nova, Arial, sans-serif; color: #666666;"&gt;&lt;SPAN class="hljs-comment" style="font-weight: inherit; font-style: inherit; font-size: inherit !important; font-family: inherit;"&gt;&lt;SPAN class="hljs-string" style="font-family: proxima-nova, Arial, sans-serif; color: #666666;"&gt;&lt;SPAN class="hljs-variable" style="font-weight: inherit; font-style: inherit; font-size: inherit !important; font-family: inherit;"&gt;$vmList&lt;/SPAN&gt; = Get-DesktopVM | Select Name, user_displayname | Where {&lt;SPAN class="hljs-variable" style="font-weight: inherit; font-style: inherit; font-size: inherit !important; font-family: inherit;"&gt;$_&lt;/SPAN&gt;.Name -notlike "&lt;/SPAN&gt;&lt;SPAN style="color: #666666; font-family: proxima-nova, Arial, sans-serif;"&gt;vmName*&lt;/SPAN&gt;&lt;SPAN class="hljs-string" style="font-family: proxima-nova, Arial, sans-serif; color: #666666;"&gt;" -and &lt;SPAN class="hljs-variable" style="font-weight: inherit; font-style: inherit; font-size: inherit !important; font-family: inherit;"&gt;$_&lt;/SPAN&gt;.Name -notlike "&lt;/SPAN&gt;&lt;SPAN style="color: #666666; font-family: proxima-nova, Arial, sans-serif;"&gt;vmName*&lt;/SPAN&gt;&lt;SPAN class="hljs-string" style="font-family: proxima-nova, Arial, sans-serif; color: #666666;"&gt;"&amp;nbsp; #add more exclusion is needed&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 24 Aug 2018 14:50:44 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/Horizon-Documents/VMware-View-PowerCLI-Script-to-Discover-Un-used-Virtual-Machines/tac-p/2794996#M290</guid>
      <dc:creator>gpenunuri</dc:creator>
      <dc:date>2018-08-24T14:50:44Z</dc:date>
    </item>
    <item>
      <title>Re: VMware View PowerCLI Script to Discover Un-used Virtual Machines</title>
      <link>https://communities.vmware.com/t5/Horizon-Documents/VMware-View-PowerCLI-Script-to-Discover-Un-used-Virtual-Machines/tac-p/2794997#M291</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;@&lt;A href="https://communities.vmware.com/people/gpenunuri"&gt;gpenunuri&lt;/A&gt;&lt;SPAN style="color: #a9a9a9; font-family: proxima-nova, Arial, sans-serif; font-size: 12.6px;"&gt; if you haven't already figured it out, you need to do this on one of your connection servers.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #a9a9a9; font-family: proxima-nova, Arial, sans-serif; font-size: 12.6px;"&gt;1) Login to one of your connection servers&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #a9a9a9; font-family: proxima-nova, Arial, sans-serif; font-size: 12.6px;"&gt;2) Open PowerShell in Privileged mode &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #a9a9a9; font-family: proxima-nova, Arial, sans-serif; font-size: 12.6px;"&gt;3) Run "Add-PSSnapin vmware.view.Broker"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #a9a9a9; font-family: proxima-nova, Arial, sans-serif; font-size: 12.6px;"&gt;once you do that, "Get-DesktopVM" should be able to list all your VMs. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #a9a9a9; font-family: proxima-nova, Arial, sans-serif; font-size: 12.6px;"&gt;Best of luck!&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 12 Feb 2020 00:02:54 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/Horizon-Documents/VMware-View-PowerCLI-Script-to-Discover-Un-used-Virtual-Machines/tac-p/2794997#M291</guid>
      <dc:creator>RHari</dc:creator>
      <dc:date>2020-02-12T00:02:54Z</dc:date>
    </item>
  </channel>
</rss>

