2013-04-10 5 views
2

Мне нужно вызвать удаленный скрипт VB из Powershell, а сценарий VB должен запускаться на удаленном компьютере.Вызов VBScript с возвращаемым значением на удаленной машине с Powershell

Я использую \ $ \ компьютер корень \ CIMv2: Win32_Process ") Создать (C:. \ Test.vbs)

Это работает, но я не могу получить возвращаемое значение из сценария, просто возвращаемое значение из процесса win32.

Я бы преобразовал все это в powershell, но не могу, поскольку я подключаюсь к устаревшему домену, я не могу установить дополнительные инструменты, поэтому позвоните удаленному vbscript

ответ

1

Я бы попробовал либо удаленный вызов:

Invoke-Command -ScriptBlock { cscript.exe "C:\test.vbs" } -Computer $computer 

или PsExec:

PsExec \\$computer cscript.exe "C:\test.vbs" 

Не можете проверить любой из них прямо сейчас, хотя.

1

Это старый вопрос, но я хотел бы поделиться своим решением. Это же, как и разместил Ansgar, но он был протестирован и работает отлично:

$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.

Надеюсь, это поможет кому-то.

Смежные вопросы