2015-05-11 2 views
-1

Я использовал PSExec.exe для запуска vbscript на нескольких сотнях удаленных виртуальных машин. Обычно это работает. Однако, на небольшой группе ВМ, я получаю эту ошибку:Удаленный вызов VBScript не работает, но работает при запуске локально

MyScriptName.vbs(24, 5) WScript.CreateObject: Could not create object named "ADODB.Connection"

Здесь виновный строка кода в VBScript файла:

Set oConn = WScript.CreateObject("ADODB.Connection") 

Я попытался это (для 64-битных cscript.exe):

PsExec.exe \\RemoteVMName -c -h -u MyDomain\MyWinLogin -p MyPwd cscript.exe "\\UncPath\To\My\Script.vbs" 

И я попробовал это (для 32-разрядных cscript.exe):

PsExec.exe \\RemoteVMName -c -h -u MyDomain\MyWinLogin -p MyPwd C:\Windows\SysWOW64\cscript.exe "\\UncPath\To\My\Script.vbs" 

Любопытно, что если я войду в удаленную виртуальную машину, я могу вручную запустить файл vbscript. Это удается без ошибок сценария. Что может вызвать ошибку vbscript?

+0

Почему, по вашему мнению, ваша первая строка будет работать с 64-битным cscript. Мой Psexec 32 бит, поэтому любая ссылка на 'system32' будет перенаправлена ​​на' SysWoW64'. Используйте 'C: \ Windows \ SysNative' для ссылки на System32 в 32-битной программе. –

ответ

0

Вы должны включить cmd.exe /c для выполнения файлов vbs с cscript над psexec.

Вам не нужно копировать файл сценария, пока учетная запись может получить доступ к этому UNC-пути.

PsExec.exe \\RemoteVMName -e -h -u MyDomain\MyWinLogin -p MyPwd cmd.exe /c cscript.exe "\\UncPath\To\My\Script.vbs" 
Смежные вопросы