Школа Geek: Узнайте, как расширить PowerShell

Оглавление:

Школа Geek: Узнайте, как расширить PowerShell
Школа Geek: Узнайте, как расширить PowerShell

Видео: Школа Geek: Узнайте, как расширить PowerShell

Видео: Школа Geek: Узнайте, как расширить PowerShell
Видео: Курс 6420 - Основы Windows Server 2008. Модуль 8. Урок 3 - Безопасность в Интернете - YouTube 2024, Май
Anonim
PowerShell предлагает два способа расширения оболочки. Вы можете использовать snapins, которые являются только двоичными и разрабатываются на полноценном языке программирования, таком как C #, или вы можете использовать модули, которые могут быть двоичными, а также основаны на сценариях.
PowerShell предлагает два способа расширения оболочки. Вы можете использовать snapins, которые являются только двоичными и разрабатываются на полноценном языке программирования, таком как C #, или вы можете использовать модули, которые могут быть двоичными, а также основаны на сценариях.

Обязательно прочитайте предыдущие статьи в серии:

  • Узнайте, как автоматизировать Windows с помощью PowerShell
  • Обучение использованию командлетов в PowerShell
  • Обучение использованию объектов в PowerShell
  • Форматирование, фильтрация и сравнение обучения в PowerShell
  • Научитесь использовать Remoting в PowerShell
  • Использование PowerShell для получения информации о компьютере
  • Работа с коллекциями в PowerShell

И оставайтесь настроенными для остальной части серии всю неделю.

Snapins

Snapins - это в прошлом году. Все шутки в стороне, snapins никогда не попадались среди сообщества PowerShell, потому что большинство сценаристов не являются разработчиками, и вы можете писать snapins только на языке C #. Тем не менее, есть еще некоторые продукты, которые используют snapins, например Web Deploy. Чтобы увидеть, какие snapins доступны для использования в оболочке, вы используете следующую команду:

Get-PSSnapin –Registered

Чтобы использовать команды, добавленные snapin, сначала нужно импортировать их в свой сеанс, и вы можете сделать это следующим образом:
Чтобы использовать команды, добавленные snapin, сначала нужно импортировать их в свой сеанс, и вы можете сделать это следующим образом:

Add-PSSnapin -Name WDeploySnapin3.0

На этом этапе вы получите сообщение об ошибке, если у вас нет установленного Snapin для веб-развертывания. Если вы его установили, как и я, то он будет импортирован в ваш сеанс. Чтобы получить список команд, доступных в snapin, вы можете просто использовать командлет Get-Command:

Get-Command –Module WDeploy*

Примечание. Технически это не модуль, но по какой-то причине вам все еще нужно использовать параметр Module.

Image
Image

Модули

Модули новее и продвигаются вперед. Они могут быть написаны с использованием PowerShell, а также закодированы на языке C #. Большинство встроенных команд также организованы в модули. Чтобы просмотреть список модулей в вашей системе, вы можете использовать следующую команду:

Get-Module –ListAvailable

По мере обновления продуктов их копии PowerShell переносятся в модули. Например, для SQL использовался snapin, но теперь он состоит из модулей.
По мере обновления продуктов их копии PowerShell переносятся в модули. Например, для SQL использовался snapin, но теперь он состоит из модулей.
Чтобы использовать модуль, вам необходимо сначала его импортировать.
Чтобы использовать модуль, вам необходимо сначала его импортировать.

Import-Module -Name SQLASCMDLETS

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

Поэтому возникает вопрос: как PowerShell знает, какие snapins и модули у вас есть в вашей системе? Ну, snapins немного больно и их нужно установить. Часть процесса установки включает в себя создание нескольких записей в реестре, которые PowerShell пытается найти для информации snapin. Модули, с другой стороны, могут быть зарегистрированы в оболочке, просто помещая их в одно из мест в переменной среды PSModulePath. Кроме того, вы можете просто добавить путь к модулю в переменную среды.
Поэтому возникает вопрос: как PowerShell знает, какие snapins и модули у вас есть в вашей системе? Ну, snapins немного больно и их нужно установить. Часть процесса установки включает в себя создание нескольких записей в реестре, которые PowerShell пытается найти для информации snapin. Модули, с другой стороны, могут быть зарегистрированы в оболочке, просто помещая их в одно из мест в переменной среды PSModulePath. Кроме того, вы можете просто добавить путь к модулю в переменную среды.

($env:PSModulePath).Split(“;”)

Это выплюнет содержимое переменной. Обратите внимание, что если у вас есть такой модуль, как SQL, как он изменил эту переменную, чтобы включить расположение модуля SQL.

Image
Image

Автоматическая загрузка модуля

PowerShell 3 представила потрясающую новую функцию, которая имеет несколько имен. Ни один из них не является официальным, но «Автоматическая загрузка модуля» - лучшее описание. В принципе, он позволяет использовать командлеты, принадлежащие внешнему модулю, без явного импорта модуля с помощью командлета Import-Module. Чтобы увидеть это, сначала удалите все модули из вашей оболочки, используя следующую команду:

Get-Module | Remove-Module

Затем вы можете проверить, что у вас нет загруженных модулей, используя следующее:

Get-Module

Теперь используйте командлет, который не находится в основной библиотеке. Test-Connection является хорошим:
Теперь используйте командлет, который не находится в основной библиотеке. Test-Connection является хорошим:

Test-Connection localhost

Рекомендуемые: