Windows PowerShell — это новая командная оболочка Windows, разработанная в первую очередь для системных администраторов. Оболочка Windows PowerShell включает интерактивную командную строку и среду исполнения сценариев, которые можно использовать вместе или по отдельности. Оболочка Windows PowerShell разработана на основе среды CLR и платформы .NET Framework, принимает и возвращает объекты .NET Framework.

Windows PowerShell представляет собой оболочку командной строки и среду выполнения сценариев, предоставляющая ИТ-администраторам возможности управления и автоматизации задач администрирования. Windows PowerShell включает ряд системных программ администрирования, единый синтаксис и структуру именования, а также улучшенную работу с реестром, хранилищем сертификатов и инструментарием управления Windows (WMI). Windows PowerShell также включает интуитивно понятный язык сценариев, предназначенный для ИТ-администрирования.

В этом разделе содержится описание следующих элементов Windows PowerShell: языка, команд (они называются «командлетами»), поставщиков и использования объектов.

Более подробные сведения о Windows PowerShell см. на сайте Microsoft Windows PowerShell.

Windows PowerShell обладает следующими отличительными возможностями:

Windows PowerShell работает с широким набором продуктов Майкрософт, в том числе Microsoft Forefront Protection 2010 for SharePoint (FPSP).

Windows PowerShell — это инструмент, который можно использовать вместе с графическим пользовательским интерфейсом и любыми созданными сценариями VBScript. Windows PowerShell дополняет VBScript и другие технологии управления. Можно использовать Windows PowerShell вместо Консоль администрирования Forefront Protection 2010 for SharePoint, однако удобнее всего использовать эту оболочку для повторяющихся задач.

Windows PowerShell включает полную интерактивную среду. Когда пользователь вводит в командной строке команду, она обрабатывается и вывод отображается в окне оболочки. Выходные данные можно отправить в файл или на принтер. Кроме того, с помощью оператора конвейерной обработки (|) их можно отправить другой команде.

Командлеты

В Windows PowerShell реализована новая концепция командлетов — простых узкоспециализированных средств командной строки, встроенных в оболочку. Командлеты можно использовать и по отдельности, однако по-настоящему их достоинства проявляются тогда, когда эти простые средства используются в комбинации друг с другом для решения сложных задач. В Windows PowerShell содержится более 100 основных командлетов. Около 65 командлетов используются для FPSP. Командлет — это команда Windows PowerShell, предназначенная для работы с объектами и выполняющая единственную функцию. Командлеты можно идентифицировать по формату имени — глаголу и существительному, разделенным дефисом (-), например Get-Help, Set-FsspSignatureUpdate и Set-FsspRealtimeScan.

Примечание.
Заглавные буквы добавлены в синтаксис для упрощения чтения, но оболочка 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

Запуск Windows PowerShell из меню «Пуск»

  • Выполните одно из следующих действий.

    • Если программа FPSP не установлена, в меню Пуск выберите Все программы, Windows PowerShell 1.0 и щелкните Windows PowerShell.

    • Если программа FPSP установлена, нажмите кнопку Пуск, выберите Все программы, Microsoft Forefront Server Protection и Командная консоль Forefront.

Запуск Windows PowerShell из командной строки

  • Откройте окно командной строки, введите команду powershell и нажмите клавишу ВВОД.

Просмотр допустимых параметров при запуске Windows PowerShell

  • В командной строке введите команду powershell -? и нажмите клавишу ВВОД.

Поскольку консоль Windows PowerShell работает наподобие консоли командной строки, можно запускать все программы, предназначенные для командной строки, из консоли Windows PowerShell (например, ipconfig); также из консоли Windows PowerShell можно запускать сценарии VBScript и пакетные файлы. Как и в любой консоли, введите нужную команду и нажмите клавишу ВВОД.

Получение технической поддержки

Для получения справки о командлетах Windows PowerShell используйте командлет Get-Help.

