Mik azok a PowerShell parancsok? A 40 legfontosabb parancs egy pillanat alatt
A megfelelő PowerShell parancsok használatával pontosan alkalmazhatja a modulokat. Ezek a jól szervezett cmdletek opcionális paraméterekkel tovább testreszabhatók. Bemutatjuk a 40 legfontosabb PowerShell parancsot, hogy optimálisan tudjon dolgozni a rendszerében vagy hálózatában.
Mi az a PowerShell parancs?
A Windows 7 óta előre telepítettPowerShell lehetővé teszi PowerShell parancsok megadását, amelyeket a Windows hajt végre. A parancssor cmd parancsain kívül számos más parancs vagy cmdlet létezik, amelyeket csak a PowerShell ért meg. Ezek a cmdletek egy igéből és egy főnévből állnak, amelyeket kötőjel választ el egymástól. Ezenkívül ezeket a PowerShell parancsokat opcionális paraméterekkel is kiegészítheti, amelyeket szóközök választanak el egymástól. A PowerShell hasznossága nem csak az adminisztrátorokra korlátozódik, hanem a fejlesztés területén is felbecsülhetetlen értékű. A rengeteg előre telepített PowerShell parancs közül bemutatjuk a legfontosabbakat.
A legfontosabb PowerShell parancsok
A PowerShell parancsok segítségével néhány bejegyzéssel kiterjedt rendszergazdai feladatokat hajthat végre. Az alapvető parancsok közül, amelyeket valószínűleg leggyakrabban fog használni, azok találhatók, amelyek áttekintést nyújtanak a hálózat felépítéséről, felsorolják a többi PowerShell parancsot, segítenek az alapvető biztonsági beállításokban és értékes elemzéseket tesznek lehetővé. Íme néhány a legfontosabb PowerShell parancsok közül, amelyekkel érdemes megismerkednie:
1. Get-Module -All
Az összes importált PowerShell modul áttekintéséhez használja a Get-Module -All parancsot.
Get-Module -Allshell2. Get-Command
Számos előre definiált PowerShell parancs áll rendelkezésre. A jelenleg elérhető PowerShell parancsok áttekintéséhez egyszerűen használja a Get-Command parancsot. Ez a parancs rendezett listában sorolja fel az összes lehetséges műveletet, és rövid magyarázatot ad az egyes cmdletekhez. Ez akkor is igaz, ha további modulokat telepített.
Get-Commandshell3. Get-Help
A fent leírt Get-Command lista egy kezdeti áttekintést nyújt; a parancsokról és azok opcióiról részletesebb információkért használja a Get-Help cmdlet parancsot. Ez a parancs hozzáfér a számítógépén található súgó fájlokhoz, majd megadja az összes rendelkezésre álló információt. Az aktiválásához kombinálja a Get-Help parancsot azzal a paranccsal, amelynek szintaxisát meg szeretné tekinteni.
Get-Help [[-Name] <String>] [-Path <String>] [-Category <String[]>] [-Component <String[]>] [-Functionality <String[]>] [-Role <String[]>] [-Examples] [<CommonParameters>]shell4. Get-Process
A rendszerén jelenleg aktív alkalmazások, programok és folyamatok listájának gyors ellenőrzéséhez használhatja a Get-Process parancsot. Ha megad egy adott alkalmazást, akkor további információkat kap arról az alkalmazásról.
Get-Processshell5. Get-Service
A Get-Service parancs hasonlóan működik, mint a Get-Process cmdlet. Azonban azzal különbözteti meg magát, hogy információt nyújt az összes aktív szolgáltatásról. Ha egy adott szolgáltatásról vagy egy adott szolgáltatáskategóriáról szeretne információt kapni, könnyen megadhatja kérését.
Get-Serviceshell6. Stop-Process
Különböző PowerShell parancsokkal is leállíthatja a folyamatokat a shellen keresztül. Az egyik lehetőség a Stop-Process parancs. A megfelelő folyamatot név, azonosító vagy más attribútumok alapján határozhatja meg. Íme egy példa:
Stop-Process -Name "processname"shellStop-Process -Id 3582 -Confirm -PassThrushellA parancs megerősítését a -Confirm paranccsal lehet kérni. A -PassThru parancs a leállított folyamat megerősítését kéri. Ez nem történik meg automatikusan.
7. ConvertTo-HTML
A problémák vagy lehetséges komplikációk gyors azonosításához rendkívül hasznos egy áttekinthető kijelző. Ezt a ConvertTo-HTML paranccsal érheted el, amely a PowerShell parancsok kimenetét HTML fájlba konvertálja. Ez az információkat felhasználóbarát oszlopos formátumban jeleníti meg. A parancs szerkezete általában így néz ki:
Get-Command | ConvertTo-Html > c:\temp\AllCommands.htmlshell8. ConvertTo-Xml
Hasonló módon járhat el, ha egy adott objektum XML-alapú ábrázolására van szüksége. Ehhez a ConvertTo-Xml parancsot használhatja. A következő példában az aktuális dátumot konvertálja XML formátumba:
Get-Date | ConvertTo-Xmlshell9. Hol-Objektum
A Where-Object paranccsal szűrheti a cmdlet eredményét. Parancs végrehajtásakor gyakran előfordulhat, hogy több objektumot kap, amelyek több információt tartalmaznak, mint amennyire szüksége van. A Where-Object parancsot csővel együtt használva csak a keresett információkat jelenítheti meg. Ha például az idén létrehozott vagy frissített szolgáltatásokat szeretné megtekinteni, a következőképpen teheti meg:
Get-Service | Where-Object { $_.LastWriteTime -gt "01.01.2023" }shell10. Get-History
A munkamenet során beírt összes PowerShell-parancs felsorolásához a Get-History a megfelelő cmdlet. Az összes PowerShell-parancs felsorolásához:
Get-HistoryshellEzzel a specifikációval csak az utolsó tíz PowerShell parancsot hívja meg:
Get-History -Count 10shell11. Történelem törlése
A használt PowerShell parancsok listáját is törölheti. Az összes bejegyzés eltávolításához használja a Clear-History cmdletet:
Clear-HistoryshellA kiválasztott PowerShell parancsok törléséhez egyszerűen adja hozzá a megfelelő paramétereket. Az alábbi bejegyzés eltávolítja az összes olyan PowerShell parancsot, amely tartalmazza a „Help” szót vagy „Syntax” szóval végződik.
Clear-History -Command *Help*, *Syntaxshell12. Hozzáadási előzmények
PowerShell parancsokat is hozzáadhat egy munkamenethez. Ez lehetővé teszi, hogy később újra lehívja őket. A megfelelő cmdlet az Add-History.
Add-Historyshell13. Kimeneti fájl
A PowerShell parancsok kimenetének számítógépre mentéséhez használja az Out-File cmdlet parancsot. Ez a PowerShell parancsokat nyers szövegfájlban tárolja a megadott útvonalon.
Get-Process | Out-File -FilePath .\Process.txtshell14. Másolás-elem
A PowerShellben elemek másolása és a másolat más helyre mentése is lehetséges. Használja a Copy-Item parancsot, és adja meg a másolat mentési helyét. Ez a következőképpen működik:
Copy-Item "C:\folder1\file.txt" -Destination "C:\folder2"shell15. Get-ChildItem
A Get-ChildItem paranccsal egy vagy több tárolási helyről lehet elemeket lekérni. Ha vannak alelemek, azok is megjelennek. Ez a parancs alapértelmezés szerint felsorolja az attribútumokat, az utolsó módosítás időbélyegét, a fájl méretét és az elem nevét. Ha egy tárolási hely üres, a kimenet elmarad.
Get-ChildItem -Path C:\exampleshellAz attribútumok a „Mode” sor alatt jelennek meg. A következő tulajdonságok gyakoriak:
- a (archívum)
- d (könyvtár)
- h (rejtett)
- l (link)
- r (csak olvasható)
- s (rendszer)
16. Set-AuthenticodeSignature
A fájlok védelme érdekében a Set-AuthenticodeSignature paranccsal Authenticode aláírással láthatja el őket. Ez azonban csak azoknál a fájloknál működik, amelyek támogatják a Subject Interface Package (SIP) csomagot.
$cert=Get-ChildItem -Path Cert:\CurrentUser\My -CodeSigningCert
Set-AuthenticodeSignature -FilePath PsTestInternet2.ps1 -Certificate $certshell17. Tétel meghívása
Egy adott fájlhoz tartozó standard művelet végrehajtásához az Invoke-Item parancs a legegyszerűbb módszer. Ez a parancs biztosítja például, hogy egy futtatható fájl közvetlenül futtatható legyen, vagy hogy egy dokumentumfájl az alapértelmezett alkalmazásban nyíljon meg. Ebben a példában a fájl alapértelmezés szerint a Microsoft Word alkalmazásban nyílik meg:
Invoke-Item "C:\Test\example.doc"shell18. Start-Job
Helyi számítógépén háttérfeladatot indíthat el a megfelelő parancs segítségével. A Start-Job parancs lehetővé teszi egy adott parancs háttérben történő végrehajtását, anélkül, hogy az aktuális munkamenetbe beavatkozna.
Start-Job -ScriptBlock { Get-Process -Name pwsh }shellVégezzen műveleteket ezekkel a PowerShell parancsokkal
Míg a korábbi PowerShell-parancsok elsősorban áttekintések nyújtására összpontosítottak, a megfelelő cmdletek segítségével különböző műveleteket is végrehajthat, ezáltal növelve rendszerének termelékenységét. A következő PowerShell-parancsok egyszerűsítik a munkafolyamatot.
19. Tiszta tartalom
Ha egy elem tartalmát törölni szeretné, de magát az elemet meg akarja tartani, akkor a Clear-Content parancs az ideális választás. Például törölheti egy dokumentum szövegét, de a fájlt érintetlenül hagyhatja. A folyamat a következőképpen zajlik:
Clear-Content C:\Temp\example.txtshell20. ForEach-Object
A ForEach-Object parancs lehetővé teszi, hogy egy műveletet hajtson végre az összes elemre egy bemeneti objektumok gyűjteményében. Ebben a példában három egész számot osztunk el 10-zel egy tömbben:
10000, 1000, 100 | ForEach-Object -Process {$_/10}
1000
100
10shell21. Objektumok összehasonlítása
A különböző objektumkészletek kézi összehasonlításának elkerülése érdekében használhatja a Compare-Object cmdlet parancsot. Ez a parancs jelentést generál, amely kiemeli a rekordok közötti különbségeket. Az első rekord referenciaként, a második rekord pedig különbségként szolgál. Megadhatja, hogy mely tényezőket kívánja összehasonlítani, és ha ezt az információt kihagyja, akkor csak a karakterláncok eredményeit fogja összehasonlítani. A kimenet olyan tulajdonságokra oszlik, amelyek csak a referenciaobjektumban (<) jelennek meg, és olyan tulajdonságokra, amelyek csak a különbségobjektumban (>) jelennek meg. Ebben a példában a document1.txt fájl a Berlin, London és Paris értékeket tartalmazza. A Document2.txt fájl a Berlin, Vienna és Amsterdam értékeket tartalmazza.
Compare-Object -ReferenceObject (Get-Content -Path C:\Test\Document1.txt) -DifferenceObject (Get-Content -Path C:\Test\Document2.txt)
InputObject SideIndicator
--------------- -----------------
Wien ==>
Amsterdam ==>
London <==
Paris <==shellA mindkét dokumentumban megjelenő tartalom (ebben az esetben „Berlin”) alapértelmezés szerint nem jelenik meg.
22. Új objektum
Az egyik leghasznosabb PowerShell parancs a New-Object. Ezzel a cmdlettel létrehozhat objektumokat a .NET keretrendszerből vagy a Component Object Model (COM) rendszerből. Ha például egy System.Version objektumot szeretne létrehozni „1.2.3.4” konstruktor karakterlánccal, akkor a parancsot a következőképpen kell végrehajtani:
New-Object -TypeName System.Version -ArgumentList "1.2.3.4"shell23. Objektum kiválasztása
A Select-Object paranccsal kiválaszthat egy objektumot vagy objektumcsoportot, amely rendelkezik az Ön által megadott tulajdonságokkal. Ehhez a következő paramétereket adhatja meg:
- Első
- Utolsó
- Egyedi
- Ugrás
- Index
A következő példában a PowerShell Get-Process és Sort-Object parancsokat használjuk a beviteli pillanatban a legnagyobb memóriaterheléssel rendelkező három folyamat megjelenítéséhez.
Get-Process | Sort-Object -Property WS | Select-Object -Last 3shell24. Alias beállítása
A Windows gyorsbillentyűk hasznosak a műveletek még gyorsabb végrehajtásához. A PowerShell is kínál ilyen lehetőséget. A Set-Alias cmdlet segítségével gyorsbillentyűket definiálhat különböző PowerShell parancsokhoz. A következő példában a Get-ChildItem parancshoz létrehozunk egy „ci” alias nevet az aktuális munkamenethez.
PS> Set-Alias -Name ci -Value Get-ChildItem
PS> Get-Alias -Name cishell25. Hely beállítása
A munkamemória helyének megváltoztatásához használja a Set-Location parancsot. Lehetséges új helyek lehetnek könyvtárak, alkönyvtárak, rendszerleíró adatbázisok vagy szolgáltatói útvonalak. A következő példában a C: meghajtót adjuk meg aktuális tárolási helyként:
PS C:\Windows\> Set-Location HKLM:\
PS HKLM:\> Set-Location C:
PS C:\Windows\>shell26. Szolgáltatás beállítása
A Set-Service cmdlet segítségével kommunikálhat egy szolgáltatással, és elindíthatja, leállíthatja vagy szüneteltetheti azt. A szolgáltatás tulajdonságait is módosíthatja. A következő példában egy szolgáltatás megjelenítési nevét „New Workstation”ról „Old Workstation”-ra módosítjuk.
Set-Service -Name New Workstation -DisplayName "Old Workstation"shell27. Időzóna beállítása
A rendszer időzónájának megváltoztatásához a Set-TimeZone parancs a megfelelő választás. Az új rendszeridőként a koordinált világidőt a következő paranccsal állíthatja be:
Set-TimeZone -Id "UTC"shell28. Indítsa újra a számítógépet!
A helyi számítógép vagy egy távoli számítógép operációs rendszerét a Restart-Computer nevű megfelelő PowerShell paranccsal indíthatja újra. A parancs a következőképpen hajtható végre:
Helyi számítógép esetén:
Restart-ComputershellA hálózatban található kiválasztott számítógépek esetében:
Restart-Computer -ComputerName Server01, Server03shell29. Szolgáltatás újraindítása
A szolgáltatások leállításához és újraindításához a PowerShell parancsok közül a Restart-Service cmdlet a megfelelő. Például újraindíthatja az összes „Net” betűvel kezdődő szolgáltatást:
PS C:\> Restart-Service -DisplayName "net*"shell30. Tiszta-Lomtár
A lomtárat rendszeresen ki kell üríteni, ami a PowerShell segítségével is lehetséges. A parancs: Clear-RecycleBin.
Clear-RecycleBinshell31. Get-ComputerInfo
A Get-ComputerInfo parancs a rendszer és az operációs rendszer tulajdonságainak lekérésére szolgál.
Get-ComputerInfoshell32. Move-Item
Ha egy elemet egyik helyről egy másikra kell áthelyezni, több PowerShell parancs is rendelkezésre áll. A leggyakrabban használt opció azonban a Move-Item. Ebben a példában a old.txt fájlt áthelyezzük a C: meghajtóról a D:\Temp könyvtárba, és egyúttal átnevezzük new.txt-re.
Move-Item -Path C:\old.txt -Destination D:\Temp\new.txtshellMonitoring és hibakeresés a megfelelő PowerShell parancsokkal
A rendszerfigyelést és -ellenőrzést lehetővé tevő PowerShell parancsok rendkívül értékesek, különösen akkor, ha egy új hálózat teljesítményét valós körülmények között tesztelik. A következő PowerShell parancsok különösen hasznosak ezekre a célokra.
33. Hibaelhárítási folyamat
A hibakeresés fontos folyamat, amely biztosítja, hogy minden beállítás és folyamat hibamentesen működjön. Ehhez le kell töltenie és be kell állítania a megfelelő hibakeresőket. Miután ezt elvégezte, használja a Debug-Process parancsot. A következő példában az Explorer hibakeresőjét használjuk:
PS C:\> Debug-Process -Name "Explorer"shellTöbb folyamat egyidejű hibakereséséhez egyszerűen vesszővel válassza szét őket.
34. Enable-PSBreakpoint
Bizonyos töréspontok aktiválásához használja az Enable-PSBreakpoint parancsot. Ez technikai szempontból a cmdlet értékét „true”-ra állítja. Az aktuális munkamenetben található összes töréspont aktiválásához használja a következő PowerShell parancsokat:
Get-PSBreakpoint | Enable-PSBreakpointshellEzzel a paranccsal aktiválhatja a töréspontokat az azonosítójuk alapján:
Enable-PSBreakpoint -ID 0, 3, 4shell35. PSBreakpoint letiltása
A PowerShell töréspontok újra deaktiválásához a megfelelő cmdlet a Disable-PSBreakpoint. Technikailag az Enable-PSBreakpoint parancs értéke „false”-ra van állítva. Az 0 azonosítóval rendelkező töréspont deaktiválásához írja be a következőket:
Disable-PSBreakpoint -Id 0shell36. Get-Counter
Windows-eszközök esetében a teljesítményadatokat a PowerShell segítségével lehet lekérdezni. Ehhez a feladathoz a Get-Counter parancsot kell használni, amely mind a helyi, mind a távoli számítógépeken használható. A következő példában a helyi számítógépről kérünk le adatokat:
Get-Counter -ListSet *shell37. Start-Alvás
A szkript vagy munkamenet szüneteltetése döntő fontosságú lehet, különösen a rendszer túlterheltségi helyzetekben. A PowerShell erre a célra a Start-Sleep parancsot biztosítja, amely lehetővé teszi a tevékenységek szüneteltetésének időtartamának megadását. A következő példában a végrehajtás két másodpercre szünetel:
Start-Sleep -Seconds 2shell38. Teszt-útvonal
A Test-Path paranccsal ellenőrizheti, hogy egy adott útvonal összes eleme megvan-e. A lehetséges eredmények: „True” (Igaz) vagy „False” (Hamis).
Test-Path -Path "C:\Documents and Settings\user"
Falseshell39. Kapcsolat tesztelése
A PowerShell segítségével értékelheti a hálózaton belüli hálózati kapcsolatot is. Ehhez a Test-Connection paranccsal ICMP echo request csomagokat küld a megadott címzetteknek, amelyek az Internet Control Message Protocol (ICMP) protokollon keresztül kérnek választ. Példánkban az IPv6 protokollon keresztül küldünk kérést a Server02-nek.
Test-Connection -TargetName Server02 -IPv6shell40. Get-WinEvent
Ha egy vagy több eseménynaplót szeretne megtekinteni, számos PowerShell-parancs áll rendelkezésére. A legpraktikusabb cmdlet erre a célra a Get-WinEvent. A helyi számítógépről az összes napló lekéréséhez a következő parancsot használhatja:
Get-WinEvent -ListLog *shell