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 -All
shell

2. 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-Command
shell

3. 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>]
shell

4. 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-Process
shell

5. 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-Service
shell

6. 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"
shell
Stop-Process -Id 3582 -Confirm -PassThru
shell

A 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.html
shell

8. 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-Xml
shell

9. 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" }
shell

10. 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-History
shell

Ezzel a specifikációval csak az utolsó tíz PowerShell parancsot hívja meg:

Get-History -Count 10
shell

11. 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-History
shell

A 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*, *Syntax
shell

12. 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-History
shell

13. 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.txt
shell

14. 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"
shell

15. 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:\example
shell

Az 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 $cert
shell

17. 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"
shell

18. 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 }
shell

Vé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.txt
shell

20. 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
10
shell

21. 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		<==
shell

A 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"
shell

23. 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 3
shell

24. 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 ci
shell

25. 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\>
shell

26. 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"
shell

27. 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"
shell

28. 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-Computer
shell

A hálózatban található kiválasztott számítógépek esetében:

Restart-Computer -ComputerName Server01, Server03
shell

29. 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*"
shell

30. 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-RecycleBin
shell

31. Get-ComputerInfo

A Get-ComputerInfo parancs a rendszer és az operációs rendszer tulajdonságainak lekérésére szolgál.

Get-ComputerInfo
shell

32. 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.txt
shell

Monitoring é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"
shell

Tö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-PSBreakpoint
shell

Ezzel a paranccsal aktiválhatja a töréspontokat az azonosítójuk alapján:

Enable-PSBreakpoint -ID 0, 3, 4
shell

35. 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 0
shell

36. 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 *
shell

37. 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 2
shell

38. 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"
False
shell

39. 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 -IPv6
shell

40. 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
Ugrás a főmenübe