Обязательно прочитайте предыдущие статьи в серии:
- Узнайте, как автоматизировать Windows с помощью PowerShell
- Обучение использованию командлетов в PowerShell
- Обучение использованию объектов в PowerShell
- Форматирование, фильтрация и сравнение обучения в PowerShell
- Научитесь использовать Remoting в PowerShell
- Использование PowerShell для получения информации о компьютере
- Работа с коллекциями в PowerShell
И оставайтесь настроенными для остальной части серии всю неделю.
Snapins
Snapins - это в прошлом году. Все шутки в стороне, snapins никогда не попадались среди сообщества PowerShell, потому что большинство сценаристов не являются разработчиками, и вы можете писать snapins только на языке C #. Тем не менее, есть еще некоторые продукты, которые используют snapins, например Web Deploy. Чтобы увидеть, какие snapins доступны для использования в оболочке, вы используете следующую команду:
Get-PSSnapin –Registered
Add-PSSnapin -Name WDeploySnapin3.0
На этом этапе вы получите сообщение об ошибке, если у вас нет установленного Snapin для веб-развертывания. Если вы его установили, как и я, то он будет импортирован в ваш сеанс. Чтобы получить список команд, доступных в snapin, вы можете просто использовать командлет Get-Command:
Get-Command –Module WDeploy*
Примечание. Технически это не модуль, но по какой-то причине вам все еще нужно использовать параметр Module.
Модули
Модули новее и продвигаются вперед. Они могут быть написаны с использованием PowerShell, а также закодированы на языке C #. Большинство встроенных команд также организованы в модули. Чтобы просмотреть список модулей в вашей системе, вы можете использовать следующую команду:
Get-Module –ListAvailable
Import-Module -Name SQLASCMDLETS
Вы можете использовать тот же трюк, который мы использовали со snapins, чтобы просмотреть все команды, которые модуль добавил в оболочку.
($env:PSModulePath).Split(“;”)
Это выплюнет содержимое переменной. Обратите внимание, что если у вас есть такой модуль, как SQL, как он изменил эту переменную, чтобы включить расположение модуля SQL.
Автоматическая загрузка модуля
PowerShell 3 представила потрясающую новую функцию, которая имеет несколько имен. Ни один из них не является официальным, но «Автоматическая загрузка модуля» - лучшее описание. В принципе, он позволяет использовать командлеты, принадлежащие внешнему модулю, без явного импорта модуля с помощью командлета Import-Module. Чтобы увидеть это, сначала удалите все модули из вашей оболочки, используя следующую команду:
Get-Module | Remove-Module
Затем вы можете проверить, что у вас нет загруженных модулей, используя следующее:
Get-Module
Test-Connection localhost