3 Replies Latest reply on Oct 6, 2015 2:24 PM by mattboren

    powercli script for checking format of disk

    lorried82 Novice

      anyone have a script to query datastores to find out the VM and the hard disks it has with the format?

       

      for example

      VM, Hard Disk, DataStore Name, Type (format)

       

      I would like to be able to run this by Datacenter and Cluster.

       

      Is that possible?

       

      Thanks

        • 1. Re: powercli script for checking format of disk
          mattboren Master
          vExpert

          Hello, lorried82-

           

          Sure is.  Here's a snippet that uses the -PipelineVariable parameter available since PowerShell v4 to get such info:

           

          Get-Datacenter -PipelineVariable oThisDatacenter | %{
             
          ## get all of the clusters in this datacenter
              Get-Cluster -Location $oThisDatacenter -PipelineVariable oThisCluster | %{
                 
          ## get all of the VMs in this cluster, and their HDisks
                  Get-VM -Location $oThisCluster | Get-HardDisk |
                     
          Select @{n="VM"; e={$_.Parent}},
                          @{n
          ="HardDisk"; e={$_}},
                          @{n
          ="Datastore"; e={$_.Filename.Split("]")[0].Trim("[")}},
                          StorageFormat,
                          @{n
          ="Cluster"; e={$oThisCluster}},
                          @{n
          ="DataCenter"; e={$oThisDatacenter}}
              }

          }

           

          And, I added the Cluster and Datastore properties for each object, assuming that would be useful at some point.  If not, just remove those items from the Select statement, of course.  How's that do for you?

          • 2. Re: powercli script for checking format of disk
            lorried82 Novice

            thanks Matt this looks great but I am not sure - what should I be changing here? Do I run this by cluster or datastore name?

            • 3. Re: powercli script for checking format of disk
              mattboren Master
              vExpert

              Hello, lorried82-

               

              Well, that depends upon the things upon which you want to report.  As written, the code will:

              1. get all datacenters
              2. for each datacenter, get all clusters
              3. for each cluster, get all VMs
              4. for each VM, get its hard disks
              5. for each hard disk, return a selected object that includes info like the VM of the hard disk, the datastore on which the hard disk resides, the storage format of the hard disk, and the cluster and datacenter of the VM

               

              If you wanted to narrow this down, you could add a datacenter name in the Get-Datacenter portion, or adjust it a bit to just report on a particular cluster (remove the Get-Datacenter portion altogether, and the DataCenter calculated property on the Select statement), and so on.

               

              Is that helpful, or do you have a specific/different way in which you want to use the code?