PowerShell предлага два начина за разширяване на корпуса. Можете да използвате Snapins, които са само двоични и са разработени на пълноправен език за програмиране като C #, или можете да използвате модули, които могат да бъдат двоични или скриптови.
Не забравяйте да прочетете предишните статии в серията:
И останете настроени за останалата част от серията през цялата седмица.
Snapins са така миналата година. Всички шеги настрани, никога не се захващат в общността на PowerShell, защото повечето сценаристи не са разработчици и можете само да пишете snapins на език като C #. Въпреки това все още има някои продукти, които използват Snapins, например Web Deploy. За да видите кои snapins са достъпни за вас в shell, използвайте следната команда:
Get-PSSnapin -Registered
За да използвате командите, добавени от snapin, първо трябва да ги импортирате в сесията си и можете да направите така:
Add-PSSnapin - Намерете WDeploySnapin3.0
В този момент ще получите грешка, ако не сте инсталирали модула за инсталиране на Web Deploy. Ако го инсталирате, както го правя, то ще бъде внесено в сесията ви. За да получите списък с команди, налични в snapin, можете просто да използвате cmdlet за получаване на команда:
Get-Command -Module WDeploy *
Забележка: Технически това не е модул, но по някаква причина все пак трябва да използвате параметъра Модул.
Модулите са по-нови и са пътят напред. Те могат да бъдат написани както с PowerShell, така и с кодирани на език като C #. Повечето от вградените команди са организирани и в модули. За да видите списък с модули на вашата система, можете да използвате следната команда:
Get-Module -ListAvailable
Тъй като продуктите се актуализират, техните контрагенти PowerShell се мигрират към модули. Например, SQL се използва за snapin, но сега се състои от модули.
За да използвате модул, първо трябва да го импортирате.
Импорт-модул - Наименувайте SQLASCMDLETS
Можете да използвате същия трик, който използвахме с snapins, за да видите всички команди, които модулът е добавил към корпуса.
Затова остава въпросът: как PowerShell знае кои схеми и модули имате във вашата система? Е, snapins са малко болка и трябва да бъдат инсталирани. Част от инсталационния процес включва създаването на няколко записа в системния регистър, които PowerShell разглежда, за да намерят информация за snapin. Модулите, от друга страна, могат да се регистрират в корпуса, като просто ги поставят на едно от местата в променливата на средата PSModulePath. Друга възможност е просто да добавите пътя към модула към променливата на средата.
($ ENV: PSModulePath) .Split ( ";")
Това ще изплюе съдържанието на променливата. Забележете, че ако имате инсталиран модул като SQL, как е променял променливата така, че да включва местоположението на SQL модула.
PowerShell 3 представи страхотна нова функция, която се нарежда с няколко имена. Никоя от тях не е официална, но "Модул за автоматично зареждане" е най-доброто описание. По същество той ви позволява да използвате команди, които принадлежат на външен модул, без да внасяте изрично модула с помощта на cmdlet за импортиране на модули. За да видите това, първо премахнете всички модули от корпуса си, като използвате следната команда:
Получете модул | Премахнете-Module
След това можете да проверите дали нямате заредени модули, като използвате следното:
Get-Module
Сега използвайте cmdlet, който не е в основната библиотека. Test-Connection е добра:
Тестово свързване localhost
Ако отново проверите заредените модули, ще забележите, че наистина е заредил модула.
Това е всичко за днешните момчета, присъединете се към нас утре за още.