update
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
<#
|
||||
VM level:
|
||||
VM Name
|
||||
Storage provisioned per disk
|
||||
Storage used per disk
|
||||
Free capacity per disk
|
||||
Disk Mode ( dependent persistent vs independent persistent )
|
||||
Disk Type ( Thick, thin, lazy, eager, etc... )
|
||||
Datastore
|
||||
Replication Technology, if applicable
|
||||
Datacenter
|
||||
#>
|
||||
|
||||
$VMStorageList = [System.Collections.ArrayList]@()
|
||||
$AllVMs = Get-VM | Where-Object { $_.ExtensionData.summary.config.ManagedBy.Type -ne "placeholderVm" }
|
||||
ForEach($VM in $AllVMs){
|
||||
$VmObj = [PSCustomObject]@{
|
||||
VMName = $VM.Name;
|
||||
UsedSpaceGB = $VM.UsedSpaceGB;
|
||||
ProvisionedSpaceGB = $VM.ProvisionedSpaceGB;
|
||||
Datastores = ($VM | Get-Datastore).Name
|
||||
DatastoreCluster = ($VM | Get-DatastoreCluster).Name
|
||||
Replication = switch ( ($VM | Get-TagAssignment -Category 'VR RPO').Tag.Name ){
|
||||
{$_ -like "*ABR*"} {"ABR"}
|
||||
{$_ -like "*:*"} {"VR"}
|
||||
Default {$false}
|
||||
}
|
||||
Datacenter = ($VM | Get-Datacenter).Name
|
||||
Disks = $VM | Get-HardDisk | Select-Object Name,CapacityGB,@{n='StorageFormat';e={$_.StorageFormat.ToString()}},@{n='Persistence';e={$_.Persistence.ToString()}}
|
||||
}
|
||||
$null = $VMStorageList.Add($VmObj)
|
||||
}
|
||||
|
||||
$VMStorageList | ConvertTo-Json -Depth 5 | Out-File "C:\temp\VMs.json"
|
||||
|
||||
|
||||
|
||||
|
||||
<#
|
||||
Datastore:
|
||||
Name
|
||||
Capacity provisioned
|
||||
Capacity used
|
||||
Free capacity
|
||||
Associated SAN device backing ( LUN Name )
|
||||
Space Reclamation rate ( MB/s )
|
||||
Datacenter
|
||||
#>
|
||||
|
||||
$AllDatastores = Get-Datastore
|
||||
$DatastoreList = [System.Collections.ArrayList]@()
|
||||
ForEach($Datastore in $AllDatastores){
|
||||
Write-Verbose -Message ("Start " + $Datastore.Name) -Verbose
|
||||
#$Metadata = ($Datastore | Get-ScsiLun | Select-Object -First 1)
|
||||
|
||||
If ( $Datastore.ExtensionData.info.vmfs.UnmapBandwidthSpec.FixedValue){
|
||||
# if reclamation rate is enabled at fixed rate, get that rate
|
||||
$ReclamationRate = ("Enabled at fixed rate: " + $Datastore.ExtensionData.info.vmfs.UnmapBandwidthSpec.FixedValue + " MB/s")
|
||||
} Else {
|
||||
$ReclamationRate = "UnmapBandwidthSpec is null. Enabled at Low priority: Deleted or unmapped blocks are reclaimed on the LUN at low priority"
|
||||
}
|
||||
|
||||
$DatastoreObj = [PSCustomObject]@{
|
||||
Name = $Datastore.Name;
|
||||
CapacityGB = $Datastore.CapacityGB;
|
||||
UsedSpaceGB = ($Datastore.CapacityGB - $Datastore.FreeSpaceGB);
|
||||
FreeSpaceGB = $Datastore.FreeSpaceGB;
|
||||
CanonicalName = ($Datastore | Get-ScsiLun | Select-Object -First 1).CanonicalName;
|
||||
SpaceReclamationRate = $ReclamationRate;
|
||||
Datacenter = ($VMHostToUse | Get-Datacenter).Name
|
||||
}
|
||||
$null = $DatastoreList.Add($DatastoreObj)
|
||||
}
|
||||
|
||||
$DatastoreList | ConvertTo-Json -Depth 5 | Out-File "C:\temp\Datastores.json"
|
||||
Reference in New Issue
Block a user