<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PeetersOnline &#187; Disk Usage</title>
	<atom:link href="http://www.peetersonline.nl/index.php/tag/disk-usage/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.peetersonline.nl</link>
	<description>Using Powershell for (virtually) everything!</description>
	<lastBuildDate>Fri, 19 Aug 2011 09:22:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Get VMware Disk Usage with Powershell</title>
		<link>http://www.peetersonline.nl/index.php/vmware/get-vmware-disk-usage-with-powershell/</link>
		<comments>http://www.peetersonline.nl/index.php/vmware/get-vmware-disk-usage-with-powershell/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 12:17:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[datastores]]></category>
		<category><![CDATA[Disk Usage]]></category>
		<category><![CDATA[PowerCLI]]></category>
		<category><![CDATA[VI Toolkit]]></category>
		<category><![CDATA[WMI]]></category>

		<guid isPermaLink="false">http://www.peetersonline.nl/index.php/vmware/get-vmware-disk-usage-with-powershell/</guid>
		<description><![CDATA[Using VMware seriously requires a lot of (shared) storage. This kind of storage (on a SAN for instance) is quite expensive. So you might want to check if you are wasting a lot of this space. When you look at the storage in VMware, it consists of multiple abstraction layers. A virtual machine has one <a href='http://www.peetersonline.nl/index.php/vmware/get-vmware-disk-usage-with-powershell/'>[...]</a>
Related posts:<ol>
<li><a href='http://www.peetersonline.nl/index.php/vmware/remove-vmware-memory-limits-with-powershell/' rel='bookmark' title='Remove vmware memory limits with Powershell'>Remove vmware memory limits with Powershell</a></li>
<li><a href='http://www.peetersonline.nl/index.php/vmware/calculate-vsphere-5-licenses-with-powershell/' rel='bookmark' title='Calculate vSphere 5 Licenses with Powershell (UPDATED)'>Calculate vSphere 5 Licenses with Powershell (UPDATED)</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Using <a href="http://www.vmware.com/" target='_blank'>VMware</a> seriously requires a lot of (shared) storage. This kind of storage (on a SAN for instance) is quite expensive. So you might want to check if you are wasting a lot of this space. When you look at the storage in <a href="http://www.vmware.com/" target='_blank'>VMware</a>, it consists of multiple abstraction layers. A virtual machine has one or more Logical Disks, which are indicated by driveletters. You can use WMI to determine the amount of used and free space (Win32_LogicalDisk). One or more logical disks are contained in a partition. One or more partitions reside on a physical disk. That physical disk is really a virtual disk, a vmdk file to be precise. One or more vmdk files reside in a Datastore, which can be found on a LUN on your SAN.<br />
The following script enumerates most of these layers (from logical disk to datastore) and calculates the used and free space. The final line exports the results to a csv file for use in Excel. And the script also helps you to calculate the average free space by showing the totals without the duplicates (don&#8217;t try to average the averages in excel, that&#8217;s not accurate because datastores contain duplicates and averages should be weighed).</p>
<p><strong>UPDATE: I have modified the script, so no more matching of disks is done based on disk size. The match is made based on SCSI IDs and WMI relations. Thanks to adavidm on the VI Toolkit Community</strong><span id="more-118"></span></p>

<div class="wp_syntax"><div class="code"><pre class="powershell" style="font-family:monospace;"><span style="color: #008000;">#Get VMware Disk Usage</span>
<span style="color: #008000;"># Created by Hugo Peeters</span>
<span style="color: #008000;"># http://www.peetersonline.nl</span>
<span style="color: #008000;"># VARIABLES</span>
<span style="color: #800080;">$Decimals</span> <span style="color: pink;">=</span> <span style="color: #804000;">1</span>
<span style="color: #800080;">$VCServer</span> <span style="color: pink;">=</span> <span style="color: #800000;">&quot;MYVCSERVER&quot;</span>
<span style="color: #008000;"># SCRIPT</span>
<span style="color: #008000;"># Connect to VC</span>
<span style="color: #008080; font-weight: bold;">Write-Progress</span> <span style="color: #800000;">&quot;Gathering Information&quot;</span> <span style="color: #800000;">&quot;Connecting to Virtual Center&quot;</span> <span style="color: #008080; font-style: italic;">-Id</span> <span style="color: #804000;">0</span>
<span style="color: #800080;">$VC</span> <span style="color: pink;">=</span> Connect<span style="color: pink;">-</span>VIServer <span style="color: #800080;">$VCServer</span>
<span style="color: #008000;"># Create Output Collection</span>
<span style="color: #800080;">$myCol</span> <span style="color: pink;">=</span> <span style="color: pink;">@</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
<span style="color: #008000;"># List Datastores (Datastore Name)</span>
<span style="color: #008080; font-weight: bold;">Write-Progress</span> <span style="color: #800000;">&quot;Gathering Information&quot;</span> <span style="color: #800000;">&quot;Listing Datastores&quot;</span> <span style="color: #008080; font-style: italic;">-Id</span> <span style="color: #804000;">0</span>
<span style="color: #800080;">$Datastores</span> <span style="color: pink;">=</span> Get<span style="color: pink;">-</span>Datastore <span style="color: pink;">|</span> <span style="color: #008080; font-weight: bold;">Sort</span> Name
<span style="color: #008000;"># List vms</span>
<span style="color: #008080; font-weight: bold;">Write-Progress</span> <span style="color: #800000;">&quot;Gathering Information&quot;</span> <span style="color: #800000;">&quot;Listing VMs and Disk Files&quot;</span> <span style="color: #008080; font-style: italic;">-Id</span> <span style="color: #804000;">0</span>
<span style="color: #800080;">$VMSummaries</span> <span style="color: pink;">=</span> <span style="color: pink;">@</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
<span style="color: #0000FF;">ForEach</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$vm</span> <span style="color: #0000FF;">in</span> <span style="color: #000000;">&#40;</span>Get<span style="color: pink;">-</span>VM<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
	<span style="color: #000000;">&#123;</span>
	<span style="color: #800080;">$VMView</span> <span style="color: pink;">=</span> <span style="color: #800080;">$VM</span> <span style="color: pink;">|</span> Get<span style="color: pink;">-</span>View
	<span style="color: #0000FF;">ForEach</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$VirtualSCSIController</span> <span style="color: #0000FF;">in</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$VMView</span>.Config.Hardware.Device <span style="color: pink;">|</span> <span style="color: #0000FF;">Where</span> <span style="color: #000000;">&#123;</span><span style="color: #000080;">$_</span>.DeviceInfo.Label <span style="color: #FF0000;">-match</span> <span style="color: #800000;">&quot;SCSI Controller&quot;</span><span style="color: #000000;">&#125;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
		<span style="color: #000000;">&#123;</span>
		<span style="color: #0000FF;">ForEach</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$VirtualDiskDevice</span>  <span style="color: #0000FF;">in</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$VMView</span>.Config.Hardware.Device <span style="color: pink;">|</span> <span style="color: #0000FF;">Where</span> <span style="color: #000000;">&#123;</span><span style="color: #000080;">$_</span>.ControllerKey <span style="color: #FF0000;">-eq</span> <span style="color: #800080;">$VirtualSCSIController</span>.Key<span style="color: #000000;">&#125;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
			<span style="color: #000000;">&#123;</span>
			<span style="color: #800080;">$VMSummary</span> <span style="color: pink;">=</span> <span style="color: #800000;">&quot;&quot;</span> <span style="color: pink;">|</span> <span style="color: #008080; font-weight: bold;">Select</span> VM<span style="color: pink;">,</span> HostName<span style="color: pink;">,</span> PowerState<span style="color: pink;">,</span> DiskFile<span style="color: pink;">,</span> DiskName<span style="color: pink;">,</span> DiskSize<span style="color: pink;">,</span> SCSIController<span style="color: pink;">,</span> SCSITarget
			<span style="color: #800080;">$VMSummary</span>.VM <span style="color: pink;">=</span> <span style="color: #800080;">$VM</span>.Name
			<span style="color: #800080;">$VMSummary</span>.HostName <span style="color: pink;">=</span> <span style="color: #800080;">$VMView</span>.Guest.HostName
			<span style="color: #800080;">$VMSummary</span>.PowerState <span style="color: pink;">=</span> <span style="color: #800080;">$VM</span>.PowerState
			<span style="color: #800080;">$VMSummary</span>.DiskFile <span style="color: pink;">=</span> <span style="color: #800080;">$VirtualDiskDevice</span>.Backing.FileName
			<span style="color: #800080;">$VMSummary</span>.DiskName <span style="color: pink;">=</span> <span style="color: #800080;">$VirtualDiskDevice</span>.DeviceInfo.Label
			<span style="color: #800080;">$VMSummary</span>.DiskSize <span style="color: pink;">=</span> <span style="color: #800080;">$VirtualDiskDevice</span>.CapacityInKB <span style="color: pink;">*</span> 1KB
			<span style="color: #800080;">$VMSummary</span>.SCSIController <span style="color: pink;">=</span> <span style="color: #800080;">$VirtualSCSIController</span>.BusNumber
			<span style="color: #800080;">$VMSummary</span>.SCSITarget <span style="color: pink;">=</span> <span style="color: #800080;">$VirtualDiskDevice</span>.UnitNumber
			<span style="color: #800080;">$VMSummaries</span> <span style="color: pink;">+=</span> <span style="color: #800080;">$VMSummary</span>
			<span style="color: #000000;">&#125;</span>
		<span style="color: #000000;">&#125;</span>
	<span style="color: #008080; font-weight: bold;">Clear-Variable</span> VMView <span style="color: #008080; font-style: italic;">-ErrorAction</span> SilentlyContinue
	<span style="color: #000000;">&#125;</span>
<span style="color: #008000;"># Loop through Datastores</span>
<span style="color: #0000FF;">ForEach</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$Datastore</span> <span style="color: #0000FF;">in</span> <span style="color: #800080;">$Datastores</span><span style="color: #000000;">&#41;</span>
	<span style="color: #000000;">&#123;</span>
	<span style="color: #008000;"># List vmdk files in datastore (vmdk Name)</span>
	<span style="color: #008080; font-weight: bold;">Write-Progress</span> <span style="color: #800000;">&quot;Gathering Information&quot;</span> <span style="color: #000000;">&#40;</span><span style="color: #800000;">&quot;Processing Datastore {0}&quot;</span> <span style="color: #FF0000;">-f</span> <span style="color: #800080;">$Datastore</span>.Name<span style="color: #000000;">&#41;</span> <span style="color: #008080; font-style: italic;">-Id</span> <span style="color: #804000;">0</span>
	<span style="color: #800080;">$DSView</span> <span style="color: pink;">=</span> <span style="color: #800080;">$Datastore</span> <span style="color: pink;">|</span> Get<span style="color: pink;">-</span>View
	<span style="color: #800080;">$fileQueryFlags</span> <span style="color: pink;">=</span> <span style="color: #008080; font-weight: bold;">New-Object</span> VMware.Vim.FileQueryFlags
	<span style="color: #800080;">$fileQueryFlags</span>.FileSize <span style="color: pink;">=</span> <span style="color: #800080;">$true</span>
	<span style="color: #800080;">$fileQueryFlags</span>.FileType <span style="color: pink;">=</span> <span style="color: #800080;">$true</span>
	<span style="color: #800080;">$fileQueryFlags</span>.Modification <span style="color: pink;">=</span> <span style="color: #800080;">$true</span>
	<span style="color: #800080;">$searchSpec</span> <span style="color: pink;">=</span> <span style="color: #008080; font-weight: bold;">New-Object</span> VMware.Vim.HostDatastoreBrowserSearchSpec
	<span style="color: #800080;">$searchSpec</span>.details <span style="color: pink;">=</span> <span style="color: #800080;">$fileQueryFlags</span>
	<span style="color: #800080;">$searchSpec</span>.sortFoldersFirst <span style="color: pink;">=</span> <span style="color: #800080;">$true</span>
	<span style="color: #800080;">$dsBrowser</span> <span style="color: pink;">=</span> Get<span style="color: pink;">-</span>View <span style="color: #800080;">$DSView</span>.browser
	<span style="color: #800080;">$rootPath</span> <span style="color: pink;">=</span> <span style="color: #800000;">&quot;[&quot;</span><span style="color: pink;">+</span><span style="color: #800080;">$DSView</span>.summary.Name<span style="color: pink;">+</span><span style="color: #800000;">&quot;]&quot;</span>
	<span style="color: #800080;">$searchResult</span> <span style="color: pink;">=</span> <span style="color: #800080;">$dsBrowser</span>.SearchDatastoreSubFolders<span style="color: #000000;">&#40;</span><span style="color: #800080;">$rootPath</span><span style="color: pink;">,</span> <span style="color: #800080;">$searchSpec</span><span style="color: #000000;">&#41;</span>
	<span style="color: #0000FF;">ForEach</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$result</span> <span style="color: #0000FF;">in</span> <span style="color: #800080;">$searchResult</span><span style="color: #000000;">&#41;</span>
		<span style="color: #000000;">&#123;</span>
		<span style="color: #0000FF;">ForEach</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$vmdk</span> <span style="color: #0000FF;">in</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$result</span>.File <span style="color: pink;">|</span> <span style="color: pink;">?</span><span style="color: #000000;">&#123;</span><span style="color: #000080;">$_</span>.Path <span style="color: #FF0000;">-like</span> <span style="color: #800000;">&quot;*.vmdk&quot;</span><span style="color: #000000;">&#125;</span> <span style="color: pink;">|</span> <span style="color: #008080; font-weight: bold;">Sort</span> Path<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
			<span style="color: #000000;">&#123;</span>
			<span style="color: #008080; font-weight: bold;">Write-Progress</span> <span style="color: #800000;">&quot;Gathering Information&quot;</span> <span style="color: #000000;">&#40;</span><span style="color: #800000;">&quot;Processing VMDK {0}&quot;</span> <span style="color: #FF0000;">-f</span> <span style="color: #800080;">$vmdk</span>.Path<span style="color: #000000;">&#41;</span> <span style="color: #008080; font-style: italic;">-Id</span> <span style="color: #804000;">1</span>
			<span style="color: #008080; font-weight: bold;">Write-Host</span> <span style="color: #800000;">&quot;==============================================================================&quot;</span>
			<span style="color: #008000;"># Find vm using the vmdk (VM Name)</span>
			<span style="color: #800080;">$VMRef</span> <span style="color: pink;">=</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$VMSummaries</span> <span style="color: pink;">|</span> <span style="color: pink;">?</span><span style="color: #000000;">&#123;</span><span style="color: #000080;">$_</span>.DiskFile <span style="color: #FF0000;">-match</span> <span style="color: #800080;">$Datastore</span>.Name <span style="color: #FF0000;">-and</span> <span style="color: #000080;">$_</span>.DiskFile <span style="color: #FF0000;">-match</span> <span style="color: #800080;">$vmdk</span>.Path<span style="color: #000000;">&#125;</span><span style="color: #000000;">&#41;</span>
			<span style="color: #800000;">&quot;VMDK {0} belongs to VM {1}&quot;</span> <span style="color: #FF0000;">-f</span> <span style="color: #800080;">$vmdk</span>.Path<span style="color: pink;">,</span> <span style="color: #800080;">$VMRef</span>.VM
			<span style="color: #0000FF;">If</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$VMRef</span>.Powerstate <span style="color: #FF0000;">-eq</span> <span style="color: #800000;">&quot;PoweredOn&quot;</span><span style="color: #000000;">&#41;</span>
				<span style="color: #000000;">&#123;</span>
				<span style="color: #008080; font-weight: bold;">Write-Host</span> <span style="color: #800000;">&quot;VM is powered on&quot;</span> <span style="color: #008080; font-style: italic;">-ForegroundColor</span> <span style="color: #800000;">&quot;yellow&quot;</span>
				<span style="color: #800080;">$Partitions</span> <span style="color: pink;">=</span> <span style="color: #008080; font-weight: bold;">Get-WmiObject</span> <span style="color: #008080; font-style: italic;">-Class</span> Win32_DiskPartition <span style="color: #008080; font-style: italic;">-ComputerName</span> <span style="color: #800080;">$VMRef</span>.HostName
				<span style="color: #0000FF;">If</span> <span style="color: #000000;">&#40;</span><span style="color: #000080;">$?</span><span style="color: #000000;">&#41;</span>
					<span style="color: #000000;">&#123;</span>
					<span style="color: #800080;">$Disks</span> <span style="color: pink;">=</span> <span style="color: #008080; font-weight: bold;">Get-WmiObject</span> <span style="color: #008080; font-style: italic;">-Class</span> Win32_DiskDrive <span style="color: #008080; font-style: italic;">-ComputerName</span> <span style="color: #800080;">$VMRef</span>.HostName
					<span style="color: #800080;">$LogicalDisks</span> <span style="color: pink;">=</span> <span style="color: #008080; font-weight: bold;">Get-WmiObject</span> <span style="color: #008080; font-style: italic;">-Class</span> Win32_LogicalDisk <span style="color: #008080; font-style: italic;">-ComputerName</span> <span style="color: #800080;">$VMRef</span>.HostName
					<span style="color: #800080;">$DiskToPartition</span> <span style="color: pink;">=</span> <span style="color: #008080; font-weight: bold;">Get-WmiObject</span> <span style="color: #008080; font-style: italic;">-Class</span> Win32_DiskDriveToDiskPartition <span style="color: #008080; font-style: italic;">-ComputerName</span> <span style="color: #800080;">$VMRef</span>.HostName
					<span style="color: #800080;">$LogicalDiskToPartition</span> <span style="color: pink;">=</span> <span style="color: #008080; font-weight: bold;">Get-WmiObject</span> <span style="color: #008080; font-style: italic;">-Class</span> Win32_LogicalDiskToPartition <span style="color: #008080; font-style: italic;">-ComputerName</span> <span style="color: #800080;">$VMRef</span>.HostName
					<span style="color: #008080; font-weight: bold;">Write-Host</span> <span style="color: #800000;">&quot;Read partition and disk information&quot;</span> <span style="color: #008080; font-style: italic;">-ForegroundColor</span> <span style="color: #800000;">&quot;yellow&quot;</span>
					<span style="color: #008000;"># Match disk based on SCSI ID's</span>
					<span style="color: #800080;">$DiskMatch</span> <span style="color: pink;">=</span> <span style="color: #800080;">$Disks</span> <span style="color: pink;">|</span> <span style="color: pink;">?</span><span style="color: #000000;">&#123;</span><span style="color: #000000;">&#40;</span><span style="color: #000080;">$_</span>.SCSIPort <span style="color: pink;">-</span> <span style="color: #804000;">1</span><span style="color: #000000;">&#41;</span> <span style="color: #FF0000;">-eq</span> <span style="color: #800080;">$VMRef</span>.SCSIController <span style="color: #FF0000;">-and</span> <span style="color: #000080;">$_</span>.SCSITargetID <span style="color: #FF0000;">-eq</span> <span style="color: #800080;">$VMRef</span>.SCSITarget<span style="color: #000000;">&#125;</span>
					<span style="color: #0000FF;">If</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$DiskMatch</span> <span style="color: #FF0000;">-eq</span> <span style="color: #800080;">$null</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span><span style="color: #008080; font-weight: bold;">Write-Warning</span> <span style="color: #800000;">&quot;NO MATCHES!&quot;</span><span style="color: #000000;">&#125;</span>
					<span style="color: #0000FF;">Else</span>
						<span style="color: #000000;">&#123;</span>
						<span style="color: #008080; font-weight: bold;">Write-Host</span> <span style="color: #800000;">&quot;Found match:&quot;</span> <span style="color: #008080; font-style: italic;">-ForegroundColor</span> <span style="color: #800000;">&quot;yellow&quot;</span>
						<span style="color: #800080;">$DiskMatch</span>
						<span style="color: #008000;"># Find the Partition(s) on this disk</span>
						<span style="color: #800080;">$PartitionsOnDisk</span> <span style="color: pink;">=</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$DiskToPartition</span> <span style="color: pink;">|</span> <span style="color: pink;">?</span><span style="color: #000000;">&#123;</span><span style="color: #000080;">$_</span>.Antecedent <span style="color: #FF0000;">-eq</span> <span style="color: #800080;">$DiskMatch</span>.__PATH<span style="color: #000000;">&#125;</span><span style="color: #000000;">&#41;</span>
						<span style="color: #0000FF;">If</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$PartitionsOnDisk</span> <span style="color: #FF0000;">-eq</span> <span style="color: #800080;">$null</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span><span style="color: #008080; font-weight: bold;">Write-Warning</span> <span style="color: #800000;">&quot;NO PARTITIONS!&quot;</span><span style="color: #000000;">&#125;</span>
						<span style="color: #0000FF;">Else</span>
							<span style="color: #000000;">&#123;</span>
							<span style="color: #0000FF;">ForEach</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$PartitionOnDisk</span> <span style="color: #0000FF;">in</span> <span style="color: #800080;">$PartitionsOnDisk</span><span style="color: #000000;">&#41;</span>
								<span style="color: #000000;">&#123;</span>
								<span style="color: #008080; font-weight: bold;">Write-Host</span> <span style="color: #800000;">&quot;Disk contains partition&quot;</span> <span style="color: #008080; font-style: italic;">-ForegroundColor</span> <span style="color: #800000;">&quot;yellow&quot;</span>
								<span style="color: #800080;">$PartitionOnDisk</span>.Dependent
								<span style="color: #800080;">$PartitionMatches</span> <span style="color: pink;">=</span> <span style="color: #800080;">$Partitions</span> <span style="color: pink;">|</span> <span style="color: pink;">?</span><span style="color: #000000;">&#123;</span><span style="color: #000080;">$_</span>.__PATH <span style="color: #FF0000;">-eq</span> <span style="color: #800080;">$PartitionOnDisk</span>.Dependent<span style="color: #000000;">&#125;</span>
								<span style="color: #0000FF;">ForEach</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$PartitionMatch</span> <span style="color: #0000FF;">in</span> <span style="color: #800080;">$PartitionMatches</span><span style="color: #000000;">&#41;</span>
									<span style="color: #000000;">&#123;</span>
									<span style="color: #800080;">$LogicalDiskRefs</span> <span style="color: pink;">=</span> <span style="color: #800080;">$LogicalDiskToPartition</span> <span style="color: pink;">|</span> <span style="color: pink;">?</span><span style="color: #000000;">&#123;</span><span style="color: #000080;">$_</span>.Antecedent <span style="color: #FF0000;">-eq</span> <span style="color: #800080;">$PartitionMatch</span>.__PATH<span style="color: #000000;">&#125;</span>
									<span style="color: #0000FF;">If</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$LogicalDiskRefs</span> <span style="color: #FF0000;">-eq</span> <span style="color: #800080;">$null</span><span style="color: #000000;">&#41;</span>
										<span style="color: #000000;">&#123;</span>
										<span style="color: #008080; font-weight: bold;">Write-Warning</span> <span style="color: #800000;">&quot;NO LOGICAL DISKS!&quot;</span>
										<span style="color: #000000;">&#125;</span>
									<span style="color: #0000FF;">Else</span>
										<span style="color: #000000;">&#123;</span>
										<span style="color: #0000FF;">ForEach</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$LogicalDiskRef</span> <span style="color: #0000FF;">in</span> <span style="color: #800080;">$LogicalDiskRefs</span><span style="color: #000000;">&#41;</span>
											<span style="color: #000000;">&#123;</span>
											<span style="color: #800080;">$LogicalDiskMatches</span> <span style="color: pink;">=</span> <span style="color: #800080;">$LogicalDisks</span> <span style="color: pink;">|</span> <span style="color: pink;">?</span><span style="color: #000000;">&#123;</span><span style="color: #000080;">$_</span>.__PATH <span style="color: #FF0000;">-eq</span> <span style="color: #800080;">$LogicalDiskRef</span>.Dependent<span style="color: #000000;">&#125;</span>
											<span style="color: #0000FF;">ForEach</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$LogicalDiskMatch</span> <span style="color: #0000FF;">in</span> <span style="color: #800080;">$LogicalDiskMatches</span><span style="color: #000000;">&#41;</span>
												<span style="color: #000000;">&#123;</span>
												<span style="color: #008080; font-weight: bold;">Write-Host</span> <span style="color: #800000;">&quot;Matching Logical Disk:&quot;</span> <span style="color: #008080; font-style: italic;">-ForegroundColor</span> <span style="color: #800000;">&quot;yellow&quot;</span>
												<span style="color: #800080;">$LogicalDiskMatch</span>
												<span style="color: #008000;"># Create Output Object</span>
												<span style="color: #800080;">$myObj</span> <span style="color: pink;">=</span> <span style="color: #800000;">&quot;&quot;</span> <span style="color: pink;">|</span> <span style="color: #008080; font-weight: bold;">Select</span> Datastore<span style="color: pink;">,</span> DSSizeGB<span style="color: pink;">,</span> DSFreeGB<span style="color: pink;">,</span> DSPercentFree<span style="color: pink;">,</span> DiskFile<span style="color: pink;">,</span> VM<span style="color: pink;">,</span> HardDisk<span style="color: pink;">,</span> DriveLetter<span style="color: pink;">,</span> DiskSizeGB<span style="color: pink;">,</span> DiskFreeGB<span style="color: pink;">,</span> PercFree
												<span style="color: #008000;"># List datastore name</span>
												<span style="color: #800080;">$myObj</span>.Datastore <span style="color: pink;">=</span> <span style="color: #800080;">$Datastore</span>.Name
												<span style="color: #008000;"># Determine datastore size in GB</span>
												<span style="color: #800080;">$myObj</span>.DSSizeGB <span style="color: pink;">=</span> <span style="color: #000000;">&#91;</span>Math<span style="color: #000000;">&#93;</span>::Round<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span><span style="color: #800080;">$Datastore</span>.CapacityMB <span style="color: pink;">*</span> 1MB <span style="color: pink;">/</span> 1GB<span style="color: #000000;">&#41;</span><span style="color: pink;">,</span><span style="color: #800080;">$Decimals</span><span style="color: #000000;">&#41;</span>
												<span style="color: #800080;">$myObj</span>.DSFreeGB <span style="color: pink;">=</span> <span style="color: #000000;">&#91;</span>Math<span style="color: #000000;">&#93;</span>::Round<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span><span style="color: #800080;">$Datastore</span>.FreeSpaceMB <span style="color: pink;">*</span> 1MB <span style="color: pink;">/</span> 1GB<span style="color: #000000;">&#41;</span><span style="color: pink;">,</span><span style="color: #800080;">$Decimals</span><span style="color: #000000;">&#41;</span>
												<span style="color: #008000;"># Determine datastore free space (DS%Free)</span>
												<span style="color: #800080;">$myObj</span>.DSPercentFree <span style="color: pink;">=</span> <span style="color: #000000;">&#91;</span>Math<span style="color: #000000;">&#93;</span>::Round<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span><span style="color: #804000;">100</span><span style="color: pink;">*</span><span style="color: #000000;">&#40;</span><span style="color: #800080;">$Datastore</span>.FreeSpaceMB<span style="color: pink;">/</span><span style="color: #800080;">$Datastore</span>.CapacityMB<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: pink;">,</span><span style="color: #800080;">$Decimals</span><span style="color: #000000;">&#41;</span>
												<span style="color: #008000;"># List disk file name</span>
												<span style="color: #800080;">$myObj</span>.DiskFile <span style="color: pink;">=</span> <span style="color: #800080;">$vmdk</span>.Path
												<span style="color: #008000;"># List VM Name</span>
												<span style="color: #800080;">$myObj</span>.VM <span style="color: pink;">=</span> <span style="color: #800080;">$VMRef</span>.VM
												<span style="color: #008000;"># Determine virtual hard disk / logical drive</span>
												<span style="color: #800080;">$myObj</span>.HardDisk <span style="color: pink;">=</span> <span style="color: #800080;">$VMRef</span>.DiskName
												<span style="color: #008000;"># Report driveletter</span>
												<span style="color: #800080;">$myObj</span>.DriveLetter <span style="color: pink;">=</span> <span style="color: #800080;">$LogicalDiskMatch</span>.DeviceID
												<span style="color: #008000;"># Report Size</span>
												<span style="color: #800080;">$myObj</span>.DiskSizeGB <span style="color: pink;">=</span> <span style="color: #000000;">&#91;</span>Math<span style="color: #000000;">&#93;</span>::Round<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span><span style="color: #800080;">$LogicalDiskMatch</span>.Size <span style="color: pink;">/</span> 1GB<span style="color: #000000;">&#41;</span><span style="color: pink;">,</span><span style="color: #800080;">$Decimals</span><span style="color: #000000;">&#41;</span>
												<span style="color: #008000;"># Report Free Space</span>
												<span style="color: #800080;">$myObj</span>.DiskFreeGB <span style="color: pink;">=</span> <span style="color: #000000;">&#91;</span>Math<span style="color: #000000;">&#93;</span>::Round<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span><span style="color: #800080;">$LogicalDiskMatch</span>.FreeSpace <span style="color: pink;">/</span> 1GB<span style="color: #000000;">&#41;</span><span style="color: pink;">,</span><span style="color: #800080;">$Decimals</span><span style="color: #000000;">&#41;</span>
												<span style="color: #008000;"># Calculate Percentage free space</span>
												<span style="color: #800080;">$myObj</span>.PercFree <span style="color: pink;">=</span> <span style="color: #000000;">&#91;</span>Math<span style="color: #000000;">&#93;</span>::Round<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span><span style="color: #804000;">100</span> <span style="color: pink;">*</span> <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#91;</span><span style="color: #008080;">int</span><span style="color: #000000;">&#93;</span><span style="color: #000000;">&#40;</span><span style="color: #800080;">$LogicalDiskMatch</span>.FreeSpace <span style="color: pink;">/</span> 1MB<span style="color: #000000;">&#41;</span> <span style="color: pink;">/</span> <span style="color: #000000;">&#91;</span><span style="color: #008080;">int</span><span style="color: #000000;">&#93;</span><span style="color: #000000;">&#40;</span><span style="color: #800080;">$LogicalDiskMatch</span>.Size <span style="color: pink;">/</span> 1MB<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: pink;">,</span><span style="color: #800080;">$Decimals</span><span style="color: #000000;">&#41;</span>
												<span style="color: #008080; font-weight: bold;">Write-Host</span> <span style="color: #800000;">&quot;RESULT:&quot;</span> <span style="color: #008080; font-style: italic;">-ForegroundColor</span> <span style="color: #800000;">&quot;yellow&quot;</span>
												<span style="color: #800080;">$myObj</span>
												<span style="color: #008000;"># Add output object to output collection</span>
												<span style="color: #800080;">$myCol</span> <span style="color: pink;">+=</span> <span style="color: #800080;">$myObj</span>
												<span style="color: #000000;">&#125;</span>
											<span style="color: #008080; font-weight: bold;">Clear-Variable</span> LogicalDiskMatches <span style="color: #008080; font-style: italic;">-ErrorAction</span> SilentlyContinue
											<span style="color: #000000;">&#125;</span>
										<span style="color: #000000;">&#125;</span>
									<span style="color: #008080; font-weight: bold;">Clear-Variable</span> LogicalDiskRefs <span style="color: #008080; font-style: italic;">-ErrorAction</span> SilentlyContinue
									<span style="color: #000000;">&#125;</span>
								<span style="color: #008080; font-weight: bold;">Clear-Variable</span> PartitionMatches <span style="color: #008080; font-style: italic;">-ErrorAction</span> SilentlyContinue
								<span style="color: #000000;">&#125;</span>
							<span style="color: #000000;">&#125;</span>
						<span style="color: #008080; font-weight: bold;">Clear-Variable</span> PartitionsOnDisk <span style="color: #008080; font-style: italic;">-ErrorAction</span> SilentlyContinue
						<span style="color: #000000;">&#125;</span>
					<span style="color: #008080; font-weight: bold;">Clear-Variable</span> DiskMatch <span style="color: #008080; font-style: italic;">-ErrorAction</span> SilentlyContinue
					<span style="color: #008080; font-weight: bold;">Clear-Variable</span> Disks <span style="color: #008080; font-style: italic;">-ErrorAction</span> SilentlyContinue
					<span style="color: #008080; font-weight: bold;">Clear-Variable</span> LogicalDisks <span style="color: #008080; font-style: italic;">-ErrorAction</span> SilentlyContinue
					<span style="color: #008080; font-weight: bold;">Clear-Variable</span> DiskToPartition <span style="color: #008080; font-style: italic;">-ErrorAction</span> SilentlyContinue
					<span style="color: #008080; font-weight: bold;">Clear-Variable</span> LogicalDiskToPartition <span style="color: #008080; font-style: italic;">-ErrorAction</span> SilentlyContinue
					<span style="color: #000000;">&#125;</span>
				<span style="color: #008080; font-weight: bold;">Clear-Variable</span> Partitions <span style="color: #008080; font-style: italic;">-ErrorAction</span> SilentlyContinue
				<span style="color: #000000;">&#125;</span>
			<span style="color: #0000FF;">Else</span>
				<span style="color: #000000;">&#123;</span>
				<span style="color: #008080; font-weight: bold;">Write-Host</span> <span style="color: #800000;">&quot;VM is powered off&quot;</span> <span style="color: #008080; font-style: italic;">-ForegroundColor</span> <span style="color: #800000;">&quot;yellow&quot;</span>
				<span style="color: #000000;">&#125;</span>
			<span style="color: #008080; font-weight: bold;">Clear-Variable</span> VMRef <span style="color: #008080; font-style: italic;">-ErrorAction</span> SilentlyContinue
			<span style="color: #008080; font-weight: bold;">Write-Progress</span> <span style="color: #800000;">&quot;Gathering Information&quot;</span> <span style="color: #000000;">&#40;</span><span style="color: #800000;">&quot;Processing VMDK {0}&quot;</span> <span style="color: #FF0000;">-f</span> <span style="color: #800080;">$vmdk</span>.Path<span style="color: #000000;">&#41;</span> <span style="color: #008080; font-style: italic;">-Id</span> <span style="color: #804000;">1</span> <span style="color: #008080; font-style: italic;">-Completed</span>
			<span style="color: #000000;">&#125;</span>
		<span style="color: #000000;">&#125;</span>
	<span style="color: #000000;">&#125;</span>
<span style="color: #008000;"># Disconnect from VC</span>
Disconnect<span style="color: pink;">-</span>VIServer <span style="color: #008080; font-style: italic;">-Confirm</span>:<span style="color: #800080;">$False</span>
<span style="color: #008000;"># OUTPUT</span>
<span style="color: #008080; font-weight: bold;">Write-Host</span> <span style="color: #800000;">&quot;===================================================&quot;</span>
<span style="color: #008080; font-weight: bold;">Write-Host</span> <span style="color: #800000;">&quot;===================================================&quot;</span>
<span style="color: #800080;">$TotalDSFree</span> <span style="color: pink;">=</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$myCol</span> <span style="color: pink;">|</span> <span style="color: #008080; font-weight: bold;">Select</span> Datastore<span style="color: pink;">,</span> DSFreeGB <span style="color: #008080; font-style: italic;">-Unique</span> <span style="color: pink;">|</span> <span style="color: #008080; font-weight: bold;">Measure-Object</span> DSFreeGB <span style="color: #008080; font-style: italic;">-Sum</span><span style="color: #000000;">&#41;</span>.Sum
<span style="color: #800080;">$TotalDSSize</span> <span style="color: pink;">=</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$myCol</span> <span style="color: pink;">|</span> <span style="color: #008080; font-weight: bold;">Select</span> Datastore<span style="color: pink;">,</span> DSSizeGB <span style="color: #008080; font-style: italic;">-Unique</span> <span style="color: pink;">|</span> <span style="color: #008080; font-weight: bold;">Measure-Object</span> DSSizeGB <span style="color: #008080; font-style: italic;">-Sum</span><span style="color: #000000;">&#41;</span>.Sum
<span style="color: #800080;">$AverageDSFree</span> <span style="color: pink;">=</span>  <span style="color: #000000;">&#91;</span>Math<span style="color: #000000;">&#93;</span>::Round<span style="color: #000000;">&#40;</span><span style="color: #804000;">100</span> <span style="color: pink;">*</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$TotalDSFree</span> <span style="color: pink;">/</span> <span style="color: #800080;">$TotalDSSize</span><span style="color: #000000;">&#41;</span><span style="color: pink;">,</span><span style="color: #800080;">$Decimals</span><span style="color: #000000;">&#41;</span>
<span style="color: #800080;">$AverageDiskFree</span> <span style="color: pink;">=</span>  <span style="color: #000000;">&#91;</span>Math<span style="color: #000000;">&#93;</span>::Round<span style="color: #000000;">&#40;</span><span style="color: #804000;">100</span> <span style="color: pink;">*</span> <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span><span style="color: #800080;">$myCol</span> <span style="color: pink;">|</span> <span style="color: #008080; font-weight: bold;">Measure-Object</span> DiskFreeGB <span style="color: #008080; font-style: italic;">-Sum</span><span style="color: #000000;">&#41;</span>.Sum <span style="color: pink;">/</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$myCol</span> <span style="color: pink;">|</span> <span style="color: #008080; font-weight: bold;">Measure-Object</span> DiskSizeGB <span style="color: #008080; font-style: italic;">-Sum</span><span style="color: #000000;">&#41;</span>.Sum<span style="color: #000000;">&#41;</span><span style="color: pink;">,</span><span style="color: #800080;">$Decimals</span><span style="color: #000000;">&#41;</span>
<span style="color: #008080; font-weight: bold;">Write-Host</span> <span style="color: #800000;">&quot;Total DS Free: $TotalDSFree&quot;</span>
<span style="color: #008080; font-weight: bold;">Write-Host</span> <span style="color: #800000;">&quot;Total DS Size: $TotalDSSize&quot;</span>
<span style="color: #008080; font-weight: bold;">Write-Host</span> <span style="color: #800000;">&quot;Average DS Free Percentage: $AverageDSFree&quot;</span>
<span style="color: #008080; font-weight: bold;">Write-Host</span> <span style="color: #800000;">&quot;Average Disk Free Percentage: $AverageDiskFree&quot;</span>
<span style="color: #800080;">$myCol</span> <span style="color: pink;">|</span> <span style="color: #008080; font-weight: bold;">Export-Csv</span> <span style="color: #008080; font-style: italic;">-NoTypeInformation</span> <span style="color: #800000;">'P:\#TEMP\VMwareDiskUsage.csv'</span></pre></div></div>

<p>Related posts:<ol>
<li><a href='http://www.peetersonline.nl/index.php/vmware/remove-vmware-memory-limits-with-powershell/' rel='bookmark' title='Remove vmware memory limits with Powershell'>Remove vmware memory limits with Powershell</a></li>
<li><a href='http://www.peetersonline.nl/index.php/vmware/calculate-vsphere-5-licenses-with-powershell/' rel='bookmark' title='Calculate vSphere 5 Licenses with Powershell (UPDATED)'>Calculate vSphere 5 Licenses with Powershell (UPDATED)</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.peetersonline.nl/index.php/vmware/get-vmware-disk-usage-with-powershell/feed/</wfw:commentRss>
		<slash:comments>76</slash:comments>
		</item>
	</channel>
</rss>

