Win32_ShadowCopy 中缺少 Powershell CIM 方法 "Delete"?

Powershell CIM Method "Delete" is missing in Win32_ShadowCopy?

我尝试从 WMI 切换到 CIM,但是缺少一些方法: WMI 方式 select 下一个最佳 VSS 快照:

$SnapShot = (Get-WmiObject Win32_ShadowCopy)[0]

然后你就有了工作方法:

$SnapShot.Delete()

但是 Get-CimInstance 并没有给我设计的方法。

$SnapShot = (Get-CimInstance Win32_ShadowCopy)[0]Get-CimClass -ClassName Win32_ShadowCopy 仅显示“创建”和“恢复”方法 - “删除”方法在哪里?

通常 if 会像 Invoke-CimMethod -ClassName Win32_ShadowCopy -MethodName "Delete" -Arguments @{ID="$SnapShot.ID"}。但没有...

我尝试了很多组合来访问甚至看到“删除”方法,但它在哪里?不鼓励使用 WMI,因为当 CIM 可用时它是“旧的”,但对于 CIM,通常会缺少方法或隐藏在不明显的地方,如本例所示。

是的,我可以使用 vssadmin.exe delete shadows /Shadow=$($SnapShot.ID) /Quiet 但这不是干净的方法,只是一个肮脏的解决方法。

可能像 win32_userprofile 一样通过管道传输到 remove-ciminstance。 .delete() 是由 get-wmiobject 组成的方法,它做类似的事情。

get-ciminstance win32_userprofile | ? localpath -match js2010 |remove-ciminstance