Получить список путей к полной папке виртуальной машины через PowerCLI - PullRequest
0 голосов
/ 26 апреля 2019

Я использую vSphere 6.0 и новейший PowerCLI. Я хочу получить имя виртуальной машины и ее путь. Что-то вроде get-vm myvmware | получить-путь_к_папку

Я пробовал пару решений, найденных в сети, но они либо не работают вообще, либо получают все виртуальные машины. У меня есть список виртуальных машин, которые мне нужны, чтобы получить их пути

1 Ответ

1 голос
/ 26 апреля 2019

Вы можете сделать что-то подобное с помощью функции.Похоже, что VMware не имеет ничего подобного этому встроенному.

Function Get-VMFolderPath {

    param([string]$VMFolderId)

    $Folders = [system.collections.arraylist]::new()
    $tracker = Get-Folder -Id $VMFolderId
    $Obj = [pscustomobject][ordered]@{FolderName = $tracker.Name; FolderID = $tracker.Id}
    $null = $Folders.add($Obj)

    while ($tracker) {
       if ($tracker.parent.type) {
        $tracker = (Get-Folder -Id $tracker.parentId)
        $Obj = [pscustomobject][ordered]@{FolderName = $tracker.Name; FolderID = $tracker.Id}
        $null = $Folders.add($Obj)
           }
           else {
        $Obj = [pscustomobject][ordered]@{FolderName = $tracker.parent.name; FolderID = $tracker.parentId}
        $null = $Folders.add($Obj)
            $tracker = $null
       }
    }
    $Folders.Reverse()
    $Folders.FolderName -join "/"
}

$VM = Get-VM "VM Name"
Get-VMFolderPath $VM.Folder.Id

В этом списке будет показан путь к папке, начиная с контейнера центра обработки данных и заканчивая папкой виртуальной машины, содержащей виртуальную машину.

...