Выполнить / вызвать локальный файл ps1, используя winrm
У меня была эта проблема в течение нескольких дней. Выполнено и исследовано все, что касается выполнения сценария powershell на локальном компьютере с использованием winrm.
Моя цель - выполнить эти сценарии ps1 с моего локального компьютера на целевой удаленной машине. winrm уже настроен и работает со своими основными командами, но я не могу найти ничего, чтобы запустить скрипт powershell (*.ps1) с использованием winrm.
что-то вроде
winrm {execute ps1 file} -r:http://<IPaddress>:5985 -auth:basic -u:'username' -p:'password' -encoding:utf-8
Любая помощь и предложения очень ценятся.
Спасибо вам, ребята!
1 ответ
Прежде всего - я считаю, что вы пытаетесь использовать winrs
не winrm
- последний используется для настройки winrm обычно, первый для запуска удаленных команд.
Имея это в виду: я уверен, что вам придется передать скрипт в powershell.exe и позаботиться о экранировании элементов команд. Примеры, которые работали для меня (не основной аутентификации, но это не имеет значения, я думаю):
winrs -r:ComputerName powershell -file c:\temp\test.ps1
winrs -r:ComputerName powershell -file "c:\temp\test with space.ps1"
Я думаю, почему кто-то хочет сделать это таким образом? Любая веская причина, по которой вам предлагается перейти: powershell -> native command -> cmd.exe на удаленный компьютер и -> вызвать PowerShell удаленно?
Делая это так, вы теряете
- любой разумный вывод (вы получите текст)
- потоки
- сохранение состояния после запуска скрипта
- производительность (вы создаете новый экземпляр powershell с каждым вызовом
Вы получаете:
- сложность