Geek School: Обучение как да използвате обекти в PowerShell

Съдържание:

Geek School: Обучение как да използвате обекти в PowerShell
Geek School: Обучение как да използвате обекти в PowerShell

Видео: Geek School: Обучение как да използвате обекти в PowerShell

Видео: Geek School: Обучение как да използвате обекти в PowerShell
Видео: SKR 1.4 - TMC2130 SPI - YouTube 2024, Може
Anonim
Разбирането на обекти е една от основните понятия за "получаване" на PowerShell. Присъединете се към нас, докато изследваме обектите и как те правят PowerShell по-добре от всяка друга черупка там.
Разбирането на обекти е една от основните понятия за "получаване" на PowerShell. Присъединете се към нас, докато изследваме обектите и как те правят PowerShell по-добре от всяка друга черупка там.

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

  • Научете как да автоматизирате Windows с PowerShell
  • Научете как да използвате Cmdlets в PowerShell

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

обекти

Били ли сте някога се чудили какво прави PowerShell различен от традиционната черупка на Linux като Bash или дори командата за наследство? Отговорът е наистина прост: текстът на традиционните черупки извежда, което затруднява работата по форматиране и филтриране. Разбира се, има инструменти, които да ви помогнат да постигнете тази задача, но в края на краищата, ако искате да правите всякакъв вид тежък текстов анализ, трябва да знаете регулярни изрази като отзад на ръката си.

PowerShell се възползва от основната рамка.Net и използва различен подход, използвайки обекти вместо текст. Обектите са само изображение на нещо. Те са съвкупност от части и действия, които да ги използват. Нека да разгледаме частите на велосипеда и как можем да ги използваме.

Image
Image

Обектите в.Net са почти еднакви, с изключение на две малки разлики: се наричат "части" Имоти и се наричат "инструкциите" методи, Ако искаме да представляваме услуга на Windows като обект, можем да решим, че е подходящо да я опишем с помощта на три свойства: Име на услугата, състояние и описание. Също така трябва да взаимодействаме с услугата, така че може да дадем на обекта метод "Старт", "Стоп" и "Пауза".

Можете да видите свойствата и методите на обекта, като ги предадете на cmdlet на Get-Member. Обектите, които извеждат команди на PowerShell, са до голяма степен подлежащи на типове от.Net framework, но можете да създадете свои собствени обекти, ако трябва да използвате език като C # или да използвате типа PSObject.
Можете да видите свойствата и методите на обекта, като ги предадете на cmdlet на Get-Member. Обектите, които извеждат команди на PowerShell, са до голяма степен подлежащи на типове от.Net framework, но можете да създадете свои собствени обекти, ако трябва да използвате език като C # или да използвате типа PSObject.

Тръбопроводът

Има много Linux черупки с тръбопровод, което ви позволява да изпращате текста, който една команда извежда като вход за следващата команда в тръбопровода. PowerShell отвежда това до следващото ниво, като ви позволява да вземете предметите, които една cmdlet извежда и да ги предаде като вход за следващата cmdlet в тръбопровода. Номерът е знанието за какъв тип обект се връща cmdlet, което е много лесно при използване на cmdlet на Get-Member.

Get-Service | Get-Member

По причини извън обхвата на тази статия, свойствата и методите се наричат общо членове на класа, което обяснява защо използвате командата Get-Member cmdlet, за да получите списък на всички методи и свойства на даден обект. Въпреки това, cmdlet на Get-Member също връща друга важна информация, основният тип обект. В горната екранна снимка можем да видим, че Get-Service връща обекти от типа:
По причини извън обхвата на тази статия, свойствата и методите се наричат общо членове на класа, което обяснява защо използвате командата Get-Member cmdlet, за да получите списък на всички методи и свойства на даден обект. Въпреки това, cmdlet на Get-Member също връща друга важна информация, основният тип обект. В горната екранна снимка можем да видим, че Get-Service връща обекти от типа:

System.ServiceProcess.ServiceController

Тъй като PowerShell се занимава с обекти, а не с текстове, не всички команди могат да бъдат свързани заедно чрез тръбопровода [1]. Това означава, че трябва да намерим cmdlet, който иска да приеме обект System.ServiceProcess.ServiceController от тръбопровода.

Get-Command -ParameterType System.ServiceProcess.ServiceController

Забележете, че има cmdlet, наречен Stop-Service; нека да разгледаме помощта за него.
Забележете, че има cmdlet, наречен Stop-Service; нека да разгледаме помощта за него.

Get-Help –Name Stop-Service

Изглежда, че параметърът InputObject взима масив от обекти на ServiceController като вход. Обикновено, ако видите параметър, наречен InputObject, той ще приеме вход от тръбопровода, но само за да сме сигурни, че нека да разгледаме пълната помощ за този параметър.
Изглежда, че параметърът InputObject взима масив от обекти на ServiceController като вход. Обикновено, ако видите параметър, наречен InputObject, той ще приеме вход от тръбопровода, но само за да сме сигурни, че нека да разгледаме пълната помощ за този параметър.

Get-Help -Name Stop-Service –Full

Нашите подозрения бяха верни. Така че в този момент знаем следното:
Нашите подозрения бяха верни. Така че в този момент знаем следното:
  • Get-Service връща обектите ServiceController
  • Stop-Service има параметър, наречен InputObject, който приема като един вход един или повече ServiceControllers.
  • Параметърът InputObject приема входящия тръбопровод.

Използвайки тази информация, можем да направим следното:

Get-Service -Name ‘Apple Mobile Device’ | Stop-Service

Това е всичко за това време хора. Следващият път ще разгледаме как можем да форматираме, филтрираме и сравняваме обекти в тръбопровода.
Това е всичко за това време хора. Следващият път ще разгледаме как можем да форматираме, филтрираме и сравняваме обекти в тръбопровода.

Домашна работа

Прочетете на обекта тръбопровод

Ако имате някакви въпроси, можете да ми tweet @ taibbibb или просто да оставите коментар.

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