[英]VMWare PowerCLI Get DiskUsage of powered off vm's
我正在創建一個獲取所有虛擬機並顯示DiskSpace的腳本。 問題是,如果虛擬機關閉電源,它將不會顯示磁盤的已用空間。
以下是兩個示例:第一個示例是打開了VM的電源:
PowerCLI C:\> Get-VM sluwv0039
Name PowerState Num CPUs MemoryGB
---- ---------- -------- --------
sluwv0039 PoweredOn 2 4.000
PowerCLI C:\> $VM = Get-VM sluwv0039
PowerCLI C:\> $VM.guest.disks
CapacityGB FreeSpaceGB Path
---------- ----------- ----
49.997 5.417 C:\
虛擬機關閉的示例二:
PowerCLI C:\> Get-VM sluwv0012
Name PowerState Num CPUs MemoryGB
---- ---------- -------- --------
sluwv0012 PoweredOff 4 8.000
PowerCLI C:\> $VM = Get-VM sluwv0012
PowerCLI C:\> $VM.guest.disks
PowerCLI C:\>
注意:最后一行是輸出。 沒有“ CapacityGB”等。
正確,該屬性正在從來賓文件系統讀取,以查看分區上剩余了多少空間。 您的情況是C:\\驅動器。 如果VM關閉,則PowerCLI無法找到該屬性。
另外,您可以查看$vm.ExtensionData.Summary.Storage
屬性並進行一些粗略的轉換。 注意:這些文件的輸出以字節為單位,因此您需要將它們轉換為GB。 示例: $tempVM.ExtensionData.Summary.Storage.Committed / 1GB
這不是精確的,但總比沒有輸出要好。
這是顯示vm規范的腳本示例:
Get-Vm | 選擇對象名稱,PowerState,VMHost,NumCPU,MemoryGB,ProvisionedSpaceGB,@ {N =“ HostName”; E = {@($ .guest.HostName)}},@ {N =“ Gateway”; E = {@( $ .ExtensionData.Guest.IpStack.IpRouteConfig.IpRoute.Gateway.IpAddress [0])}},@ {N =“ DNS”; E = {$ .ExtensionData.Guest.IpStack.DnsConfig.IpAddress}},@ {N =“ IPAddress”; E = {@($ .guest.IPAddress -like“ 192.168。*”)}},@ {N =“ Nics”; E = {@($ .guest.Nics)}},@ { N =“ Datastore”; E = {@($ | Get-DataStore)}},@ {N =“ Disks”; E = {@($ .guest.Disks)}},版本,@ {N =“ State “; E = {@($ .guest.State)}},@ {N =” OS“; E = {@($ _。guest.OSFullName)}}
示例輸出如下:
名稱狀態VMHost NumCpu MemoryGB PowerState ProvisionedSpaceGB版本IPAddress HostName OS Nics磁盤VMwareTools Gateway DNS test Running 192.168.32.100 2 1 PoweredOn 43.1085147 v8 192.168.122.1 Elenoon Ubuntu Linux(64-bit)Network adapter 1:VM Network Network adapter 2:local::容量:17167286272,FreeSpace:14212493312,路徑:/容量:15188623360,FreeSpace:15154872320,路徑:/ media / files容量:10724835328,FreeSpace:10672824320,路徑:/ var / log容量:973770752,FreeSpace:690139136,路徑:/啟動guestTools運行127.0.0.1
希望有用;)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.