Гейк училище: Научете как да се разшири PowerShell

Съдържание:

Гейк училище: Научете как да се разшири PowerShell
Гейк училище: Научете как да се разшири PowerShell

Видео: Гейк училище: Научете как да се разшири PowerShell

Видео: Гейк училище: Научете как да се разшири PowerShell
Видео: The Mindful Millionaire Timeless Lessons on Wealth Greed and Happiness in the Psychology of Money - YouTube 2024, Април
Anonim
PowerShell предлага два начина за разширяване на корпуса. Можете да използвате Snapins, които са само двоични и са разработени на пълноправен език за програмиране като C #, или можете да използвате модули, които могат да бъдат двоични или скриптови.
PowerShell предлага два начина за разширяване на корпуса. Можете да използвате Snapins, които са само двоични и са разработени на пълноправен език за програмиране като C #, или можете да използвате модули, които могат да бъдат двоични или скриптови.

Не забравяйте да прочетете предишните статии в серията:

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

И останете настроени за останалата част от серията през цялата седмица.

Snapins

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

Get-PSSnapin –Registered

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

Add-PSSnapin -Name WDeploySnapin3.0

В този момент ще получите грешка, ако не сте инсталирали модула за инсталиране на Web Deploy. Ако го инсталирате, както го правя, то ще бъде внесено в сесията ви. За да получите списък с команди, налични в snapin, можете просто да използвате cmdlet за получаване на команда:

Get-Command –Module WDeploy*

Забележка: Технически това не е модул, но по някаква причина все пак трябва да използвате параметъра Модул.

Image
Image

модули

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

Get-Module –ListAvailable

Тъй като продуктите се актуализират, техните контрагенти PowerShell се мигрират към модули. Например, SQL се използва за snapin, но сега се състои от модули.
Тъй като продуктите се актуализират, техните контрагенти PowerShell се мигрират към модули. Например, SQL се използва за snapin, но сега се състои от модули.
Image
Image

За да използвате модул, първо трябва да го импортирате.

Import-Module -Name SQLASCMDLETS

Можете да използвате същия трик, който използвахме с snapins, за да видите всички команди, които модулът е добавил към корпуса.

Затова остава въпросът: как PowerShell знае кои схеми и модули имате във вашата система? Е, snapins са малко болка и трябва да бъдат инсталирани. Част от инсталационния процес включва създаването на няколко записа в системния регистър, които PowerShell разглежда, за да намерят информация за snapin. Модулите, от друга страна, могат да се регистрират в корпуса, като просто ги поставят на едно от местата в променливата на средата PSModulePath. Друга възможност е просто да добавите пътя към модула към променливата на средата.
Затова остава въпросът: как PowerShell знае кои схеми и модули имате във вашата система? Е, snapins са малко болка и трябва да бъдат инсталирани. Част от инсталационния процес включва създаването на няколко записа в системния регистър, които PowerShell разглежда, за да намерят информация за snapin. Модулите, от друга страна, могат да се регистрират в корпуса, като просто ги поставят на едно от местата в променливата на средата PSModulePath. Друга възможност е просто да добавите пътя към модула към променливата на средата.

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

Това ще изплюе съдържанието на променливата. Забележете, че ако имате инсталиран модул като SQL, как е променял променливата така, че да включва местоположението на SQL модула.

Image
Image

Автоматично зареждане на модула

PowerShell 3 представи страхотна нова функция, която се нарежда с няколко имена. Никоя от тях не е официална, но "Модул за автоматично зареждане" е най-доброто описание. По същество той ви позволява да използвате команди, които принадлежат на външен модул, без да внасяте изрично модула с помощта на cmdlet за импортиране на модули. За да видите това, първо премахнете всички модули от корпуса си, като използвате следната команда:

Get-Module | Remove-Module

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

Get-Module

Сега използвайте cmdlet, който не е в основната библиотека. Test-Connection е добра:
Сега използвайте cmdlet, който не е в основната библиотека. Test-Connection е добра:

Test-Connection localhost

Препоръчано: