Начална » как да » Geek School Научете как да разширите PowerShell

    Geek School Научете как да разширите PowerShell

    PowerShell предлага два начина за разширяване на обвивката. Можете да използвате модули, които са само двоични и са разработени в пълноценен програмен език като C #, или можете да използвате модули, които могат да бъдат двоични, както и скриптове.

    Прочетете предишните статии от поредицата:

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

    Очаквайте останалата част от поредицата цяла седмица.

    Snapins

    Snapins са толкова миналата година. Всички шеги настрана, модулите никога не са попаднали сред общността на PowerShell, защото повечето скриптове не са разработчици и можете да пишете модули само на език като C #. Въпреки това все още има някои продукти, които използват модули, като например Web Deploy. За да видите какви модули можете да използвате в черупката, използвайте следната команда:

    Get-PSSnapin-Регистриран

    За да използвате командите, добавени от щъркел, първо трябва да го импортирате в сесията си и можете да го направите по следния начин:

    Add-PSSnapin-име WDeploySnapin3.0

    В този момент ще получите грешка, ако не сте инсталирали модула за уеб разгръщане. Ако го инсталирате, както и аз, тогава той ще бъде импортиран във вашата сесия. За да получите списък с команди, налични в snapin, можете просто да използвате командлета 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. За да видите това, първо премахнете всички модули от черупката си, като използвате следната команда:

    Вземи модул | Премахнете-Module

    След това можете да проверите дали няма заредени модули, като използвате следното:

    Get-Module

    Сега използвайте кратка команда, която не е в основната библиотека. Тестовата връзка е добра:

    Тест-свързване localhost

    Ако проверите отново заредените модули, ще видите, че той наистина е заредил модула.

    Това е всичко за днешните момчета, присъединете се утре към нас за още.