PowerShell бързо се превръща в предпочитан скриптов език и CLI на Power Users, както и на IT професионалисти. Струва си да научите няколко команди, за да започнете, така че имаме 5 полезни команди, които можете да научите днес.
Get-Command е една от най-полезните cmdlets в цялата PowerShell, тъй като ще ви помогне да се справите с PowerShell, като ви позволи да търсите определени cmdlets. Използването на Get-Command от само себе си, разбира се, не е много полезно, тъй като просто ще изплюе всяка команда, която PowerShell има.
Но от това можем да видим, че обектите, че изходите на PowerShell имат име и име на модул. Използвайки тази информация, можем да прецизираме нашето търсене, като търсим команди, съдържащи определени термини. Например, ако искам да намеря всички cmdlets, които съдържат думата "IP", мога да направя това:
Get-Command-Име * IP *
Както можете да видите, ние все още получим няколко резултата, следващата ни възможност е да търсите в конкретен модул. В нашия случай ще избера NetTCPIP модула.
Get-Command -Module NetTCPIP -Имаме * IP *
След като намерите cmdlet, който търсите, използвайте Get-Command, вие ще искате да знаете синтаксиса и как можете да използвате тази специфична cmdlet. Това е мястото, където Get-Help идва, ако някога сте използвали командния ред в Windows, вероятно сте направили нещо подобно:
ipconfig /?
Е, че не работи в PowerShell, това е така, защото в PowerShell се използва пространство, за да се отдели командата от нейните параметри. Така че вместо това използваме Get-Help и предадем име на команди в Get-Help като параметър.
Get-Help Get-Process
Get-Member ни позволява да получим информация за обектите, които се връщат в командите. Уловът с Get-член е, че разчита на функцията на тръбопровода на PowerShell, за да демонстрира това, ще можем да използваме командата Get-Process.
Както виждате изходът на PowerShell ни показва някои от свойствата, които можете да видите в горната част на всяка колона. Първият проблем е, че докато това са имотите, които бихте могли да търсите през повечето време, все още има повече от тях. Вторият проблем е, че той не показва никакви методи, които можем да призовем на обекта. За да видим методите и свойствата, можем да насочим продукцията си към Get-Member, както е така:
Получаване на процес | Get-държава
Въпреки че може да не означава нищо за вас точно сега, скоро или късно ще трябва да използвате Get-Member и колкото по-скоро се научите да го използвате по-добре. Като пример, използвайки информацията от изхода, можем да направим нещо като:
Старт-процес notepad.exe
$ NotepadProc = Get-Process-Имате бележник
$ NotepadProc.WaitForExit ()
Старт-процес calc.exe
Този скрипт ще стартира бележник, а след това присвоява изхода на "Get-Process-Напиши бележник" в променливата $ NotepadProc, а след това наричаме метода WaitForExit на $ NotepadProc, което кара сценария да спре, докато затворите notepad, тогава ще започне калкулаторът.
Въпреки че не е точно една cmdlet, тя е една от най-използваните специални променливи в PowerShell. Официалното име за $ _ е "текущият обект на тръбопровод". Той се използва в блоковете на скрипта, филтри, клаузата за процеси на функциите, къде-обект, foreach-object и switches. Все пак е по-лесно да обясним с един пример, който ни води към следващата и последна cmdlet, Къде-обект.
Когато обектът прави точно това, което звучи, той избира обект въз основа на това дали отговаря на определени критерии. Това ще събере $ _, а имотите, които виждаме, използват Get-Member. За да покажем това, ще изпратим изхода на Get-Process в cmdlet Where-Object.
Получаване на процес | Къде-обект $ _ Име -eq "iexplore"
И така, какво се случва тук? Първото нещо, което правим, е да получим списък на процесите на нашия компютър и да предадем изхода (с помощта на символа |) на нашата cmdlet "Къде-обект", което отнема блок от скриптове като параметър. Скриптовият блок (дефиниран от къдравите скоби) инструктира командите "Къде-обект" да избират само обекти, чийто параметър на име е равен на "iexplore", и така получаваме само списък на изпълняваните от IE случаи. Това е всичко, което има, да се забавляваме!