PowerShell以字符串形式获取C驱动器的卷影存储最大空间

y0u0uwnf  于 2022-11-10  发布在  Shell
关注(0)|答案(1)|浏览(132)

如何将C盘上的卷影存储使用的最大空间作为以GB为单位的字符串?到目前为止,我唯一找到的就是这个cmdlet,它列出了所有参数:

get-wmiobject win32_shadowstorage

但我只需要将MaxSpace的值转换为GB,并且仅用于C盘。这样做的目的是为了稍后在WPF应用程序中使用If/Else语句。PowerShell似乎是实现这一点的最快方法,而“年长的”vssadmin似乎只接受参数,而不检索任何东西……
提前谢谢你

rjjhvcjd

rjjhvcjd1#

运行Get-WmiObject -Class "Win32_ShadowStorage"。您可以对以下properties感兴趣:

  • AllocatedSpace(数据类型uint64)在差异区域卷上分配空间。
  • DiffVolume    (数据类型Win32_Volume)对差异卷的引用。
  • Volume        (数据类型Win32_Volume)对原始卷的引用。

属性DiffVolumeVolume类似(GUID视情况而定)

Win32_Volume.DeviceID="\\\\?\\Volume{95570d86-0703-4b5c-8909-c967baecabd3}\\"

这个外观邀请您检查Win32_Volume class,然后答对!有DriveLetter属性!把这些放在一起:

Get-WmiObject -Class "Win32_ShadowStorage" | 
ForEach-Object { 
    $aux = $_.Maxspace/1GB
    Get-WmiObject -Class "Win32_Volume" -Filter (
            $_.DiffVolume -replace 'Win32_Volume\.', '') | 
        Select-Object -Property DriveLetter, DeviceID | 
            Where-Object DriveLetter -eq 'C:' | 
                ForEach-Object { [string]$aux }
}

相关问题