Использование командлета Get-Help

  • Чтобы использовать командлет Get-Help, в командной консоли Windows PowerShell введите gethelp и нажмите клавишу ВВОД.

Просмотр всех материалов справки Windows PowerShell

  • Чтобы просмотреть справку обо всех элементах Windows PowerShell, введите gethelp about_* и нажмите клавишу ВВОД.

Получение справки о каком-либо элементе

  • Чтобы получить справку о каком-либо элементе, введите имя этого элемента после слова «about_». Например, введите get-help about_wildcard и нажмите клавишу ВВОД.

Просмотр всех доступных командлетов

  • Для просмотра списка всех доступных командлетов введите get-command и нажмите клавишу ВВОД.

    Примечание.
    Командлет Get-Command также получает команды и элементы команд, отличные от командлетов, в том числе псевдонимы команд, функции и исполняемые файлы, доступные в оболочке Windows PowerShell.

Получение справки о каком-либо командлете

  • Каждый командлет снабжен файлом справки, который можно просмотреть в окне Windows PowerShell. Чтобы просмотреть справку по определенному командлету, введите get-help имя_командлета и нажмите клавишу ВВОД.

Например, чтобы получить справку о командлете Set-FsspSignatureUpdate, введите следующую команду:

get-help Set-FsspSignatureUpdate

Получение подробной справки о каком-либо командлете

  • Для каждого командлета доступна подробная справка, содержащая описание всех параметров и примеры. Чтобы просмотреть подробную справку по определенному командлету, введите get-help имя_командлета-detailed и нажмите клавишу ВВОД.

Например, чтобы получить подробную справку о командлете Set-FsspSignatureUpdate, введите следующую команду:

        get-help Set-FsspSignatureUpdate

Просмотр примеров какого-либо командлета

  • Чтобы просмотреть только примеры по определенному командлету, введите get-help имя_командлетаexamples и нажмите клавишу ВВОД.

Например, чтобы получить примеры командлета Set-FsspSignatureUpdate, введите следующую команду:

get-help Set-FsspSignatureUpdate -examples

Просмотр сведений о параметре какого-либо командлета

  • Чтобы просмотреть только определенный параметр определенного командлета, введите get-help имя_командлета -parameter имя_параметра и нажмите клавишу ВВОД.

Например, чтобы просмотреть справку только для параметра ScheduleStart командлета Set-FsspSignatureUpdate, введите следующую команду:

get-help Set-FsspSignatureUpdate -parameter ScheduleStart

Просмотр списка всех командлетов с одинаковым глаголом

  • Для просмотра списка всех командлетов с одинаковым глаголом введите этот глагол, затем дефис (-) и звездочку(*), потом нажмите клавишу ВВОД.

Например, для просмотра списка командлетов с глаголом Set:

get-help set-*

Использование параметров командлетов

У некоторых командлетов есть параметры, начинающиеся с дефиса (-), позволяющие выбрать различные варианты выполнения команды. Например, у командлета Set-FsspSignatureUpdate есть несколько параметров, в том числе Engine, ScheduleStart и EnableSchedule. У многих командлетов нет параметров. Чаще всего параметры встречаются у командлетов группы Set.

Все командлеты поддерживают параметры, которые называются общими параметрами. Примеры таких параметров — Verbose, Debug и ErrorAction. Они обеспечивают согласованность интерфейса оболочки Windows PowerShell. Чтобы просмотреть описание общих параметров, введите:

  Копирование кода
		get-help about_commonparameters

Установка условий «true» и «false»

Многие командлеты семейства Set имеют параметры, позволяющие включать и выключать разные условия при помощи указателей «true» и «false». В Windows PowerShell перед логическими значениями «true» и «false» нужно ставить знак доллара ($).

Например, чтобы обновлять определения ядра проверки при каждом запуске службы Forefront, установите параметру -UpdateAtStartup командлета Set-FsspSignatureOptions значение «true» следующим образом:

  Копирование кода
		Set-FsspSignatureOptions -UpdateAtStartup $true

