Geek School Дізнайтеся, як розширити PowerShell
PowerShell пропонує два способи розширення оболонки. Можна скористатися прив'язками, які є бінарними і розроблені в повноцінній мові програмування на зразок C #, або можна використовувати модулі, які можуть бути двійковими, а також сценарієм.
Обов'язково прочитайте попередні статті серії:
- Дізнайтеся, як автоматизувати Windows за допомогою PowerShell
- Навчання використанню командлетів у PowerShell
- Навчання використанню об'єктів у PowerShell
- Навчання форматування, фільтрації та порівняння в PowerShell
- Дізнайтеся, як використовувати віддалене використання в PowerShell
- Використання PowerShell для отримання інформації про комп'ютер
- Робота з колекціями в PowerShell
І залишайтеся з нами для решти серії цілий тиждень.
Snapins
Snapins так минулого року. Всі жарти в сторону, оснащення ніколи не потрапили до спільноти PowerShell, тому що більшість сценаристів не є розробниками, і ви можете писати лише моменти на мові, як C #. Тим не менш, є ще деякі продукти, які використовують оснащення, наприклад, Web Deploy. Для того, щоб побачити, які оснащення доступні для використання в оболонці, використовуйте таку команду:
Get-PSSnapin -Зареєстровано
Щоб скористатися командами, доданими за допомогою оснащення, спочатку потрібно імпортувати їх у свій сеанс, і ви можете зробити це так:
Додати-PSSnapin-ім'я WDeploySnapin3.0
На цьому етапі з'явиться повідомлення про помилку, якщо не встановлено прив'язку Web Deploy. Якщо ви його встановили, як я, то він буде імпортований у ваш сеанс. Щоб отримати список команд, доступних у підказці, можна просто скористатися командлетом Get-Command:
Get-Command -Module WDeploy *
Примітка: Технічно це не модуль, але з якоїсь причини вам все одно доведеться використовувати параметр Module.
Модулі
Модулі новіші і є шлях вперед. Вони можуть бути скриптовані за допомогою PowerShell, а також кодуватися мовою, подібною до C #. Більшість вбудованих команд організовано в модулі. Щоб переглянути список модулів у вашій системі, можна скористатися наступною командою:
Get-Module -ListAvailable
Оскільки продукти оновлюються, їхні колеги PowerShell переходять до модулів. Наприклад, у SQL використовувався snapin, але тепер він складається з модулів.
Для використання модуля потрібно спочатку імпортувати його.
Імпорт-модуль -Мабуля SQLASCMDLETS
Ви можете використовувати той самий трюк, який ми використовували з оснащеннями, щоб переглянути всі команди, які модуль додав до оболонки.
Отже, залишається питання: як PowerShell знає, які оснащення та модулі ви маєте у вашій системі? Добре, оснащення трохи болю і повинні бути встановлені. Частина процесу інсталяції включає створення декількох записів реєстру, на які дивиться PowerShell, щоб знайти інформацію про прив'язку. Модулі, з іншого боку, можуть бути зареєстровані в оболонці, просто розмістивши їх в одному з місць змінної середовища PSModulePath. Крім того, можна просто додати шлях до модуля до змінної середовища.
($ env: PSModulePath) .Split (“;”)
Це виплюне вміст змінної. Зверніть увагу, що якщо у вас є встановлений модуль SQL, як він змінював змінну для включення розташування модуля SQL.
Модуль автоматичного завантаження
PowerShell 3 представив дивовижну нову функцію, яка містить декілька імен. Жоден з них не є офіційним, але “Модуль автоматичного завантаження” є найкращим його описом. В основному, це дозволяє використовувати командлети, які належать до зовнішнього модуля, без явного імпорту модуля за допомогою командлета Import-Module. Щоб побачити це, спочатку видаліть усі модулі з оболонки за допомогою наступної команди:
Get-Module | Видалити-модуль
Після цього можна перевірити, чи не завантажено жодного модуля, використовуючи наступне:
Get-Module
Тепер скористайтеся командлетом, який не знаходиться в основній бібліотеці. Тест-підключення хороший:
Тест-підключення localhost
Якщо ви знову перевіряєте завантажені модулі, ви побачите, що він дійсно завантажив модуль.
Це все для сьогодні хлопців, приєднуйтесь до нас завтра ще.