Окно, открытое через psexe c, пустое при использовании PowerShell Direct, но нормально, когда psexe c запускается локально - PullRequest
0 голосов
/ 19 июня 2020

Я пытаюсь создать простую среду для автоматического создания снимков экрана. У меня есть несколько виртуальных машин Hyper-V, и мне нужно использовать PowerShell Direct, чтобы запускать на них команды в особой последовательности. Когда я запускаю psexec, чтобы открыть notepad.exe через PowerShell Direct, открывается окно Блокнота, но оно пустое. Я могу слепо щелкнуть элементы управления в окне (например, на панели инструментов), и кажется, что они работают, но на самом деле ничего не отображается, кроме пустого окна.

Единственный простой вариант для открытия Windows в существующем сеанс, который я вижу сейчас, - это запустить psexec (любые другие предложения были бы очень признательны, потому что мои попытки придерживаться подхода, основанного только на PowerShell, наталкиваются на препятствие, см. Запуск приложения GUI на гостевой виртуальной машине с PowerShell Direct ).

Я запускаю psexec на одной из виртуальных машин, чтобы запустить notepad.exe в сеансе 2. Этот фрагмент PowerShell запускается на хост-виртуальной машине, он связывается с гостевой виртуальной машиной через PowerShell Direct.

Invoke-Command  -VMName 'client1.example.com' -Credential $credential -ScriptBlock {
C:\bin\psexec.exe \\client1.example.com -i 2 "notepad.exe"
}

notepad.exe запускается, но окно пустое. Это ошибка в psexec?

См. Скриншот:

enter image description here

Проблема не возникает при запуске psexec непосредственно в гостевой ВМ.

C:\bin\psexec.exe \\client1.example.com -i 2 "notepad.exe"

enter image description here

1 Ответ

0 голосов
/ 20 июня 2020

Решено добавлением опции -s. Я не понимаю, почему проблема возникает в первую очередь и как помогает запуск ее «в системной учетной записи».

-s Run the remote process in the System account.

Проблема не в возникают при запуске explorer.exe, кстати.

...