Как выполнить powershell script, доступный на удаленном компьютере?
Я пытался выполнить script на удаленном компьютере.
Я сделал "Enable-PSremoting
" на удаленной машине.
Я разместил script hello.ps1
на удаленном компьютере.
[Мой клиентский компьютер - Windows XP, а удаленный компьютер - Windows 2003)
Затем с моего клиентского компьютера я пытался выполнить script.
invoke-command -computer $MachineName -filepath "C:\hello.ps1"
Я получил следующую ошибку.
Invoke-Command: не удается найти путь "C:\hello.ps1", потому что он не существуют.
Я думаю, он пытается найти script с клиентской машины.
Если я пытаюсь запустить
invoke-command -computer $MachineName -command { C:\hello.ps1 }
, он выполняет script, доступный на удаленном компьютере на стороне клиента.
Но я хотел бы выполнить удаленный script на самой удаленной машине.
Как заставить запустить script доступный на удаленном компьютере?
Обновлено:
Фактически эта команда "invoke-command -computer $MachineName -command { C:\hello.ps1 }
" работает на удаленной стороне и возвращает результат на стороне клиента. Я неправильно понял, увидев возвращаемые значения, которые он выполняет на стороне клиента.
Ответы
Ответ 1
Когда вы пишете:
invoke-command -computer $MachineName -filepath "C:\hello.ps1"
script C:\hello.ps1
будет взят с клиентского компьютера и доставлен на сервер, который будет выполнен. Таким образом, файл ошибок не существует, потому что Invoke-Command ищет файл на клиентском компьютере.
Ответ 2
См. здесь быстрый запуск в удаленном режиме PowerShell.
Ответ 3
У меня был тот же самый зонд, и он решил его с комбинацией [WMICLASS] create()
и Start-Process
.
Проверьте мой ответ здесь.
Ответ 4
У меня такая же ошибка, но я подключил удаленный сеанс в переменной в вашем коде и, наконец, что-то работает:
$s = New-PSSession -ComputerName "WTxxxxxL32" -Credential $credential
Invoke-Command -Session $s -Command {D:\ServerDLLDev\RemoteCOMInstall.ps1}
Есть миллион Invoke-etc solutons, но простейший работал наконец для меня. Благодаря вам.