我需要從Powershell調用遠程VB腳本,並且需要在遠程計算機上運行VB腳本。使用Powershell在具有返回值的遠程計算機上調用VBScript
我一直在使用\ $計算機\ ROOT \ CIMV2:Win32_Process的「)創建(C:\ test.vbs)
這工作,但我不能從腳本返回值,只來自win32進程的返回值
我會將整個事情轉換爲PowerShell,但無法連接到傳統域我無法安裝其他工具,因此必須調用遠程vbscript
我需要從Powershell調用遠程VB腳本,並且需要在遠程計算機上運行VB腳本。使用Powershell在具有返回值的遠程計算機上調用VBScript
我一直在使用\ $計算機\ ROOT \ CIMV2:Win32_Process的「)創建(C:\ test.vbs)
這工作,但我不能從腳本返回值,只來自win32進程的返回值
我會將整個事情轉換爲PowerShell,但無法連接到傳統域我無法安裝其他工具,因此必須調用遠程vbscript
我可能會嘗試遠程調用:
Invoke-Command -ScriptBlock { cscript.exe "C:\test.vbs" } -Computer $computer
或PsExec
:
PsExec \\$computer cscript.exe "C:\test.vbs"
不能測試它們中的現在,雖然。
這是一個老問題,但我想分享我的解決方案。這是一樣的一個張貼安斯加爾但它已經測試和精細的工作:
$VNC = '\\share\software\AppName\_Install_Silent.vbs'
$Computer = 'RemoteHost'
$TMP = "\\$Computer\c$\TEMP"
if (!(Test-Path $TMP)) {
New-Item -Path $TMP -ItemType Directory
}
Copy-Item -LiteralPath (Split-Path $VNC -Parent) -Destination $TMP -Container -Recurse -Force -Verbose
$LocalPath = Join-Path 'C:\TEMP' (Join-Path (Split-Path $VNC -Parent | Split-Path -Leaf) (Split-Path $VNC -Leaf))
Invoke-Command -ScriptBlock {cscript.exe $Using:LocalPath} -Computer $Computer
# Restart might be needed of remote host
所不同的是,你必須將文件先複製到遠程機器,以避免雙跳問題,那麼你就可以安裝它與$Using
變量。
希望這可以幫助別人。