Майкл Оти (motey@windowsitpro.com) — технический директор Windows IT Pro и SQL Server Magazine, автор Microsoft SQL Server 2008 New Features (Osborne/McGraw-Hill)
Тема PowerShell оставалась за рамками обсуждения в течение нескольких месяцев, но недавно мне пришлось доработать ряд сценариев оценочных тестов для обзора продуктов. Я всегда был поклонником PowerShell, но при работе с этими сценариями нельзя было не отметить некоторые «особенности», способные смутить администраторов и пользователей, осваивающих эту технологию. Ниже приведена десятка «неудобных» свойств PowerShell.
10. Позиционирование PowerShell как интерактивной командной консоли. Возможно, это связано с тем, что к PowerShell приходится время от времени обращаться для решения определенных задач, но я практически никогда не работаю непосредственно из командной строки. PowerShell популяризуется прежде всего как средство автоматизации и повышения производительности, но этих целей нельзя достичь, вводя сложные цепочки команд вручную. Преимущества технологии реализуются только с использованием сценариев, позволяющих автоматизировать выполнение периодически повторяющихся заданий.
9. Политика выполнения по умолчанию, запрещающая запуск сценариев. Понятно, что политика выполнения по умолчанию позволяет обеспечить безопасность, но и совершенно очевидно, что практически каждый новый пользователь PowerShell будет с самого начала устанавливать политику Restricted, по умолчанию запрещающую запуск сценариев. Имейте в виду, что для того чтобы запускать сценарии, вначале следует установить политику, разрешающую запуск сценариев с цифровой подписью (Set-ExecutionPolicy RemoteSigned), либо неподписанных сценариев (Set-ExecutionPolicy Unrestricted).
8. Невозможность запуска сценариев PowerShell из командной строки. Не удивительно, что PowerShell популяризуется как интерактивная среда. Даже из среды PowerShell нельзя запустить сценарий просто по имени. Из командной оболочки Windows также невозможно запустить сценарий PowerShell путем указания его имени в командной строке. В оболочке Windows для запуска сценария необходимо использовать команду powershell-noexit «& "C:\users\mikeo\my script\ PSscript.ps1», что влечет за собой следующее неудобство.
7. Вызов сценариев PowerShell. Мало того, что сценарий PowerShell нельзя запустить путем ввода его имени. Это невозможно сделать, даже передавая его в качестве параметра исполняемому файлу powershell.exe, если имя пути содержит пробелы. Приходится добавлять оператор вызова &, что для начинающего пользователя не является интуитивно понятным.
6. Невозможность запуска сценариев из текущего каталога без явного указания пути. Очередное неудобство проявляется при попытке запуска сценариев из текущего каталога. В отличие от более «дружественной» командной оболочки Windows, Power-Shell не предусматривает загрузку команд из текущего каталога по умолчанию. Приходится явно указывать путь, что представляет собой утомительный процесс с высокой вероятностью ошибки, учитывая значительную длину вводимого пути; либо можно использовать форму записи. \, например «.\