在vb.net中,我需要创建一个卷影副本,尝试使用power shell
我有一个VB.net备份程序。我需要创建一个卷影副本,看起来最简单的方法就是使用powershell来创建它。如果打开命令提示符并转到power shell并键入: (获取wmioobject-list win32\u shadowcopy)。创建(“C:\”,“ClientAccessible”),它工作正常。但我想将其添加到process.start或shell中,但似乎无法找到正确的上下文。我在网上找到了以下示例,但它给了我错误在vb.net中,我需要创建一个卷影副本,尝试使用power shell,vb.net,powershell-2.0,Vb.net,Powershell 2.0,我有一个VB.net备份程序。我需要创建一个卷影副本,看起来最简单的方法就是使用powershell来创建它。如果打开命令提示符并转到power shell并键入: (获取wmioobject-list win32\u shadowcopy)。创建(“C:\”,“ClientAccessible”),它工作正常。但我想将其添加到process.start或shell中,但似乎无法找到正确的上下文。我在网上找到了以下示例,但它给了我错误 powershell invoke-command -scr
powershell invoke-command -scr {(Get-WmiObject -list win32_shadowcopy).Create("C:\","ClientAccessible")}
字符串的开头是:
第1行字符:70
+调用命令-scr{(Get WmiObject-list win32_shadowcopy).Create(C:由于没有响应,我查看了其他方法,在vbscript中找到了此方法,因此我将其转换为vb.net。请确保将其设置为vs2010中的任何cpu进行编译
Const VOLUME = "C:\"
Const CONTEXT = "ClientAccessible"
Dim strShadowID
Dim objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Dim objShadowStorage = objWMIService.Get("Win32_ShadowCopy")
Dim errResult = objShadowStorage.Create(VOLUME, CONTEXT, strShadowID)
If errResult = 0 Then
Dim objWMI = GetObject("winmgmts://./root\cimv2")
Dim objInstances = objWMI.InstancesOf("Win32_ShadowCopy")
For Each objInstance In objInstances
With objInstance
If .ID = strShadowID Then
Console.WriteLine(.DeviceObject)
End If
End With
On Error GoTo 0
Next
End If