Windows

使用 PowerCLI 導出沒有特定標籤的 VM 列表

  • June 26, 2021

我正在嘗試導出一個 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
   }
}

引用自:https://serverfault.com/questions/1067831