У меня проблема с запуском командного файла, расположенного на удаленном сервере.
У меня есть пакетный файл, расположенный на удаленном сервере, который я хочу запустить и запускающий автоматический тест Selenium. Для простоты, скажем, имя моего командного файла mybatch.bat
У меня есть следующий код в скрипте Powershell, расположенный на сервере:
$BatchFile = "mybatch.bat"
Start-Process -FilePath $BatchFile -Wait -Verb RunAs
Если я запускаю этот сценарий PowerShell локально на сервере в ISE, то он работает нормально и запускает тест на селен, выполнение которого занимает пару минут.
Теперь я хочу попробовать выполнить этот тест с другого компьютера с помощью удаленного взаимодействия PowerShell. Предположим, что удаленное взаимодействие уже настроено на серверах.
У меня есть скрипт PowerShell, расположенный на другом сервере, который имеет следующий сегмент кода. Предположим, что все переменные сеанса имеют правильный набор информации:
$CMD = "D:\mybatch.bat"
$TargetSession = New-PSSession -ComputerName $FullComputerName -Credential $myCreds -ConfigurationName RemoteExecution
$command = "powershell.exe -File $CMD -Wait"
Invoke-Command -Session $TargetSession -ScriptBlock { $command }
Когда этот скрипт выполняется, он подключается к удаленному компьютеру и создает удаленный сеанс. Похоже, он запускает пакетный файл, потому что PowerShell не дает мне ошибки. Но он не ждет полных 3 или 4 минут до завершения теста Selenium. Кажется, что это просто время ожидания. Кроме того, если я вошел на другую машину, я не вижу запущенного веб-теста Selenium. На удаленном сервере не создаются файлы журнала Selenium или файлы результатов, как и следовало ожидать.
Мне было интересно, что я могу делать не так с моим кодом.
Кроме того, кажется, что сервер всегда возвращает выходные данные эха пакетного файла на мою локальную машину. Я вижу эти случайно мигающий белый экран на ISE, который похож на вывод из пакетного файла