Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过Hyper-V中的Powershell获取快照的大小_Powershell_Snapshot_Hyper V - Fatal编程技术网

通过Hyper-V中的Powershell获取快照的大小

通过Hyper-V中的Powershell获取快照的大小,powershell,snapshot,hyper-v,Powershell,Snapshot,Hyper V,晚上好,我也在开发一个C,它应该可以帮助用户控制服务器上的虚拟机。 现在,我已经创建了创建和擦除这些虚拟机快照的函数,并希望创建一个函数来列出虚拟机的所有快照,包括一个view selected Snapshot参数。与: 调用命令-ComputerName ServerName-ScriptBlock{Get-VMSnapshot-VMName-VMName | Select Object} 除了快照本身的总大小之外,我几乎可以获得所有请求的信息 但是,我可以通过以下命令获得尺寸: Invok

晚上好,我也在开发一个C,它应该可以帮助用户控制服务器上的虚拟机。 现在,我已经创建了创建和擦除这些虚拟机快照的函数,并希望创建一个函数来列出虚拟机的所有快照,包括一个view selected Snapshot参数。与:

调用命令-ComputerName ServerName-ScriptBlock{Get-VMSnapshot-VMName-VMName | Select Object}

除了快照本身的总大小之外,我几乎可以获得所有请求的信息

但是,我可以通过以下命令获得尺寸:

Invoke-Command -ComputerName ServerName -ScriptBlock {Get-VM -VMName VMName | gci -r -Filter *.avhd*| select @{Name="MB";Expression={$_.Length / 1Mb}}, *}
为了不把这两个结果放在一起,我将这两个结果的创建时间与10秒的公差进行了比较,并取了最接近的一个。我知道它很原始,但现在它变得更复杂了

如果我现在使用快照将VM设置为该状态,则文件创建的时间会更改,因此我以前的方法将完全停止工作

我想知道的原因是,有没有更好的方法来比较这两个结果,或者更好的方法来获得快照大小,而不需要这样的原始比较


提前感谢您的帮助。

下面的一行应该可以满足您的需要

一,

二,


希望有帮助。

第一个不起作用,因为快照的信息集不包含自己的大小,不知何故,Hyper-V的创建者似乎没有意识到,如果您必须处理任何类型的文件,大小是一个重要的值。第二个只返回VM名称,NumSnapshots和TotalSnapShotSizeMB列保持为空,一个屏幕快照的大小也是我需要的,所有快照的总大小对我帮助不大。但我肯定会尝试使用Measure Object,这似乎是我问题的一个潜在解决方案。@Etaila:只需在第二个代码上稍作调整,您就可以选择。我现在没有infra可供选择。我需要时间来建造一个。希望能有帮助then@Etaila当前位置如果答案对你有帮助,请接受。我现在知道答案对我有帮助,但没有解决我的问题。因此,如果其他人有解决问题的想法,我会等待一段时间。你能发布你正在尝试的内容吗。也许我可以调查一下,
Get-VM | Sort Name | Get-Snapshot | Where { $_.Name.Length -gt 0 } | Select VM,Name,Created,SizeMB
Get-VM | Format-Table Name, @{Label="NumSnapshots";Expression={(Get-Snapshot -VM $_ | Measure-Object).Count}}, @{Label="TotalSnapShotSizeMB";Expression={(Get-Snapshot -VM $_ | Measure-Object -Sum SizeMB).Sum}}