windows-server-2008-r2 – 远程删除卷影副本

我目前使用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工具的组合来远程创建卷影副本.

在目标服务器上(从提升的命令提示符),让我们首先创建一个卷影副本,使其可用:

vssadmin create shadow /for=c:

从管理服务器:

$shadowcopies = Get-WMIObject -Class Win32_Shadowcopy -Computer <TARGET SERVER NAME>
$shadowcopies | % {$_.DeviceObject}  # Lists out just the names of the copies
$shadowcopies | Get-Member -View All # Lists all members even hidden ones such as "delete"
$shadowcopies[0].Delete()            # Deletes the first shadow copy when more than one exists
$shadowcopies.Delete()               # Works when only a single shadow copy exists

相关文章

Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...
Windows文件操作基础代码 Windows下对文件进行操作使用的一段...
Winpcap基础代码 使用Winpcap进行网络数据的截获和发送都需要...
使用vbs脚本进行批量编码转换 最近需要使用SourceInsight查看...