Форматирование выходных данных

Можно получить выходные данные в одном из нескольких форматов, направив запрос в один из командлетов формата, перечисленных в таблице.

Командлет Функция

format-list

Форматирует выходные данные в виде списка, каждое свойство в отдельной строке.

format-table

Форматирует выходные данные в виде таблицы со столбцами.

format-wide

Форматирует выходные данные в виде широкой таблицы, в которой отображается только одно свойство каждого объекта.

format-custom

Форматирует выходные данные на базе представлений в файле PS1XML

Для получения дополнительных сведений о каждом командлете запустите с каждым из них командлет Get-Help. Ниже приведен пример:.

  Копирование кода
		Get-help format-list

Командлеты Forefront Protection 2010 for SharePoint

FPSP поддерживает следующие командлеты. Они сгруппированы по функциям, чтобы можно было быстрее найти нужные командлеты.

В следующей таблице содержатся командлеты, используемые для управления проверкой по расписанию.

Командлет Функция

Set-FsspScheduledScan

Устанавливает конфигурацию проверки по расписанию.

Get-FsspScheduledScan

Получает конфигурацию проверки по расписанию.

Start-FsspScheduledScan

Немедленно начинает проверку хранилища базы данных.

Stop-FsspScheduledScan

Останавливает запущенную проверку хранилища базы данных.

Suspend-FsspScheduledScan

Приостанавливает запущенную проверку хранилища базы данных.

Resume-FsspScheduledScan

Возобновляет приостановленную проверку хранилища базы данных.

В следующей таблице содержатся командлеты, используемые для управления проверкой в реальном времени.

Командлет Функция

Set-FsspRealtimeScan

Устанавливает конфигурацию проверки в реальном времени.

Get-FsspRealtimeScan

Получает конфигурацию проверки в реальном времени.

В следующей таблице содержатся командлеты, используемые для управления проверкой по требованию.

Командлет Функция

Set-FsspOnDemandScan

Задает параметры конфигурации проверки по требованию.

Get-FsspOnDemandScan

Получает параметры конфигурации проверки по требованию.

Start-FsspOnDemandScan

Запускает проверку по требованию.

Stop-FsspOnDemandScan

Останавливает выполняемую проверку по требованию.

Suspend-FsspOnDemandScan

Приостанавливает запущенную проверку по требованию.

Resume-FsspOnDemandScan

Возобновляет приостановленную проверку по требованию.

В следующей таблице содержатся командлеты, используемые для работы со списками фильтров.

Командлет Функция

New-FsspFilterList

Создает новый список фильтров.

Get-FsspFilterList

Получает списки фильтров.

Set-FsspFilterList

Изменяет свойства списка фильтров.

Clear-FsspFilterList

Очищает все записи в списке фильтров.

Remove-FsspFilterList

Удаляет список фильтров.

Add-FsspFilterListEntry

Добавляет один или несколько элементов в существующий список фильтров.

Remove-FsspFilterListEntry

Удаляет один или несколько элементов из списка фильтров.

В следующей таблице содержатся командлеты, используемые для фильтрации при проверке по расписанию.

Командлет Функция

Set-FsspScheduledFilter

Создает фильтр, настраивает его и связывает его с проверкой по расписанию.

Get-FsspScheduledFilter

Получает настроенные фильтры проверки по расписанию.

В следующей таблице содержатся командлеты, используемые для фильтрации при проверке в реальном времени.

Командлет Функция

Set-FsspRealtimeFilter

Создает фильтр, настраивает его и связывает его с проверкой в реальном времени.

Get-FsspRealtimeFilter

Получает настроенные фильтры проверки в реальном времени.

В следующей таблице содержатся командлеты, используемые для фильтрации при проверке по требованию.

Командлет Функция

Set-FsspOnDemandFilter

Создает фильтр, настраивает его и связывает его с проверкой по требованию.

Get-FsspOnDemandFilter

