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