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