0

我将如何获取 C 驱动器上 shadowstorage 使用的最大空间作为 GB 中的字符串?到目前为止,我唯一发现的是这个 cmdlet 列出了所有参数:

get-wmiobject win32_shadowstorage

但我只需要转换为 GB 的 MaxSpace 值,并且只用于 C 盘。这样做的目的是为了稍后在 wpf 应用程序中使用 as if/else 语句。Powershell 似乎是实现这一目标的最快方法,而“年长”的 vssadmin 似乎只接受参数,而不是检索任何东西......提前致谢

4

1 回答 1

2

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

  • AllocatedSpace数据类型:)uint64在差分区域卷上分配的空间。
  • DiffVolume    数据类型:)Win32_Volume引用差分量。
  • Volume        数据类型:)Win32_Volume参考原卷。

属性DiffVolumeVolume外观(GUID可能会有所不同)

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

而这个出场邀你来查Win32_Volume,和宾果!有财产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 }
}
于 2019-01-27T17:28:28.773 回答