Код VBS не работает при вызове из WMIC - PullRequest
0 голосов
/ 30 апреля 2018

Я пытаюсь вызвать некоторый код удаленно, используя WMIC для Window 10.

rem command prompt, machine 1 (main computer)
WMIC /node:"MACHINE_2" process call create "cmd.exe /k "%USERPROFILE%\test.vbs" "

Этот вызов, кажется, проходит правильно. Он выдает частичный вывод из test.vbs (показан ниже), что означает, что файл вызывается и выполняется.

' test.vbs, machine 2 (MACHINE_2, in above code)
Set objFSO=CreateObject("Scripting.FileSystemObject")

outFile="%USERPROFILE%\out.txt"
Set objFile = objFSO.CreateTextFile(outFile,True)
objFile.Write "test1" & vbCrLf
objFile.Close

MsgBox("hi")
' CreateObject("WScript.Shell").Run "cmd /c ""nircmd.exe sendkey 0xB3 press"" ", 0
' Set WshShell = Nothing

outFile="%USERPROFILE%\out.txt"
Set objFile = objFSO.CreateTextFile(outFile,True)
objFile.Write "test2" & vbCrLf
objFile.Close

Ожидаемое поведение: скрипт должен записать «test1» в out.txt. Затем он должен открыть MsgBox. И после закрытия MsgBox на Machine_2 он должен переопределить содержимое out.txt с помощью «test2».

Две строки прокомментированного кода ниже MsgBox могут быть заменены кодом MsgBox, а также имеют такое же поведение.

При локальном выполнении файла vbs происходит ожидаемое поведение. Однако при использовании вызова WMIC выводится «test1», а затем выполнение кажется остановленным. MsgBox никогда не отображается, а «test2» никогда не переопределяет содержимое out.txt.

Я совершенно не понимаю, почему это происходит, и какие шаги я могу предпринять, чтобы это сработало. На данный момент я исчерпал свое Google-фу.

1 Ответ

0 голосов
/ 30 апреля 2018

Вы НЕ МОЖЕТЕ отображать пользовательский интерфейс на удаленных скриптах.

Вы не можете связываться с вошедшим в систему пользователем.

...