Установка интерактивной MSI на удаленной машине с Powershell - PullRequest
0 голосов
/ 26 декабря 2018

У меня есть файл .msi на удаленном компьютере, который находится в другом домене, чем мой локальный компьютер.Я могу подключиться к удаленной машине с PowerShell, но как я могу установить MSI там.Процесс установки имеет много входов, которые нужно выдавать, нажимая «Далее», а затем снова давая определенный вход, переключатели и многое другое.Таким образом, это интерактивная установка.В моем локальном я могу сделать это с [System.Windows.Forms.SendKeys], чтобы имитировать ввод с клавиатуры, но так как процесс будет выполняться в фоновом режиме на удаленной машине, я не думаю, что SendKeys будет работать.И «psexec» здесь не вариант, потому что на моей удаленной машине я не могу включить PSTools в свой Powershell.Есть ли способ сделать это с помощью Invoke-Command и -ArgumentList ??

Если есть способ, то как я могу последовательно выбрать, вводить ли текст в определенное поле или нажать следующую кнопку или нажать любуюдругая кнопка в окне приложения ??

1 Ответ

0 голосов
/ 28 декабря 2018

Я наконец-то решил эту загадку с помощью инструмента автоматизации AutoIt.Этот инструмент имеет собственный язык сценариев и может создавать файлы .exe для запуска определенного приложения и выполнения соответствующих шагов установки на основе каждого последующего окна, которое выскакивает установщик приложения.После создания .exe я скопировал его на свой удаленный компьютер, используя Copy-Item, или вы можете использовать robocopy, а затем удаленно вызвал .exe с помощью psexec.Поскольку у меня ранее было неправильное представление о psexec, его нужно интегрировать только с powershell на локальном компьютере, и поэтому он автоматически создает собственный сеанс и взаимодействует с удаленной машиной.Это команда для запуска .exe на удаленном компьютере: -

psexec -i 2 -s -d \\remote_machine_name -u Username -p Password C:\Path_to_exe\installer.exe

Вы можете войти на удаленный компьютер и увидеть в графическом интерфейсе, что это происходит.И да, очевидно, вам нужно иметь .msi, который будет вызываться, чтобы присутствовать там на удаленном компьютере, чтобы .exe мог выполнять свою работу локально в удаленном сеансе.

...