Windows PowerShell — это новая командная оболочка Windows, разработанная в первую очередь для системных администраторов. Оболочка Windows PowerShell включает интерактивную командную строку и среду исполнения сценариев, которые можно использовать вместе или по отдельности. Оболочка Windows PowerShell разработана на основе среды CLR и платформы .NET Framework, принимает и возвращает объекты .NET Framework.
Windows PowerShell представляет собой оболочку командной строки и среду выполнения сценариев, предоставляющая ИТ-администраторам возможности управления и автоматизации задач администрирования. Windows PowerShell включает ряд системных программ администрирования, единый синтаксис и структуру именования, а также улучшенную работу с реестром, хранилищем сертификатов и инструментарием управления Windows (WMI). Windows PowerShell также включает интуитивно понятный язык сценариев, предназначенный для ИТ-администрирования.
В этом разделе содержится описание следующих элементов Windows PowerShell: языка, команд (они называются «командлетами»), поставщиков и использования объектов.
Дополнительные сведения о Windows PowerShell см. в разделе Windows PowerShell.
Windows PowerShell обладает следующими отличительными возможностями:
- Windows PowerShell обрабатывает не текст, а
объекты платформы .NET.
- Windows PowerShell включает множество
встроенных команд, имеющих унифицированный интерфейс.
- Все команды оболочки обрабатываются одним
синтаксическим анализатором, в том время как во многих других
оболочках каждому средству соответствует отдельный анализатор. Это
значительно облегчает изучение команд.
- Нет необходимости отказываться от привычных и
знакомых программ. Можно по-прежнему использовать хорошо знакомые
программы для Windows, например .Net, и Reg.exe.
Windows PowerShell работает с широким набором продуктов Майкрософт, в том числе Microsoft Forefront Protection 2010 for Exchange Server (FPE).
Windows PowerShell — это инструмент, который можно использовать вместе с графическим пользовательским интерфейсом и любыми созданными сценариями VBScript. Windows PowerShell дополняет VBScript и другие технологии управления. Можно использовать Windows PowerShell вместо Консоль администрирования Forefront Protection 2010 for Exchange Server, однако удобнее всего использовать эту оболочку для повторяющихся задач.
Windows PowerShell включает полную интерактивную среду. Когда пользователь вводит в командной строке команду, она обрабатывается и вывод отображается в окне оболочки. Выходные данные можно отправить в файл или на принтер. Кроме того, с помощью оператора конвейерной обработки (|) их можно отправить другой команде.
Командлеты
В Windows PowerShell реализована новая концепция командлетов — простых узкоспециализированных средств командной строки, встроенных в оболочку. Командлеты можно использовать и по отдельности, однако по-настоящему их достоинства проявляются тогда, когда эти простые средства используются в комбинации друг с другом для решения сложных задач. В Windows PowerShell содержится более 100 основных командлетов. Около 80 командлетов используются для FPE.
Командлет — это команда Windows PowerShell, предназначенная для работы с объектами и выполняющая единственную функцию. Командлеты можно идентифицировать по формату имени — глаголу и существительному, разделенным дефисом (-), например Get-Help, Set-FseSignatureUpdate и Set-FseRealtimeScan.
Примечание. |
---|
Заглавные буквы добавлены в синтаксис для упрощения чтения, но оболочка Windows PowerShell не учитывает регистр. |
В Windows PowerShell большинство командлетов выполняют какую-либо одну простую функцию. Например, командлеты "get" только получают данные, а командлеты "set" только задают или изменяют данные.
Объекты
Хотя на первый взгляд это не очевидно, при работе с оболочкой Windows PowerShell на самом деле идет работа с объектами .NET. По мере накопления опыта достоинства обработки объектов станут для вас более очевидными, и вы начнете даже думать «объектами».
С технической точки зрения объект .NET представляет собой экземпляр класса .NET, состоящий из данных и связанных с ними операций. Объект можно рассматривать как сущность, имеющую свойства (характеристики сущности) и методы (действия, которые можно выполнять над сущностью).
Например, при возврате службы в Windows PowerShell на самом деле возвращается объект, представляющий соответствующую службу. При просмотре сведений о службе отображаются свойства объекта-службы. При запуске службы используется метод объекта службы.
Все объекты одного типа имеют одни и те же свойства и методы, однако значения свойств каждого экземпляра объекта могут быть разными. Например, каждый объект-служба имеет свойства Name и Status. Однако имя и статус одной службы могут отличаться от имени и статуса любой другой службы.
Можно использовать оператор конвейера (|) для передачи результатов одного командлета (указанного слева от оператора) другому командлету (указанному справа от оператора). Чтобы узнать тип объекта, получаемого командлетом, используйте командлет Get-Member, который получает сведения об объектах или семействах объектов. Для отправки результатов команды Get командлету -Member используйте конвейерный оператор (|). Например, следующая команда передает объекты, полученные командой Get-Service, команде Get-Member.
Копирование кода | |
---|---|
Get-Service | Get-Member |
В данном случае возвращается информация об объекте службы:
Копирование кода | |
---|---|
TypeName: System.ServiceProcess.ServiceController |
Копирование кода | |
---|---|
Name MemberType Definition ---- ---------- ---------- Name AliasProperty Name = ServiceName add_Disposed Method System.Void add_Disposed(EventHandler value) Close Method System.Void Close() Continue Method System.Void Continue() ... |
Чтобы узнать значения всех свойств конкретного объекта, нужно передать результат выполнения команды Get команде Format-List или Format-Table с помощью оператора конвейерной обработки (|). (Командлеты Format используются для того, чтобы сделать выходные данные более удобными для чтения. Дополнительные сведения см. в разделе Форматирование выходных данных). Используйте параметр -property командлета Format со значением «все» (*). Например, чтобы просмотреть значения всех свойств службы Schedule, введите следующую команду:
Копирование кода | |
---|---|
get-service schedule | format-list -property * |
В данном случае возвращается информация свойствах в формате списка:
Копирование кода | |
---|---|
Name : Schedule CanPauseAndContinue : True CanShutdown : True CanStop : True DisplayName : Task Scheduler DependentServices : {} MachineName : . ServiceName : Schedule ServicesDependedOn : {RpcSs} ServiceHandle : SafeServiceHandle Status : Running ServiceType : Win32ShareProcess Site : Container : |
Одним из главных преимуществ использования объектов является простота передачи вывода одной команды другой команде в качестве ввода, то есть конвейерного выполнения команд.
При передаче данных зачастую требуется преобразовывать выходные данные из одного формата в другой, удалять заголовки столбцов, поэтому в Windows PowerShell поддерживается новая интерактивная модель на базе объектов, а не текста. Это означает, что командлет, который принимает объект, может обращаться к его свойствам и методам без каких-либо преобразований или других операций. Пользователи могут обращаться к свойствам и методам объекта по их именам вместо того, чтобы определять расположение нужных данных в выходных данных.
В следующем примере результат выполнения команды IpConfig передается команде Findstr. Оператор конвейерной обработки (|) отправляет результат выполнения левой команды правой команде. При работе с не требуется работать со строками и вычислять смещения данных.
Копирование кода | |
---|---|
PS> ipconfig | findstr "Address" IP Address. . . . . . . . . . . . : 172.28.21.5 IP Address. . . . . . . . . . . . : 172.30.160.225 |
Сценарии
Если вы часто используете конкретные команды или их последовательности или разрабатываете алгоритм решения сложной задачи, команды можно сохранить в файле с расширением .PSL. Тогда вместо ввода команд в командной строке можно будет запустить этот файл (он называется сценарием).
Кроме интерактивного интерфейса в оболочке Windows PowerShell реализована полная поддержка сценариев. Чтобы запустить сценарий, введите его имя в командной строке. Расширение .PSL можно не указывать.
Например, следующие строки эквивалентны:
Копирование кода | |
---|---|
c:\test\testscript.ps1 c:\test\testscript |
Примечание. |
---|
При запуске сценария нужно указывать полный путь к его файлу, даже если он хранится в текущей папке. Чтобы указать текущую папку, нужно ввести ее имя или точку (.), чтобы указать текущую папку. Например: |
Копирование кода | |
---|---|
.\testscript.ps1 |
Важно. |
---|
Сценарии очень полезны, а иногда даже необходимы для решения той или иной задачи, однако злоумышленники могут использовать их для распространения вредоносного кода. Чтобы определить, возможно ли выполнение сценариев и должны ли они включать цифровую подпись, в оболочке Windows PowerShell используется политика обеспечения безопасности. Ради устранения явного риска ни одна политика безопасности, доступная в оболочке Windows PowerShell, не позволяет выполнить сценарий, дважды щелкнув его значок. Чтобы получить дополнительные сведения, введите следующую команду: |
Копирование кода | |
---|---|
Get-help about_signing |
Кроме того, оболочка Windows PowerShell включает развитый язык сценариев, позволяющий создавать самые разные сценарии: от совсем простых до очень сложных. Он поддерживает циклы, условные операторы, управление потоком выполнения кода и присвоение значений переменным.
Запуск Windows PowerShell
-
Выполните одно из следующих действий.
- Если программа FPE не установлена, в меню
Пуск выберите Все программы, Windows PowerShell
1.0 и щелкните Windows PowerShell.
- Если программа FPE установлена, нажмите
кнопку Пуск, выберите Все программы, Microsoft
Forefront Server Security и Командная консоль
Forefront.
- Если программа FPE не установлена, в меню
Пуск выберите Все программы, Windows PowerShell
1.0 и щелкните Windows PowerShell.
-
Откройте окно командной строки, введите команду powershell и нажмите клавишу ВВОД.
-
В командной строке введите команду powershell -? и нажмите клавишу ВВОД.
Поскольку консоль Windows PowerShell работает наподобие консоли командной строки, можно запускать все программы, предназначенные для командной строки, из консоли Windows PowerShell (например, ipconfig); также из консоли Windows PowerShell можно запускать сценарии VBScript и пакетные файлы. Как и в любой консоли, введите нужную команду и нажмите клавишу ВВОД.
Получение технической поддержки
Для получения справки о командлетах Windows PowerShell используйте командлет Get-Help.
Использование командлета Get-Help-
Чтобы использовать командлет Get-Help, в командной консоли Windows PowerShell введите gethelp и нажмите клавишу ВВОД.
-
Чтобы просмотреть справку обо всех элементах Windows PowerShell, введите gethelp about_* и нажмите клавишу ВВОД.
-
Чтобы получить справку о каком-либо элементе, введите имя этого элемента после слова «about_». Например, введите get-help about_wildcard и нажмите клавишу ВВОД.
-
Для просмотра списка всех доступных командлетов введите get-command и нажмите клавишу ВВОД.
Примечание. Командлет Get-Command также получает команды и элементы команд, отличные от командлетов, в том числе псевдонимы команд, функции и исполняемые файлы, доступные в оболочке Windows PowerShell.
-
Каждый командлет снабжен файлом справки, который можно просмотреть в окне Windows PowerShell. Чтобы просмотреть справку по определенному командлету, введите get-help имя_командлета и нажмите клавишу ВВОД.
Например, чтобы получить справку о командлете Set-FseSignatureUpdate, введите следующую команду:
get-help Set-FseSignatureUpdate
Получение подробной справки о каком-либо командлете-
Для каждого командлета доступна подробная справка, содержащая описание всех параметров и примеры. Чтобы просмотреть подробную справку по определенному командлету, введите get-help имя_командлета-detailed и нажмите клавишу ВВОД.
Например, чтобы получить подробную справку о командлете Set-FseSignatureUpdate, введите следующую команду:
get-help Set-FseSignatureUpdate
Просмотр примеров какого-либо командлета-
Чтобы просмотреть только примеры по определенному командлету, введите get-help имя_командлетаexamples и нажмите клавишу ВВОД.
Например, чтобы получить примеры командлета Set-FseSignatureUpdate, введите следующую команду:
get-help Set-FseSignatureUpdate -examples
Просмотр сведений о параметре какого-либо командлета-
Чтобы просмотреть только определенный параметр определенного командлета, введите get-help имя_командлета -parameter имя_параметра и нажмите клавишу ВВОД.
Например, чтобы просмотреть справку только для параметра ScheduleStart командлета Set-FseSignatureUpdate, введите следующую команду:
get-help Set-FseSignatureUpdate -parameter ScheduleStart
Просмотр списка всех командлетов с одинаковым глаголом-
Для просмотра списка всех командлетов с одинаковым глаголом введите этот глагол, затем дефис (-) и звездочку(*), потом нажмите клавишу ВВОД.
Например, для просмотра списка командлетов с глаголом Set:
get-help set-*
Использование параметров командлетов
У некоторых командлетов есть параметры, начинающиеся с дефиса (-), позволяющие выбрать различные варианты выполнения команды. Например, у командлета Set-FseSignatureUpdate есть несколько параметров, в том числе Engine, ScheduleStart и EnableSchedule. У многих командлетов нет параметров. Чаще всего параметры встречаются у командлетов группы Set.
Все командлеты поддерживают параметры, которые называются общими параметрами. Примеры таких параметров — Verbose, Debug и ErrorAction. Они обеспечивают согласованность интерфейса оболочки Windows PowerShell. Чтобы просмотреть описание общих параметров, введите:
Копирование кода | |
---|---|
get-help about_commonparameters |
Установка условий «true» и «false»
Многие командлеты семейства Set имеют параметры, позволяющие включать и выключать разные условия при помощи указателей «true» и «false». В Windows PowerShell перед логическими значениями «true» и «false» нужно ставить знак доллара ($).
Например, чтобы обновлять определения ядра проверки при каждом запуске службы Forefront, установите параметру -UpdateAtStartup командлета SetFseSignatureOptions значение «true» следующим образом:
Копирование кода | |
---|---|
Set-FseSignatureOptions -UpdateAtStartup $true |
Форматирование выходных данных
Можно получить выходные данные в одном из нескольких форматов, направив запрос в один из командлетов формата, перечисленных в таблице.
Командлет | Функция |
---|---|
format-list |
Форматирует выходные данные в виде списка, каждое свойство в отдельной строке. |
format-table |
Форматирует выходные данные в виде таблицы со столбцами. |
format-wide |
Форматирует выходные данные в виде широкой таблицы, в которой отображается только одно свойство каждого объекта. |
format-custom |
Форматирует выходные данные на базе представлений в файле PX1XML. |
Для получения дополнительных сведений о каждом командлете запустите с каждым из них командлет Get-Help. Ниже приведен пример:.
Копирование кода | |
---|---|
Get-help format-list |
Командлеты FSE
FPE поддерживает следующие командлеты. Они сгруппированы по функциям, чтобы можно было быстрее найти нужные командлеты.
В следующей таблице содержатся командлеты, используемые для управления проверкой по расписанию.
Командлет | Функция |
---|---|
Set-FseScheduledScan |
Устанавливает конфигурацию проверки по расписанию. |
Get-FseScheduledScan |
Получает конфигурацию проверки по расписанию. |
Start-FseScheduledScan |
Немедленно начинает проверку хранилища почтового ящика. |
Stop-FseScheduledScan |
Останавливает запущенную проверку хранилища почтового ящика. |
В следующей таблице содержатся командлеты, используемые для управления проверкой в реальном времени.
Командлет | Функция |
---|---|
Set-FseRealtimeScan |
Устанавливает конфигурацию проверки в реальном времени. |
Get-FseRealtimeScan |
Получает конфигурацию проверки в реальном времени. |
В следующей таблице содержатся командлеты, используемые для управления проверкой транспорта.
Командлет | Функция |
---|---|
Set-FseTransportScan |
Устанавливает конфигурацию проверки транспорта. |
Get-FseTransportScan |
Получает конфигурацию проверки транспорта. |
В следующей таблице содержатся командлеты, используемые для управления проверкой по требованию.
Командлет | Функция |
---|---|
Set-FseOnDemandScan |
Устанавливает конфигурацию проверки по требованию. |
Get-FseOnDemandScan |
Получает конфигурацию проверки по требованию. |
Start-FseOnDemandScan |
Запускает проверку по требованию. |
Stop-FseOnDemandScan |
Останавливает проверку по требованию. |
Suspend-FseOnDemandScan |
Приостанавливает запущенную проверку по требованию. |
Resume-FseOnDemandScan |
Возобновляет приостановленную проверку по требованию. |
В следующей таблице содержатся командлеты, используемые для работы со списками фильтров.
Командлет | Функция |
---|---|
New-FseFilterList |
Создает новый список фильтров. |
Get-FseFilterList |
Получает списки фильтров. |
Set-FseFilterList |
Изменяет свойства списка фильтров. |
Clear-FseFilterList |
Очищает все записи в списке фильтров. |
Remove-FseFilterList |
Удаляет список фильтров. |
Add-FseFilterListEntry |
Добавляет один или несколько элементов в существующий список фильтров. |
Remove-FseFilterListEntry |
Удаляет один или несколько элементов из списка фильтров. |
В следующей таблице содержатся командлеты, используемые для фильтрации при проверке по расписанию.
Командлет | Функция |
---|---|
Set-FseScheduledFilter |
Создает фильтр, настраивает его и связывает его с заданием проверки по расписанию. |
Get-FseScheduledFilter |
Получает настроенные фильтры задания проверки по расписанию. |
В следующей таблице содержатся командлеты, используемые для фильтрации при проверке в реальном времени.
Командлет | Функция |
---|---|
Set-FseRealtimeFilter |
Создает фильтр, настраивает его и связывает его с заданием проверки в реальном времени. |
Get-FseRealtimeFilter |
Получает настроенные фильтры задания проверки в реальном времени. |
В следующей таблице содержатся командлеты, используемые для фильтрации при проверке транспорта.
Командлет | Функция |
---|---|
Set-FseTransportFilter |
Создает фильтр, настраивает его и связывает его с заданием проверки транспорта. |
Get-FseTransportFilter |
Получает настроенные фильтры задания проверки транспорта. |
В следующей таблице содержатся командлеты, используемые для фильтрации при проверке по требованию.
Командлет | Функция |
---|---|
Set-FseOnDemandFilter |
Создает фильтр, настраивает его и связывает его с заданием проверки по требованию. |
Get-FseOnDemandFilter |
Получает настроенные фильтры задания проверки по требованию. |
В следующей таблице содержатся командлеты, используемые для управления антивирусными ядрами.
Командлет |
Функция |
Set-FseEngineManagement |
Настраивает параметры ядра. |
Get-FseEngineManagement |
Получает параметры ядра. |
В следующей таблице содержатся командлеты, используемые для управления обновлением определений.
Командлет | Функция |
---|---|
Set-FseSignatureOptions |
Устанавливает параметры обновления определений. |
Get-FseSignatureOptions |
Получает параметры обновления определений. |
Set-FseSignatureUpdate |
Устанавливает расписание обновления определений. |
Get-FseSignatureUpdate |
Получает расписание обновления определений. |
Start-FseSignatureUpdate |
Начинает немедленное обновление определений. |
В следующей таблице содержатся командлеты, используемые для управления различными параметрами.
Командлет | Функция |
---|---|
Set-FseAdvancedOptions |
Устанавливает дополнительные параметры. |
Get-FseAdvancedOptions |
Получает дополнительные параметры. |
Set-FseLoggingOptions |
Устанавливает параметры ведения журнала и диагностики. |
Get-FseLoggingOptions |
Получает параметры ведения журнала. |
Set-FseTracing |
Устанавливает параметры трассировки. |
Get-FseTracing |
Получает параметры трассировки. |
Get-FseExchangeManagementStatus |
Подтверждает, доступна ли защита от нежелательной почты. |
В следующей таблице содержатся командлеты, используемые для получения происшествий и записей в карантине.
Командлет | Функция |
---|---|
Get-FseIncident |
Получает записи из базы данных происшествий. |
Remove-FseIncident |
Удаляет элемент из базы данных происшествий. |
Set-FseIncidentOptions |
Устанавливает параметры базы данных происшествий. |
Get-FseIncidentOptions |
Получает параметры базы данных происшествий. |
Get-FseQuarantine |
Получает записи из базы данных карантина. |
Export-FseQuarantine |
Сохраняет помещенные на карантин элементы на диске. |
Remove-FseQuarantine |
Удаляет элементы из базы данных карантина. |
Send-FseQuarantine |
Доставляет помещенный на карантин элемент указанным получателям. |
Set-FseQuarantineOptions |
Устанавливает параметры базы данных карантина. |
Get-FseQuarantineOptions |
Получает параметры базы данных карантина. |
В следующей таблице содержатся командлеты, используемые для настройки уведомлений.
Командлет | Функция |
---|---|
Set-FseNotification |
Устанавливает значения уведомлений. |
Get-FseNotification |
Получает значения уведомлений. |
В следующей таблице содержатся командлеты, используемые для управления отчетами.
Командлет | Функция |
---|---|
Get-FseReport |
Получает статистические отчеты о действиях FPE. |
Clear-FseReport |
Сбрасывает отчет о действиях FPE. |
Get-FseSpamReport |
Получает отчет о блокировке нежелательной почты |
В следующей таблице содержатся командлеты, используемые для получения сведений о продукте Forefront.
Командлет | Функция |
---|---|
Get-FseProductInfo |
Получает сведения о сервере и о продукте Forefront. |
Set-FseLicensing |
Устанавливает необходимые параметры лицензирования для FPE. |
Get-FseLicensing |
Получает текущее состояние лицензии продукта. |
В следующей таблице содержатся командлеты, используемые для импорта и экспорта параметров конфигурации.
Командлет | Функция |
---|---|
Import-FseSettings |
Импортирует параметры конфигурации из XML-файла. |
Export-FseSettings |
Экспортирует параметры конфигурации в XML-файл. |
В следующей таблице содержатся командлеты, используемые для управления расширенными параметрами (для тестирования и устранения неполадок).
Командлет | Функция |
---|---|
Set-FseExtendedOption |
Устанавливает расширенный параметр. |
Get-FseExtendedOption |
Получает значение расширенного параметра. |
New-FseExtendedOption |
Создает новый расширенный параметр. |
Remove-FseExtendedOption |
Удаляет расширенный параметр. |
В следующей таблице содержатся командлеты, используемые для управления параметрами защиты от нежелательной почты.
Командлет | Функция |
---|---|
Set-FseSpamContentFilter |
Устанавливает параметры конфигурации для фильтра содержимого нежелательной почты. |
Get-FseSpamContentFilter |
Получает параметры конфигурации для фильтра содержимого нежелательной почты. |
Set-FseSpamFiltering |
Включает или отключает фильтрацию нежелательной почты. |
Get-FseSpamFiltering |
Получает состояние фильтрации нежелательной почты. |
Set-FseSpamConnectionFilter |
Устанавливает параметры конфигурации для списка блокировки DNS (DNSBL). |
Get-FseSpamConnectionFilter |
Получает параметры конфигурации для фильтра блокировки DNSBL. |
Get-FseSpamAgentLog |
Получает записи журналов от всех агентов защиты от нежелательной почты. |
В следующей таблице содержатся командлеты, используемые для управления параметрами возвращаемых писем.
Командлет |
Функция |
Set-FseBackscatterFilter |
Настраивает агент защиты от возвращаемых писем. |
Get-FseBackscatterFilter |
Получает параметры настройки агента защиты от возвращаемых писем. |
New-FseBackscatterKeys |
Создает новый набор ключей возвращаемых писем. |
В следующей таблице содержатся командлеты, используемые для проверки состояния системы.
Командлет |
Функция |
Get-FseHealth |
Получает текущее состояние системы FSE. |