Powershell VMWare PowerCLI获取磁盘关闭vm的使用';s
我正在创建一个脚本,它获取所有vm并显示磁盘空间。问题是,如果虚拟机关闭电源,它将不会显示已使用的磁盘空间 以下是两个示例:第一个示例中的VM已通电:Powershell VMWare PowerCLI获取磁盘关闭vm的使用';s,powershell,virtual-machine,vmware,powercli,power-state,Powershell,Virtual Machine,Vmware,Powercli,Power State,我正在创建一个脚本,它获取所有vm并显示磁盘空间。问题是,如果虚拟机关闭电源,它将不会显示已使用的磁盘空间 以下是两个示例:第一个示例中的VM已通电: PowerCLI C:\> Get-VM sluwv0039 Name PowerState Num CPUs MemoryGB ---- ---------- -------- -------- sluwv0039 PoweredOn 2
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
它并不精确,但总比完全没有输出要好。正确,该属性正在从来宾文件系统读取数据,以查看分区上剩余的空间。在您的情况下,C:\驱动器。如果VM已关闭,PowerCLI将无法找到该属性
或者,您可以查看$vm.ExtensionData.Summary.Storage属性并进行一些粗略的转换。注意:它们的输出以字节为单位,因此您需要将它们转换为GB。示例:$tempVM.ExtensionData.Summary.Storage.Committed/1GB
它并不精确,但总比完全没有输出要好。下面是显示vm规范的脚本示例:
获取Vm |选择对象名、PowerState、VMHost、numpu、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.IpAddress.}类似于{168}=“Nics”;E={($.guest.Nics)},{N=”数据存储“;E={($$Get Datastore)},{N=”磁盘“;E={($.guest.Disks)},版本,@{N=”状态“;E={($.guest.State)},{N=”操作系统“;E={($$.guest.OSFullName)}”
示例输出如下所示:
名称状态VMHost NumCpu MemoryGB PowerState ProvisioniedSpaceGB版本IPAddress主机名OS NIC磁盘VMwareTools网关DNS
测试运行192.168.32.100 2 1 PoweredOn 43.1085147 v8 192.168.122.1 Linux(64位)网络适配器1:VM网络适配器2:local::Capacity:17167286272,FreeSpace:14212493312,Path:/Capacity:15188623360,FreeSpace:15154872320,Path:/media/文件容量:10724835328,FreeSpace:10672824320,Path:/var/日志容量:973770752,FreeSpace:690139136,Path:/boot guestToolsRunning 127.0.0.1
希望有用;)以下是显示vm规范的脚本示例:
获取Vm |选择对象名、PowerState、VMHost、numpu、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.IpAddress=}类似于{168}NIC“E={($.guest.Nics)},{N=“Datastore”;E={($$124; Get Datastore)},{N=“Disks”;E={($.guest.Disks)},Version,{N=“State”;E={($.guest.State)},{N=“OS”;E={($.guest.OSFullName)}
示例输出如下所示:
名称状态VMHost NumCpu MemoryGB PowerState ProvisioniedSpaceGB版本IPAddress主机名OS NIC磁盘VMwareTools网关DNS
测试运行192.168.32.100 2 1 PoweredOn 43.1085147 v8 192.168.122.1 Linux(64位)网络适配器1:VM网络适配器2:local::Capacity:17167286272,FreeSpace:14212493312,Path:/Capacity:15188623360,FreeSpace:15154872320,Path:/media/文件容量:10724835328,FreeSpace:10672824320,Path:/var/日志容量:973770752,FreeSpace:690139136,Path:/boot guestToolsRunning 127.0.0.1
希望有用;)谢谢!为我工作。至少我不会得到一个空变量。谢谢!为我工作。至少我不会得到一个空变量。