我目前用于DISKSHADOW
从我们的 Hyper-V 服务器中删除卷影副本。为此,我必须登录服务器但psexec
不起作用。
psexec \\hyper-v-server diskshadow
DISKSHADOW> Error reading from console. Win32 error: 0x6
The handle is invalid.
我认为vssadmin
可以执行上述操作,但我想使用 PowerShell 编写脚本并选择性地删除卷影副本。这些工具都没有在 PowerShell 中提供可用的输出。
我做了一些研究,但没有找到任何使用 PowerShell 在本地或远程查询快照的方法。我想这样做将涉及使用Get-WMIObject
CMDlet 从 WMI 查询相关信息,但我只能找到Win32_ShadowCopy.Create()
方法。
编辑:要清楚,我想要的是可以使用 PowerShell 操作的对象。
您可以使用 Get-WMIObject cmdlet 远程删除卷影副本。下面的示例演示了它是如何工作的。应该注意的是,在没有任何远程卷影副本可用的情况下,Get-WMIObject cmdlet 返回一个空对象。这意味着可能仍需要结合使用 PowerShell 远程处理和 vssadmin 工具来远程创建卷影副本。
在目标服务器上(从提升的命令提示符处),让我们首先创建一个卷影副本,以便一个可用的:
从管理服务器:
您可以使用 diskshadow 远程执行此操作。为此,编写一个包含所需命令的批处理文件并将其放在目标服务器上的某个位置,然后:
psexec \\remotehost diskshadow /s C:\path\to\script.bat
. 您还可以使用网络位置作为路径。