Помимо командлетов, в Windows PowerShell можно запускать функции. Windows PowerShell поставляется с набором встроенных функций, помимо которых можно добавлять функции, полученные от других пользователей, и создавать собственные функции.
О функциях
Функции — это тип команд в Windows PowerShell. Для запуска функции введите ее имя, точно так же, как и для командлета. Как и командлеты, функции могут иметь параметры. Как и командлеты, функции могут использовать объекты .NET в качестве источника ввода и выводить объекты .NET. Фактически функции обладают теми же возможностями, что и командлеты.
Лучше всего в функциях то, что их очень легко создавать. В отличие от командлетов, которые пишутся на языке C#, функции представляют собой просто именованные наборы команд и выражений Windows PowerShell. Создавать функции так же просто, как и вводить команды в Windows PowerShell.
Поиск функций
Функции являются командами, и поэтому для поиска функций используйте командлет Get-Command.
Например, чтобы найти все функции текущего сеанса, введите команду:
get-command -CommandType function
Кроме того, в Windows PowerShell имеется диск Function:, содержащий все функции текущего сеанса. Для просмотра диска Function: используйте те же методы, что и для просмотра дисков файловой системы.
Чтобы открыть диск функций, введите:
cd function:
Чтобы вывести функции с диска функций, введите:
dir function:
Запуск функций
Для запуска функции нужно просто ввести ее имя. Например, для запуска функции Clear-Host введите следующую команду:
clear-host
В консоли Windows PowerShell функция Clear-Host служит для удаления всего текста из окна консоли. В других приложениях эта функция может иметь другое действие или не иметь никакого действия.
Чтобы использовать параметры функции, введите имя параметра с дефисом перед ним и значением после него, точно так же, как и при вводе параметров командлета.
Например, функция Help, выводящая разделы справки постранично, имеет те же параметры, что и командлет Get-Help. Чтобы использовать функцию Help для вывода только примеров из раздела справки для командлета Get-Service, введите следующую команду:
help -name get-service -examples
Получение справки о функциях
Для функций могут существовать разделы справки. Чтобы найти раздел справки для функции, используйте командлет Get-Help. Это тот же командлет, что используется для получения справки по командлетам.
Например, для получения справки по функции Disable-PSRemoting, введите следующую команду:
get-help Disable-PSRemoting
Для получения справки по функциям можно использовать любые параметры командлета Get-Help. Например, чтобы получить примеры из раздела справки для функции Disable-PSRemoting, введите следующую команду:
get-help Disable-PSRemoting -example
Создание функций
Функция представляет собой именованную группу команд или выражений. Чтобы написать простую функцию, используйте следующий формат.
function <name> { <commands> }
Введите ключевое слово function и имя функции и заключите команды в фигурные скобки ({ }).
Например, если какая-то команда, например,
get-help get-member -examples
, используется часто, для
экономии времени можно написать функцию, исполняющую эту команду.
Следующая функция с именем GMEX исполняет эту команду.
function GMEX {get-help get-member -examples}
После ввода в командной строке Windows PowerShell (или после копирования и вставки из этого раздела) и нажатия клавиши ENTER эту функцию можно будет использовать в текущем сеансе. Для исполнения функции введите команду GMEX.
Эта функция простая, но добавив еще несколько строк, можно включить в нее обязательные или необязательные параметры, добавить пользовательские сообщения или создать для нее раздел справки. После ознакомления с возможностями Windows PowerShell можно научиться писать сложные функции со всеми характеристиками командлетов.
Дополнительные сведения о написании функций см. в разделах about_Functions, about_Comment_Based_Help и about_Functions_Advanced.
Сохранение функций
При запуске Windows PowerShell открывается ее сеанс. Сеанс длится, пока не закрывается окно Windows PowerShell (или пока сеанс не завершается с помощью команды Exit). Элементы, созданные во время сеанса, удаляются при его закрытии, если они не сохранены в файле на диске или в реестре.
Для использования функций в будущих сеансах Windows PowerShell нужно создать профиль Windows PowerShell и сохранить эти функции в нем.
Дополнительную информацию см. в разделе about_Profiles.