<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>http://vwiki.co.uk/index.php?action=history&amp;feed=atom&amp;title=PS_PowerCLI-helper-v1.1.ps1</id>
	<title>PS PowerCLI-helper-v1.1.ps1 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://vwiki.co.uk/index.php?action=history&amp;feed=atom&amp;title=PS_PowerCLI-helper-v1.1.ps1"/>
	<link rel="alternate" type="text/html" href="http://vwiki.co.uk/index.php?title=PS_PowerCLI-helper-v1.1.ps1&amp;action=history"/>
	<updated>2026-04-19T08:38:25Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>http://vwiki.co.uk/index.php?title=PS_PowerCLI-helper-v1.1.ps1&amp;diff=1833&amp;oldid=prev</id>
		<title>Sstrutt: Re-orged categories</title>
		<link rel="alternate" type="text/html" href="http://vwiki.co.uk/index.php?title=PS_PowerCLI-helper-v1.1.ps1&amp;diff=1833&amp;oldid=prev"/>
		<updated>2012-04-18T13:55:42Z</updated>

		<summary type="html">&lt;p&gt;Re-orged categories&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:55, 18 April 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l130&quot;&gt;Line 130:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 130:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;VMware]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;PowerCLI_Script&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:PowerShell]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:PowerCLI&lt;/del&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Sstrutt</name></author>
	</entry>
	<entry>
		<id>http://vwiki.co.uk/index.php?title=PS_PowerCLI-helper-v1.1.ps1&amp;diff=1507&amp;oldid=prev</id>
		<title>Sstrutt: Originality note</title>
		<link rel="alternate" type="text/html" href="http://vwiki.co.uk/index.php?title=PS_PowerCLI-helper-v1.1.ps1&amp;diff=1507&amp;oldid=prev"/>
		<updated>2011-10-27T20:11:30Z</updated>

		<summary type="html">&lt;p&gt;Originality note&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 20:11, 27 October 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;This is adapted from other examples found on the internet - original source forgotten, apologies.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# ============================================================================&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# ============================================================================&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Sstrutt</name></author>
	</entry>
	<entry>
		<id>http://vwiki.co.uk/index.php?title=PS_PowerCLI-helper-v1.1.ps1&amp;diff=1238&amp;oldid=prev</id>
		<title>Sstrutt: Initial creation</title>
		<link rel="alternate" type="text/html" href="http://vwiki.co.uk/index.php?title=PS_PowerCLI-helper-v1.1.ps1&amp;diff=1238&amp;oldid=prev"/>
		<updated>2011-03-21T18:16:08Z</updated>

		<summary type="html">&lt;p&gt;Initial creation&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
