Automation

 View Only
  • 1.  vSAN policy in different datastores

    Posted Jan 31, 2023 12:03 PM

    I have just identified a problem in a large environment and I need to know the best way to address it.

    I identified virtual machines on different datastore, vSAN and datastore on storage bays.

    The problem is that someone applied the "vSAN Default Storage Policy" to all virtual machines.

    I made this little script to help me find the details of the VMDK of each virtual machine and I would like to add the following information:

    • VM Storage Policies
    • VM Storage Policy Compliance
    • DataStore Type

    Is that possible, or do I have to do it differently?

    Script:

    $report = @()
    foreach ($vm in Get-VM){
    $view = Get-View $vm
    if ($view.config.hardware.Device.Backing.ThinProvisioned -eq $true){
    $row = '' | select Name, Provisioned, Total, Used, VMDKs, VMDKsize, DiskUsed, Thin
    $row.Name = $vm.Name
    $row.Provisioned = [math]::round($vm.ProvisionedSpaceGB , 2)
    $row.Total = [math]::round(($view.config.hardware.Device | Measure-Object CapacityInKB -Sum).sum/1048576 , 2)
    $row.Used = [math]::round($vm.UsedSpaceGB , 2)
    $row.VMDKs = $view.config.hardware.Device.Backing.Filename | Out-String
    $row.VMDKsize = $view.config.hardware.Device | where {$_.GetType().name -eq 'VirtualDisk'} | ForEach-Object {($_.capacityinKB)/1048576} | Out-String
    $row.DiskUsed = $vm.Extensiondata.Guest.Disk | ForEach-Object {[math]::round( ($_.Capacity - $_.FreeSpace)/1048576/1024, 2 )} | Out-String
    $row.Thin = $view.config.hardware.Device.Backing.ThinProvisioned | Out-String
    $report += $row
    }}
    $report | Sort Name | Export-Csv -Path "D:Thin_Disks.csv"



  • 2.  RE: vSAN policy in different datastores
    Best Answer

    Posted Jan 31, 2023 12:22 PM

    Try with

    Don't forget to add StoragePolicy on the line where you define $row.



  • 3.  RE: vSAN policy in different datastores

    Posted Jan 31, 2023 05:10 PM

      Thank you it's working fine

     

    would you please help me with sources or some example in order to show output in GB or Go Like this :

    20 Go or GB
    30 Go or GB

    As for now the output is like this

    lElOUCHE_79_0-1675184909578.png

     

     



  • 4.  RE: vSAN policy in different datastores

    Posted Jan 31, 2023 05:32 PM

    Try something like this

    Similar for Used and DiskUsed



  • 5.  RE: vSAN policy in different datastores

    Posted Jan 31, 2023 06:55 PM

    Like this I'm getting error

    $row.DiskUsed = $vm.Extensiondata.Guest.Disk | ForEach-Object {[math]::round( "{0:N2} GB" -f ($_.Capacity - $_.FreeSpace)/1048576/1024, 2 )} | Out-String


  • 6.  RE: vSAN policy in different datastores
    Best Answer

    Posted Jan 31, 2023 07:04 PM

    That should be like this