Получает настроенные фильтры проверки по требованию.

В следующей таблице содержатся командлеты, используемые для управления антивирусными ядрами.

Командлет

Функция

Set-FsspEngineManagement

Настраивает параметры ядра.

Get-FsspEngineManagement

Получает параметры ядра.

В следующей таблице содержатся командлеты, используемые для управления обновлением определений.

Командлет Функция

Set-FsspSignatureOptions

Устанавливает параметры обновления определений.

Get-FsspSignatureOptions

Получает параметры обновления определений.

Set-FsspSignatureUpdate

Устанавливает расписание обновления определений.

Get-FsspSignatureUpdate

Получает расписание обновления определений.

Start-FsspSignatureUpdate

Начинает немедленное обновление определений.

В следующей таблице содержатся командлеты, используемые для управления различными параметрами.

Командлет Функция

Set-FsspAdvancedOptions

Устанавливает дополнительные параметры.

Get-FsspAdvancedOptions

Получает дополнительные параметры.

Set-FsspLoggingOptions

Устанавливает параметры ведения журнала и диагностики.

Get-FsspLoggingOptions

Получает параметры ведения журнала.

Set-FsspTracing

Устанавливает параметры трассировки.

Get-FsspTracing

Получает параметры трассировки.

В следующей таблице содержатся командлеты, используемые для получения происшествий и записей в карантине.

Командлет Функция

Get-FsspIncident

Получает записи из базы данных происшествий.

Remove-FsspIncident

Удаляет элемент из базы данных происшествий.

Set-FsspIncidentOptions

Устанавливает параметры базы данных происшествий.

Get-FsspIncidentOptions

Получает параметры базы данных происшествий.

Get-FsspQuarantine

Получает записи из базы данных карантина.

Export-FsspQuarantine

Сохраняет помещенные на карантин элементы на диске.

Remove-FsspQuarantine

Удаляет элементы из базы данных карантина.

Set-FsspQuarantineOptions

Устанавливает параметры базы данных карантина.

Get-FsspQuarantineOptions

Получает параметры базы данных карантина.

В следующей таблице содержатся командлеты, используемые для настройки уведомлений.

Командлет Функция

Set-FsspNotification

Устанавливает значения уведомлений.

Get-FsspNotification

Получает значения уведомлений.

Set-FsspNotificationOptions

Задает параметры SMTP для отправки уведомлений по электронной почте.

Get-FsspNotificationOptions

Извлекает параметры SMTP для отправки уведомлений по электронной почте.

В следующей таблице содержатся командлеты, используемые для управления отчетами.

Командлет Функция

Get-FsspReport

Получает статистические отчеты о действиях FPSP.

Clear-FsspReport

Сбрасывает отчет о действиях FPSP.

В следующей таблице содержатся командлеты, используемые для получения сведений о продукте Forefront.

Командлет Функция

Get-FsspProductInfo

Получает сведения о сервере и о продукте Forefront.

Set-FsspLicensing

Устанавливает необходимые параметры лицензирования для FPSP.

Get-FsspLicensing

Получает текущее состояние лицензии продукта.

В следующей таблице содержатся командлеты, используемые для импорта и экспорта параметров конфигурации.

Командлет Функция

Import-FsspSettings

Импортирует параметры конфигурации из XML-файла.

Export-FsspSettings

Экспортирует параметры конфигурации в XML-файл.

В следующей таблице содержатся командлеты, используемые для управления расширенными параметрами (для тестирования и устранения неполадок)

Командлет Функция

Set-FsspExtendedOption

Устанавливает расширенный параметр.

Get-FsspExtendedOption

Получает значение расширенного параметра.

New-FsspExtendedOption

Создает новый расширенный параметр.

Remove-FsspExtendedOption

Удаляет расширенный параметр.

В следующей таблице содержатся командлеты, используемые для проверки состояния системы.

Командлет

Функция

Get-FsspHealth

Получает текущее состояние системы FPSP.