Я использую Rundeck версии 3.0.13 для отправки команд PowerShell через WinRM на узлы Windows Server 2016. Есть ли способ запустить команду PowerShell с символами канала как одну команду? Например, я бы хотел иметь возможность выполнить такую команду для запуска неотключенных служб:
Get-Service | where-object {$_.StartType -ne "Disabled"} | foreach-object {Start-Service $_}
Но я получаю сообщение об ошибке "где-объект" не найден. Исполнитель узла WinRM запускает команду в качестве аргумента для powershell в приглашении CMD, поэтому происходит то, что часть команды Get-Service запускается в Powershell, но затем он пытается передать по конвейеру «where-object» в CMD подсказка, вот так:
CMD> powershell Get-Service | where-object ...
Есть ли способ избежать оператора powershell в Rundeck, чтобы команды конвейера выполнялись в PowerShell, а не только в первой части? Я безуспешно пытался заключить его в -команду "& {...}". (В этом случае я получаю синтаксическую ошибку и в результате появляется экран справки по PowerShell.)
Спасибо!
.ps1
? Я не понимаю, почему так много людей пытаются передать серию командPowerShell
основному исполняемому файлу, когда вы можете гораздо проще поддерживать простой файл сценария. Есть ли причина, по которой вы должны отправлять команды скрипта таким образом? - person gravity   schedule 25.09.2019