Windows PowerShell: PowerShell.exe

OSzone.net » Microsoft » PowerShell » Windows PowerShell: PowerShell.exe
Автор: Дон Джонс
Иcточник: TechNetMagazine
Опубликована: 18.10.2012

В большинстве случаев вы используете для открытия Windows PowerShell соответствующий значок в меню «Пуск». Однако иногда оболочку нужно открывать из программы. Обычно это требуется при запуске сценария по расписанию или при выполнении сценария в составе внешнего командного файла.

В этих и многих других ситуациях ключом к выполнению задачи является исполняемый файл PowerShell.exe. Он находится в установочной папке Windows PowerShell.

PowerShell.exe запускает новый сеанс оболочки, но этим его возможности не ограничиваются. У команды есть масса параметров командной строки, которые указывают ей, как себя вести. Чтобы получить полный список параметров, а также узнать их назначение, в командной строке выполните команду PowerShell -?.

Выполнение команды

Параметр –command принимает одну команду Windows PowerShell вместе с ее параметрами. Если в строке команды есть пробелы или параметры, ее надо заключить в кавычки. При необходимости можно даже включить целый конвейер командлетов.

Можно также задействовать параметр –file. Он передает путь и имя файла .PS1. После этого Windows PowerShell выполнит содержимое файла. Так намного проще выполнить сложную последовательность команд, чем пытаться втиснуть их в параметр –command. Имейте в виду, что политика выполнения оболочки влияет на выполнение сценариев, что подводит нас к следующей теме.

Политика выполнения

Параметр –executionpolicyparameters принимает один из вариантов политики выполнения Windows PowerShell: Unrestricted, AllSigned, RemoteSigned и Restricted. Заданная политика будет действовать только в текущем сеансе и возьмет верх над любыми политиками, ранее заданными локально средствами Set-ExecutionPolicy или объектов групповых политик (GPO).

Секундочку, а разве это не пробел в безопасности? Разве GPO не запрещено переопределять? Нет и еще раз нет. Политика выполнения — это вам не брандмауэр, и она не заменяет собой ПО защиты от вирусов. Она предназначена для того, чтобы неопытные пользователи неосторожно не выполнили недоверенный сценарий. Если вы задаете параметр –executionpolicy, то по определению считается, что вы делаете это сознательно и осознаете возможные последствия. На вас лежит ответственность за последствия такого действия.

Получение выходных данных

Обычно все, что выполняется в сеансе Windows PowerShell выводится программой PowerShell.exe как текст. Если вам нужна просто текстовая информация, тогда вас это вполне устроит.

Но есть другой вариант: задать параметр –outputformat XML, чтобы PowerShell.exe выводила объекты, возвращаемые сценарием или командой. Полученные объекты можно сериализовать в файла CliXML. По сути это то же самое, как если бы вы заставили оболочку передать объекты по конвейеру в Export-CliXML. Это позволяет получить выходной формат данных, которые потом проще повторно импортировать в другой сеанс оболочки.

Другие приемы

Есть еще три других параметра командной строки, о которых надо знать.

Освоение PowerShell.exe

Использование PowerShell.exe предоставляет много возможностей выполнения сценариев, управления выходной информацией и т. п. Очень удобно иметь в резерве этот вариант при настройке запуска сценариев по расписанию, выполнении сценариев входа, выполнении команд в составе более крупного пакета и для многих других задач.


Ссылка: http://www.oszone.net/19006/