Automation

 View Only
  • 1.  Unable to get Datastore name

    Posted Dec 09, 2019 05:38 AM

    Hi,

    I am trying to validate and get the name of the datastore, which has more free space, below script is not working,

    I have two datastores, which has 800 GB and 400 GB free but I am not able to get datastore name with more free space from below.

    please help

    $intNewVMDiskSize = '250'

    $oDatastoreWithMostFree = Get-Cluster MyClus | Get-Datastore | Sort-Object -Property {$_.FreeSpaceGB} -Descending:$true | where {$_.Name -NotMatch '^datastore1|^Datastore123|^MyDatastore3|^datastore_udev'} | Select-Object -ExpandProperty Name -First 1

    if (($oDatastoreWithMostFree.FreespaceGB + 100) -lt $intNewVMDiskSize) {

        $($oDatastoreWithMostFree.Name)

    }

    else {

        "oh, no -- not enough freespace on datastore '$($oDatastoreWithMostFree.Name)' to provision new VM"

        return

    }



  • 2.  RE: Unable to get Datastore name
    Best Answer

    Posted Dec 09, 2019 07:30 AM

    You only seem to select the Name property, while you use the FreespaceGB property as well later on.

    Try like this

    $intNewVMDiskSize = '250'

    $oDatastoreWithMostFree = Get-Cluster MyClus |

        Get-Datastore |

        where {$_.Name -NotMatch '^datastore1|^Datastore123|^MyDatastore3|^datastore_udev'} |

        Sort-Object -Property {$_.FreeSpaceGB} -Descending:$true |

        Select-Object -First 1

      

    if (($oDatastoreWithMostFree.FreespaceGB + 100) -lt $intNewVMDiskSize) {

        $($oDatastoreWithMostFree.Name)

    }

    else {

        "oh, no -- not enough freespace on datastore '$($oDatastoreWithMostFree.Name)' to provision new VM"

        return

    }



  • 3.  RE: Unable to get Datastore name

    Posted Dec 09, 2019 08:38 AM

    perfect...Thanks a lot as always... :smileyhappy: