powershell 中的 Invoke-Command 问题
issues with Invoke-Command in powershell
我在执行应用程序时遇到问题,我需要将参数传递给它。我相信问题与参数值之一有关,但我不确定。
我已经在路径中添加了 'C:\Program Files\OmniBack\bin\omnir.exe',这是 omnir 所在的路径
$cmd = 'omnir.exe'
$arg1 = "-winfs"
$source = "server.domain.domain:/F `"server.domain.domain [/F]`""
$arg2 = "-session"
$session = "2015/07/01-56"
$arg3 = "-tree"
$tree = "/folder1/folder2/folder3/test1.txt"
& $cmd $arg1 $source $arg2 $session $arg3 $tree
这是我得到的错误
PS C:\Windows\system32> $error[0] | fl * -force
writeErrorStream : True
PSMessageDetails :
Exception : System.Management.Automation.RemoteException: Object not found.
TargetObject : Object not found.
CategoryInfo : NotSpecified: (Object not found.:String) [], RemoteException
FullyQualifiedErrorId : NativeCommandError
ErrorDetails :
InvocationInfo : System.Management.Automation.InvocationInfo
ScriptStackTrace : at <ScriptBlock>, <No file>: line 33
PipelineIterationInfo : {0, 0}
如果我复制
的输出
Write-Host "$cmd $arg1 $source $arg2 $session $arg3 $tree"
并完美执行它
omnir.exe -winfs server.domain.domain:/F "server.domain.domain [/F]" -session 2015/07/01-56 -tree /folder1/folder2/folder3/test1.txt
以下是 "some" 我尝试过的其他变体
$arg1 = "-winfs server.domain.domain:/F `"server.domain.domain:[/F]`"" # tried with or without quotes, but app requires dbl qoutes
$arg2 = "-session 2015/07/01-56"
$arg3 = "-tree /folder1/folder2/folder3/test1.txt"
& omnir.exe $arg1 $arg2 $arg3
$arg1 = "-winfs server.domain.domain:/F"
$arg2 = "-session 2015/07/01-56"
$arg3 = "-tree /folder1/folder2/folder3/test1.txt"
$arg4 = "`"server.domain.domain:[/F]`""
& omnir.exe $arg1 $arg4 $arg2 $arg3
还有一些
& omnir.exe -winfs $source -session $session -tree $tree
Invoke-Command -ScriptBlock {param(, , , , , ) omnir.exe , , , , , ;} -ArgumentList $arg1, $source, $arg2, $session, $arg3, $tree
Invoke-Command -FilePath 'C:\Program Files\OmniBack\bin\omnir.exe' -ArgumentList "-winfs $source", "-session $session", "-tree $tree"
Start-Process omnir.exe -ArgumentList $arg1 $source $arg2 $session $arg3 $tree -Wait
好的,发帖前抢先一步。应该想清楚了。这有效
$cmd = 'C:\Program Files\OmniBack\bin\omnir.exe'
$arg1 = "-winfs"
$sourcea = "server.domain:/$($drive)"
$sourceb = "server.domain [/$($drive)]"
$arg2 = "-session"
$session = $f.FileSession -replace "_[a-zA-Z]+", "" -replace "_", "/"
$arg3 = "-tree"
$tree = "$($f.FileName)"
& $cmd $arg1 $sourcea $sourceb $arg2 $session $arg3 $tree
我在执行应用程序时遇到问题,我需要将参数传递给它。我相信问题与参数值之一有关,但我不确定。
我已经在路径中添加了 'C:\Program Files\OmniBack\bin\omnir.exe',这是 omnir 所在的路径
$cmd = 'omnir.exe'
$arg1 = "-winfs"
$source = "server.domain.domain:/F `"server.domain.domain [/F]`""
$arg2 = "-session"
$session = "2015/07/01-56"
$arg3 = "-tree"
$tree = "/folder1/folder2/folder3/test1.txt"
& $cmd $arg1 $source $arg2 $session $arg3 $tree
这是我得到的错误
PS C:\Windows\system32> $error[0] | fl * -force
writeErrorStream : True
PSMessageDetails :
Exception : System.Management.Automation.RemoteException: Object not found.
TargetObject : Object not found.
CategoryInfo : NotSpecified: (Object not found.:String) [], RemoteException
FullyQualifiedErrorId : NativeCommandError
ErrorDetails :
InvocationInfo : System.Management.Automation.InvocationInfo
ScriptStackTrace : at <ScriptBlock>, <No file>: line 33
PipelineIterationInfo : {0, 0}
如果我复制
的输出Write-Host "$cmd $arg1 $source $arg2 $session $arg3 $tree"
并完美执行它
omnir.exe -winfs server.domain.domain:/F "server.domain.domain [/F]" -session 2015/07/01-56 -tree /folder1/folder2/folder3/test1.txt
以下是 "some" 我尝试过的其他变体
$arg1 = "-winfs server.domain.domain:/F `"server.domain.domain:[/F]`"" # tried with or without quotes, but app requires dbl qoutes
$arg2 = "-session 2015/07/01-56"
$arg3 = "-tree /folder1/folder2/folder3/test1.txt"
& omnir.exe $arg1 $arg2 $arg3
$arg1 = "-winfs server.domain.domain:/F"
$arg2 = "-session 2015/07/01-56"
$arg3 = "-tree /folder1/folder2/folder3/test1.txt"
$arg4 = "`"server.domain.domain:[/F]`""
& omnir.exe $arg1 $arg4 $arg2 $arg3
还有一些
& omnir.exe -winfs $source -session $session -tree $tree
Invoke-Command -ScriptBlock {param(, , , , , ) omnir.exe , , , , , ;} -ArgumentList $arg1, $source, $arg2, $session, $arg3, $tree
Invoke-Command -FilePath 'C:\Program Files\OmniBack\bin\omnir.exe' -ArgumentList "-winfs $source", "-session $session", "-tree $tree"
Start-Process omnir.exe -ArgumentList $arg1 $source $arg2 $session $arg3 $tree -Wait
好的,发帖前抢先一步。应该想清楚了。这有效
$cmd = 'C:\Program Files\OmniBack\bin\omnir.exe'
$arg1 = "-winfs"
$sourcea = "server.domain:/$($drive)"
$sourceb = "server.domain [/$($drive)]"
$arg2 = "-session"
$session = $f.FileSession -replace "_[a-zA-Z]+", "" -replace "_", "/"
$arg3 = "-tree"
$tree = "$($f.FileName)"
& $cmd $arg1 $sourcea $sourceb $arg2 $session $arg3 $tree