Windows
使用 PowerCLI 導出沒有特定標籤的 VM 列表
我正在嘗試導出一個 CSV 文件,該文件包含集群中所有虛擬機的列表,這些虛擬機沒有我用於調整大小的特定標籤。但是,CSV 沒有填充除此之外的任何內容:ÿþ
Get-Module -Name VMware* -ListAvailable | Import-Module -Force $exportto = "C:\Users\username\Desktop\rightSizingFilter3.csv" $VMs = Get-Cluster -name clustername | Get-VM foreach ($VM in $VMs){ If (((Get-Tagassignment $VM).Tag.Name -notcontains "testtag")){ Out-file $exportto -Append } }
如果你想要一個 CSV,你可以通過更改
Out-File ...
為:
Export-Csv -InputObject $VM -Path $ExportTo -Append -NoTypeInformation
我相信 Get-VM 的輸出是 JSON 對象,因此作為文件輸出可能會導致格式不是您要查找的格式。即使使用 Export-Csv,您仍可能會發現某些數據不容易轉換為 CSV 格式,因此您可以通過僅選擇所需的標籤或屬性然後將其全部導出到 CSV 來進一步清理輸出.
這是我測試的程式碼:
Get-Module -Name VMware* -ListAvailable | Import-Module -Force Connect-ViServer -Server [SERVERNAME] -Credential (Get-Credential) $ExportTo = ".\rightSizingFilter3.csv" $VMs = Get-Cluster -Name [CLUSTERNAME] | Get-VM foreach ($VM in $VMs) { If ( ((Get-Tagassignment $VM).Tag.Name -notcontains "testtag") ) { Export-Csv -InputObject $VM -Path $ExportTo -Append -NoTypeInformation } }