# ============================================================================&lt;br /&gt;
# PowerCLI Helper Functions Library&lt;br /&gt;
# ============================================================================&lt;br /&gt;
# Simon Strutt        Nov 2010&lt;br /&gt;
# ============================================================================&lt;br /&gt;
#&lt;br /&gt;
# Version 1&lt;br /&gt;
# - Initial Creation&lt;br /&gt;
#&lt;br /&gt;
# Version 1.1 - Nov 2010&lt;br /&gt;
# - Get-FolderPath Bugfix: Regex now handles foldernames with &amp;quot;vm&amp;quot; in&lt;br /&gt;
# - Get-FolderPath Added : Max iteration depth&lt;br /&gt;
#&lt;br /&gt;
# TO DO&lt;br /&gt;
# - Get-FolderPath limitations&lt;br /&gt;
#&lt;br /&gt;
# =============================================================================&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#=======================================================&lt;br /&gt;
# Get-FolderPath ($CurrFolder)&lt;br /&gt;
#&lt;br /&gt;
# Returns full VM path, given its containing folder ID&lt;br /&gt;
#&lt;br /&gt;
# Limitations...&lt;br /&gt;
# - Doesn&amp;#039;t handle &amp;#039; chars&lt;br /&gt;
# - Doesn&amp;#039;t handle foldernames with &amp;quot;vm&amp;quot; in&lt;br /&gt;
# &lt;br /&gt;
#=======================================================&lt;br /&gt;
function Get-FolderPath ($CurrFolder) {&lt;br /&gt;
    $path = &amp;quot;&amp;quot;&lt;br /&gt;
    $i = 0&lt;br /&gt;
    While ($CurrFolder.Name -notmatch &amp;quot;\bvm\b&amp;quot;) {&lt;br /&gt;
        $path = ($CurrFolder.Name) + &amp;quot;\&amp;quot; + $path&lt;br /&gt;
        $CurrFolder = Get-Folder -Id $CurrFolder.ParentId&lt;br /&gt;
        $i ++&lt;br /&gt;
        if ($i &amp;gt; 15) {&lt;br /&gt;
            Log(&amp;quot;ERROR: Get-FolderPath ($CurrFolder) exceeded maximum iteration depth&amp;quot;)&lt;br /&gt;
            $path = &amp;quot;...\&amp;quot; + $path&lt;br /&gt;
            break&lt;br /&gt;
        }    &lt;br /&gt;
    }&lt;br /&gt;
    $path&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#========================================================&lt;br /&gt;
# Get-VMDiskUsage($vm2do)&lt;br /&gt;
#&lt;br /&gt;
# Returns total datastore usage for a VM in GB&lt;br /&gt;
#&lt;br /&gt;
# Limitations...&lt;br /&gt;
# - Doesn&amp;#039;t handle Lab Manager VM&amp;#039;s well&lt;br /&gt;
# &lt;br /&gt;
#=========================================================&lt;br /&gt;
&lt;br /&gt;
function Get-VMDiskUsage($vm2do)&lt;br /&gt;
{&lt;br /&gt;
    #Initialize variables&lt;br /&gt;
    $VMDirs =@()&lt;br /&gt;
    $VMSize = 0&lt;br /&gt;
 &lt;br /&gt;
    $searchSpec = New-Object VMware.Vim.HostDatastoreBrowserSearchSpec&lt;br /&gt;
    $searchSpec.details = New-Object VMware.Vim.FileQueryFlags&lt;br /&gt;
    $searchSpec.details.fileSize = $TRUE&lt;br /&gt;
 &lt;br /&gt;
    Get-View -VIObject $vm2do | % {&lt;br /&gt;
        #Create an array with the vm&amp;#039;s directories&lt;br /&gt;
        $VMDirs += $_.Config.Files.VmPathName.split(&amp;quot;/&amp;quot;)[0]&lt;br /&gt;
        $VMDirs += $_.Config.Files.SnapshotDirectory.split(&amp;quot;/&amp;quot;)[0]&lt;br /&gt;
        $VMDirs += $_.Config.Files.SuspendDirectory.split(&amp;quot;/&amp;quot;)[0]&lt;br /&gt;
        $VMDirs += $_.Config.Files.LogDirectory.split(&amp;quot;/&amp;quot;)[0]&lt;br /&gt;
        #Add directories of the vm&amp;#039;s virtual disk files&lt;br /&gt;
        foreach ($disk in $_.Layout.Disk) {&lt;br /&gt;
            foreach ($diskfile in $disk.diskfile){&lt;br /&gt;
                $VMDirs += $diskfile.split(&amp;quot;/&amp;quot;)[0]&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        #Only take unique array items&lt;br /&gt;
        $VMDirs = $VMDirs | Sort | Get-Unique&lt;br /&gt;
 &lt;br /&gt;
        foreach ($dir in $VMDirs){&lt;br /&gt;
            $ds = Get-Datastore ($dir.split(&amp;quot;[&amp;quot;)[1]).split(&amp;quot;]&amp;quot;)[0]&lt;br /&gt;
            $dsb = Get-View (($ds | get-view).Browser)&lt;br /&gt;
            $taskMoRef  = $dsb.SearchDatastoreSubFolders_Task($dir,$searchSpec)&lt;br /&gt;
            $task = Get-View $taskMoRef &lt;br /&gt;
 &lt;br /&gt;
            while($task.Info.State -eq &amp;quot;running&amp;quot; -or $task.Info.State -eq &amp;quot;queued&amp;quot;){$task = Get-View $taskMoRef }&lt;br /&gt;
            foreach ($result in $task.Info.Result){&lt;br /&gt;
                foreach ($file in $result.File){&lt;br /&gt;
                    $VMSize += $file.FileSize&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    # VM disk usage in GB&lt;br /&gt;
    $VMSize/1048576000&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#========================================================&lt;br /&gt;
# Get-VMDKDatastores($vm2do)&lt;br /&gt;
#&lt;br /&gt;
# Returns VMDK datastores and sizes used by a VM (in a hash table)&lt;br /&gt;
#&lt;br /&gt;
# Limitations...&lt;br /&gt;
# - &lt;br /&gt;
# &lt;br /&gt;
#=========================================================&lt;br /&gt;
&lt;br /&gt;
function Get-VMDKDatastores($vm2do)&lt;br /&gt;
{&lt;br /&gt;
    $VMDKs = Get-VM $vm2do | Get-HardDisk&lt;br /&gt;
    $vmdk =@{}&lt;br /&gt;
    for ($i=0; $i -le $VMDKs.Length-1; $i++) {&lt;br /&gt;
        # Convert path to datasore&lt;br /&gt;
        $ds = ([regex]::matches($VMDKs[$i].Filename, &amp;quot;(?&amp;lt;=\[)(.*?)(?=\])&amp;quot;)).Item(0).Value&lt;br /&gt;
        $ds.Value&lt;br /&gt;
        if ($vmdk.ContainsKey($ds)) {&lt;br /&gt;
            $vmdk.($ds, $vmdk[$ds] + $VMDKs[$i].CapacityKB)&lt;br /&gt;
        } else {&lt;br /&gt;
            $vmdk.Add($ds, $VMDKs[$i].CapacityKB)&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    $vmdk&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:VMware]]&lt;br /&gt;
[[Category:PowerShell]]&lt;br /&gt;
[[Category:PowerCLI]]&lt;/div&gt;</summary>
		<author><name>Sstrutt</name></author>
	</entry>
</feed>