РЕДАКТИРОВАТЬ2: ** После долгого тестирования и чтения я понял, что это ограничение среды Powershell. (подробнее здесь < / а>). Я решил проблему, запустив .exe как задачу через schtasks.exe **
РЕДАКТИРОВАТЬ: после долгого тестирования проблема, похоже, возникает из-за разницы между удаленной PowerShell и локальной PowerShell ... Проблема все еще не решена, поэтому любая помощь более чем приветствуется!
Я пытаюсь сделать что-то довольно простое, но это у меня просто не работает.
У меня 2 машины, MachineA и MachineB. Оба работают под управлением PowerShell v2 и являются надежными источниками друг друга с включенным удаленным взаимодействием.
Я пытаюсь запустить сценарий на MachineB через MachineA с помощью этой команды:
invoke-command -computername MachineB { C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noprofile -executionpolicy Bypass Script.ps1 }
Сам сценарий пытается установить файл .exe, для которого предусмотрена установка без вывода сообщений (на основе файла конфигурации в его каталоге):
$arguments = "-i silent"
$InstallerPath = "Setup.exe"
Start-Process $InstallerPath5 $arguments5 -verb runas
Когда я запускаю сценарий локально на MachineB - все работает нормально, и установка завершается успешно. Однако, когда я запускаю сценарий удаленно (с помощью 1-й команды из MachineA), он сразу же завершается, и ничего не происходит - установщики вообще не открываются в диспетчере задач на MachineB. Никаких ошибок и журналов нет.
Как ни странно, когда я меняю фактический сценарий на «& C: \ Windows \ system32 \ cmd.exe / c Setup.exe -i silent» и запускаю его удаленно, установка запускается, работает в течение 5-6 секунд на 50% процессоре. загрузка, а затем падает до 0% и зависает навсегда. Опять же, если я запускаю его локально, все работает отлично ...
Если попробовали:
- Удаленный запуск установщика напрямую (например, через
invoke-command { & Setup.exe -i }
) - Редактирование скрипта для запуска без Start-Process (например,
& Setup.exe -i
) - Перемещение скрипта на MachineA и его удаленный запуск на MachineB (например,
invoke-command -filename sciprt.ps1 -computername MachineB
)
Все это работает, если я делаю это локально на MachineB, но ничего не работает, если выполняется удаленно через MachineA (хотя и с другими проблемами)? Я схожу с ума.
Я также проверил, есть ли у пульта ДУ права администратора:
([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")
Возвращает True. Кроме того, я могу удаленно редактировать реестр HKLM, поэтому я предполагаю, что он работает.
Здесь приветствуются любые идеи!
-FilePath
при запуске. Это просто запутано для цели вопроса или в том же каталоге, что и сценарий? Заставляет меня задаться вопросом, проблема ли в пути к exe - person Matt   schedule 07.01.2015-i silent
и-i console
(для ручной установки консоли) ... - person Petar   schedule 08.01.2015New-PSSession -cn MachineB
, а затем запустил сценарий через удаленный сеанс с помощью `& D: \ Installers \ IBM \ EMM_Installer.exe '... Таким образом, процесс запускается, но снова через несколько секунд зависает при 0% использовании процессора и некотором использовании памяти ... и ничего не происходит, он просто остается там. Я также сразу после его убийства запускаю сценарий локально на MachineB и все установлено правильно .. Думаю, тут может быть 2 проблемы, но основная возникает из-за того, что - person Petar   schedule 08.01.2015[MachineB]: PS C:\Users\p_lafchiev\Documents> ([Security.Principal.WindowsPrincipal] [Security.Princi pal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator") True
Однако, если я запускаю Get-PSSessionConfiguration через тот же удаленный сеанс, я получаю:Access is denied. + CategoryInfo : + FullyQualifiedErrorId : System.InvalidOperationException,Microsoft.PowerShell.Commands.GetChildItemCommand
Это проблема администратора? Я запуталась? - person Petar   schedule 08.01.2015