5 Cmdlet a PowerShell használatával
A PowerShell gyorsan válik az energiafelhasználók és az informatikai szakemberek preferált szkriptnyelvévé és CLI-jévé. Érdemes megtanulni néhány parancsot, hogy elkezdhessük a munkát, így 5 hasznos cmdletünk van, hogy ma tanulhasson.
Get-Command
A Get-Command az egyik leghasznosabb cmdlet az egész PowerShell-ben, mivel segít abban, hogy megragadja a PowerShell-et úgy, hogy bizonyos cmdleteket keres. A Get-Command használata önmagában nem igazán hasznos, mivel csak a PowerShell által kiadott minden parancsot ki akarja köpni.
Ebből azonban láthatjuk, hogy a PowerShell által kibocsátott objektumoknak van egy neve és egy ModuleName tulajdonsága is. Ezen információk felhasználásával finomítottuk a keresést, ha bizonyos kifejezéseket tartalmazó cmdleteket keresünk. Például, ha minden olyan cmdletet szeretnék megtalálni, amely tartalmazza az „IP” szót, ezt tehetek:
Get-Command-Name * IP *
Amint láthatjuk, még mindig sok eredményt kapunk, a következő lehetőségünk egy adott modulon belül keresni. Esetünkben a NetTCPIP modult választom.
Get-Command -Module NetTCPIP -Név * IP *
Kaphat segítséget
Miután megtalálta a Get-Command segítségével keresett cmdlet-et, meg akarja ismerni a szintaxist és az adott cmdlet használatának módját. Ez az a hely, ahol a Get-Help jön be, ha valaha is használta a Windows parancssorát, akkor valószínűleg ilyet csinált:
ipconfig /?
Nos, ami nem működik a PowerShell-ben, ez azért van, mert a PowerShell-ben egy helyet használnak a parancsok paramétereinek elválasztására. Tehát a Get-Help-et használjuk, és paraméterként adja át a cmdlet nevet a Get-Help-nek.
Get-Help Get-Process
Get-tag
A Get-Member lehetővé teszi számunkra, hogy információt kapjunk a cmdlet-ek által visszaadott objektumokról. A get-taggal való fogás az, hogy a PowerShell csővezeték funkciójára támaszkodik, hogy ezt bizonyítsa, a Get-Process cmdletet használhatjuk.
Amint láthatod, a PowerShell kimenete megmutatja a tulajdonságok egy részét, amit az oszlopok tetején láthat. Az első probléma az, hogy míg azok a tulajdonságok, amiket az idő nagy részében keresnek, még több van. A második probléma az, hogy nem mutat semmilyen módszert, amellyel az objektumra hívhatunk. Ahhoz, hogy megnézhessük a módszereket és a tulajdonságokat, a kimenetünket a Get-Member-hez csatolhatjuk, például:
Get-Process | Get-tag
Bár nem jelenthet neked semmit most, előbb-utóbb szükség lesz a Get-Member használatára, és minél hamarabb megtanulod használni, annál jobb. Például a kimenetből származó információk felhasználásával valamit tennénk:
A Notepad.exe indítása
$ NotepadProc = Get-Process -Name jegyzettömb
$ NotepadProc.WaitForExit ()
Start-Process calc.exe
Ez a szkript elindítja a jegyzettömböt, aztán a „Get-Process -Name notepad” kimenetet a $ NotepadProc változóhoz rendeli, majd a $ NotepadProc-nál hívjuk a WaitForExit módszert, ami a szkriptet szünetelteti, amíg bezárja a jegyzettömböt, miután zárta a jegyzettömböt majd a számológép elindul.
$ _ (Jelenlegi csővezetékobjektum)
Míg nem pontosan cmdlet, a PowerShell egyik leggyakrabban használt speciális változója. A $ _ hivatalos neve "az aktuális csővezetékobjektum". Szkriptblokkokban, szűrőkben, a függvények záradékában, ahol az objektum, a foreach-objektum és a kapcsolók használják. Azonban könnyebb megmagyarázni egy példával, ami a következő és végső cmdletünkhöz vezet, ahol a-objektum.
Hol-Object
Ahol az objektum pontosan úgy hangzik, mint amilyennek hangzik, kiválaszt egy objektumot annak alapján, hogy megfelel-e egy bizonyos kritériumnak. Ez összegyűjti a $ _ értéket, és a tulajdonságok, amelyeket a Get-Member segítségével láthatunk. Ennek bizonyításához a Get-Process kimenetét a Hol-Object cmdlet-be csatoljuk.
Get-Process | Hol-objektum $ _. Név -eq “iexplore”
Szóval mi folyik itt? Nos, az első dolog, amit csinálunk, a számítógépen lévő folyamatok listájának megszerzése és a kimenet (a | karakter használatával) átadása a hol-objektum cmdletünkhöz, amely egy parancsfájl blokkot vesz paraméterként. A szkriptblokk (a göndör zárójelek által definiált) utasítja a hol-objektum cmdleteket, hogy csak azokat a objektumokat jelöljék meg, amelyek nevük paramétere megegyezik az „iexplore” értékkel, és így csak egy listát kapunk a futó IE-példányokról. Ez minden, ami van rá, szórakozz!