powershell 获取 C 驱动器的 shadowstorage maxspace 作为字符串
powershell get shadowstorage maxspace for C drive as string
我如何将 C 驱动器上的 shadowstorage 使用的最大空间作为 GB 中的字符串?
到目前为止我唯一发现的是这个列出所有参数的 cmdlet:
get-wmiobject win32_shadowstorage
但是我只需要将MaxSpace的值换算成GB,并且只针对C盘。
这样做的目的是稍后在 wpf 应用程序中用作 if/else 语句。
Powershell 似乎是实现这一目标的最快方法,"elderly" vssadmin 似乎只接受参数,不检索任何东西......
提前致谢
运行Get-WmiObject -Class "Win32_ShadowStorage"
。您可以对以下内容感兴趣properties:
AllocatedSpace
(数据类型:uint64
)分配space在差异区域卷上。
DiffVolume
(数据类型:Win32_Volume
)参考差分卷
Volume
(数据类型:Win32_Volume
)参考原卷
属性 DiffVolume
和 Volume
看起来像(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 }
}
我如何将 C 驱动器上的 shadowstorage 使用的最大空间作为 GB 中的字符串? 到目前为止我唯一发现的是这个列出所有参数的 cmdlet:
get-wmiobject win32_shadowstorage
但是我只需要将MaxSpace的值换算成GB,并且只针对C盘。 这样做的目的是稍后在 wpf 应用程序中用作 if/else 语句。 Powershell 似乎是实现这一目标的最快方法,"elderly" vssadmin 似乎只接受参数,不检索任何东西...... 提前致谢
运行Get-WmiObject -Class "Win32_ShadowStorage"
。您可以对以下内容感兴趣properties:
AllocatedSpace
(数据类型:uint64
)分配space在差异区域卷上。DiffVolume
(数据类型:Win32_Volume
)参考差分卷Volume
(数据类型:Win32_Volume
)参考原卷
属性 DiffVolume
和 Volume
看起来像(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 }
}