powershell - 通过 PowerCLI 获取 VM 完整文件夹路径列表
问题描述
我正在使用 vSphere 6.0 和最新的 PowerCLI。我想获取 VM 的名称及其路径。类似 get-vm myvmware | 获取文件夹路径
我已经尝试了一些在网上找到的解决方案,但它们要么根本不起作用,要么得到了所有的虚拟机。我有一个虚拟机列表,我需要提供给它以获取它们的路径
解决方案
你可以用一个函数做这样的事情。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
这将列出从数据中心容器开始到包含 VM 的 VM 文件夹的文件夹路径。
推荐阅读
- r - r blogdown: project content disappears
- python - 为什么转换后的 numpy 数组没有显示在 Spyder 4 的变量 exloporer 中?
- snowflake-cloud-data-platform - 内置函数的连接问题
- android - OneSignal Notification Sound not playing on app open
- javascript - Scroll to top button makes vanilla JS smooth page scrolling jump/bounce back
- r - 基本 R 绘图的颜色已更改 - 我可以恢复到旧调色板吗?
- swift - 检查今天是否是新的一天 SwiftUI
- laravel - 与文档相比,laravel 模型关系似乎倒退了
- javascript - 处理 promise 和 async await 函数
- google-chrome - 测试时如何跳过谷歌登录