用于查找没有安全标记和组的所有 VM 的 Powershell 脚本

Powershell script to Find all VMs without a security tag and group

我安装了 powercli 模块,无论我尝试什么都无法让 powernsx 工作,所以我只能直接 API 调用 NSX。

目标是报告所有未应用安全标记的虚拟机。

我知道我可以使用 Get-VM 查看所有 VM,并且我可以调用 https://10.x.x.x/api/2.0/services/securitytags/tag

获取所有安全标签

该安全标记调用只会 return 它所应用的 VM 数量,而不是名称。我需要这些名称,以便与 Get-VM 的输出进行比较。

有谁知道如何查看所有具有 NSX 安全标记的虚拟机的名称?问题是系统管理员启动了新服务器并且没有标记它们。需要查看哪些未标记。

查看此命令是否可以帮助您找到所需的内容,(reference)

Get-VM | Get-NsxSecuritytagassignment | select-object @{Name="SecurityTag"; expression = {$_.securitytag.name}}, VirtualMachine