在vb.net中,我需要创建一个卷影副本,尝试使用power 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

我有一个VB.net备份程序。我需要创建一个卷影副本,看起来最简单的方法就是使用powershell来创建它。如果打开命令提示符并转到power shell并键入: (获取wmioobject-list win32\u shadowcopy)。创建(“C:\”,“ClientAccessible”),它工作正常。但我想将其添加到process.start或shell中,但似乎无法找到正确的上下文。我在网上找到了以下示例,但它给了我错误

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