Iz­man­to­jot at­bil­sto­šas PowerShell komandas, varat precīzi lietot moduļus. Šīs labi struk­tu­rē­tās cmdlet komandas var vēl vairāk pielāgot, iz­man­to­jot papildu pa­ra­met­rus. Mēs pie­dā­vā­jam 40 vis­sva­rī­gā­kās PowerShell komandas, lai jūs varētu optimāli strādāt savā sistēmā vai tīklā.

Kas ir PowerShell komanda?

PowerShell, kas ir iepriekš instalēts jau kopš Windows 7, ļauj ievadīt PowerShell komandas, kuras pēc tam izpilda Windows. Papildus ko­man­drin­das cmd komandām pastāv daudzas citas komandas jeb cmdlets, kuras saprot tikai pats PowerShell. Šie cmdlets sastāv no darbības vārda un lietvārda, kurus atdala defise. Turklāt šīs PowerShell komandas var pa­pla­ši­nāt ar papildu pa­ra­met­riem, kurus atdala atstarpes. PowerShell liet­de­rī­ba sniedzas tālāk par ad­mi­nis­tra­to­riem; tā izrādās ne­no­vēr­tē­ja­ma arī izstrādes jomā. No daudzajām iepriekš in­sta­lē­ta­jām PowerShell komandām mēs ie­pa­zīs­ti­nā­sim jūs ar vis­sva­rī­gā­ka­jām.

Sva­rī­gā­kās PowerShell komandas

PowerShell komandas ļauj veikt plaša mēroga ad­mi­nis­tra­to­ra uzdevumus, iz­man­to­jot tikai dažus komandas ie­va­dī­ju­mus. Starp pamata komandām, kuras jūs, vis­ti­ca­māk, iz­man­to­siet visbiežāk, ir tās, kas sniedz sākotnēju pārskatu par jūsu tīkla struktūru, uzskaita citas PowerShell komandas, palīdz veikt būtiskas drošības kon­fi­gu­rā­ci­jas un ļauj veikt noderīgas analīzes. Šeit ir dažas no vis­sva­rī­gā­ka­jām PowerShell komandām, ar kurām jums vajadzētu ie­pa­zī­ties:

1. Get-Module -All

Lai iegūtu sākotnēju pārskatu par visiem im­por­tē­ta­jiem PowerShell moduļiem, iz­man­to­jiet komandu Get-Module -All.

Get-Module -All
shell

2. Get-Command

Ir pieejams plašs iepriekš definētu PowerShell komandu klāsts. Lai iegūtu pārskatu par pašlaik pie­eja­ma­jām PowerShell komandām, vienkārši iz­man­to­jiet komandu „Get-Command “. Šī komanda skaidri uzskaitīs visas ie­spē­ja­mās darbības un sniegs īsus skaid­ro­ju­mus par katru atsevišķo cmdlet. Tas attiecas arī uz ga­dī­ju­miem, ja esat in­sta­lē­jis papildu moduļus.

Get-Command
shell

3. Palīdzība

Iepriekš ap­rak­stī­tais „Get-Command“ saraksts sniedz sākotnēju pārskatu; lai iegūtu sīkāku in­for­mā­ci­ju par komandu un tās opcijām, iz­man­to­jiet cmdletu „Get-Help “. Šī komanda piekļūst pa­lī­dzī­bas failiem jūsu datorā un pēc tam sniedz visu pieejamo in­for­mā­ci­ju. Lai to ak­ti­vi­zē­tu, ap­vie­no­jiet „Get-Help“ ar komandu, kuras sintaksi vēlaties apskatīt.

Get-Help [[-Name] <String>] [-Path <String>] [-Category <String[]>] [-Component <String[]>] [-Functionality <String[]>] [-Role <String[]>] [-Examples] [<CommonParameters>]
shell

4. Get-Process

Lai ātri pār­bau­dī­tu sistēmā pašlaik aktīvo lie­to­jum­prog­ram­mu, programmu un procesu sarakstu, varat izmantot komandu „Get-Process “. Ja no­rā­dī­siet konkrētu lie­to­jum­prog­ram­mu, saņemsiet papildu in­for­mā­ci­ju par šo konkrēto lie­to­jum­prog­ram­mu.

Get-Process
shell

5. Get-Service

Komanda „Get-Service “ darbojas līdzīgi kā cmdlet „Get-Process“. Tomēr tā atšķiras ar to, ka sniedz in­for­mā­ci­ju par visiem ak­tī­va­jiem pa­kal­po­ju­miem. Ja vēlaties iegūt in­for­mā­ci­ju par konkrētu pa­kal­po­ju­mu vai noteiktu pa­kal­po­ju­mu ka­te­go­ri­ju, varat viegli precizēt savu pie­pra­sī­ju­mu.

Get-Service
shell

6. Pārtraukt procesu

Jūs varat izmantot arī dažādas PowerShell komandas, lai apturētu procesus, iz­man­to­jot komandu rindu. Viena no iespējām ir komanda „Stop-Process “. Attiecīgo procesu varat norādīt pēc nosaukuma, iden­ti­fi­ka­to­ra vai citiem at­ri­bū­tiem. Lūk, piemērs:

Stop-Process -Name "processname"
shell
Stop-Process -Id 3582 -Confirm -PassThru
shell

Iz­man­to­jot opciju -Confirm, tiek pie­pra­sīts ap­stip­ri­nā­jums komandai. Komanda -PassThru pieprasa ap­stip­ri­nā­ju­mu par procesa ap­tu­rē­ša­nu. Tas nenotiek au­to­mā­tis­ki.

7. Pārvērst HTML

Lai ātri iden­ti­fi­cē­tu problēmas vai ie­spē­ja­mās kom­pli­kā­ci­jas, ļoti noderīgs ir skaidrs at­tē­lo­jums. To var panākt, iz­man­to­jot komandu „ConvertTo-HTML“, kas pārvērš PowerShell komandu izvadi HTML failā. Tādējādi in­for­mā­ci­ja tiek attēlota lie­to­tā­jam draudzīgā kolonnu formātā. Komandas struktūra parasti izskatās šādi:

Get-Command | ConvertTo-Html > c:\temp\AllCommands.html
shell

8. ConvertTo-Xml

Ja jums ir ne­pie­cie­šams konkrēta objekta at­tē­lo­jums XML formātā, varat rīkoties līdzīgi. To var izdarīt, iz­man­to­jot komandu „ConvertTo-Xml “. Turp­mā­ka­jā piemērā tiek kon­ver­tēts pa­šrei­zē­jais datums XML formātā:

Get-Date | ConvertTo-Xml
shell

9. Kur-objekts

Lai filtrētu cmdlet rezultātu, varat izmantot komandu „Where-Object “. Izpildot komandu, bieži vien tiek atgriezti daudzi objekti, kuros ir vairāk in­for­mā­ci­jas, nekā jums ne­pie­cie­šams. Iz­man­to­jot komandu „Where-Object“ kopā ar cauruli, varat parādīt tikai konkrēto in­for­mā­ci­ju, kuru meklējat. Piemēram, ja vēlaties apskatīt pa­kal­po­ju­mus, kas izveidoti vai at­jau­ni­nā­ti šogad, to varat izdarīt šādi:

Get-Service | Where-Object { $_.LastWriteTime -gt "01.01.2023" }
shell

10. Vēsture

Lai uz­skai­tī­tu visas PowerShell komandas, kuras esat ievadījis sesijas laikā, iz­man­to­jiet cmdlet Get-History. Lai uz­skai­tī­tu visas PowerShell komandas:

Get-History
shell

Iz­man­to­jot šo spe­ci­fi­kā­ci­ju, tiek izsaukta tikai pēdējās desmit PowerShell komandas:

Get-History -Count 10
shell

11. Vēstures dzēšana

Varat arī dzēst izmantoto PowerShell komandu sarakstu. Lai dzēstu visus ierakstus, iz­man­to­jiet cmdlet Clear-History:

Clear-History
shell

Lai dzēstu noteiktas PowerShell komandas, vienkārši pie­vie­no­jiet at­bil­sto­šos pa­ra­met­rus. Šāds ie­va­dī­jums dzēš visas PowerShell komandas, kurās ir vārds „Help“ vai kuras beidzas ar vārdu „Syntax“.

Clear-History -Command *Help*, *Syntax
shell

12. Pievienot vēsturi

Sesijai var pievienot arī PowerShell komandas. Tas ļauj tās vēlāk atkal izsaukt. Šim nolūkam pa­re­dzē­tais cmdlet ir Add-History.

Add-History
shell

13. Izvades fails

Lai saglabātu PowerShell komandu izvadi datorā, iz­man­to­jiet cmdletu „Out-File “. Tas saglabā PowerShell komandas ne­for­mā­tē­tā teksta failā no­rā­dī­ta­jā ceļā.

Get-Process | Out-File -FilePath .\Process.txt
shell

14. Kopēt objektu

PowerShell vidē varat arī kopēt elementus un saglabāt kopiju citā vietā. Iz­man­to­jiet komandu „Copy-Item“ un norādiet di­rek­to­ri­ju, kurā kopija ir jāsaglabā. Tas darbojas šādi:

Copy-Item "C:\folder1\file.txt" -Destination "C:\folder2"
shell

15. Get-ChildItem

Lai iegūtu objektus no vienas vai vairākām uz­gla­bā­ša­nas vietām, varat izmantot komandu „Get-ChildItem “. Ja ir ap­akš­e­le­men­ti, tie arī tiks parādīti. Pēc no­klu­sē­ju­ma šī komanda uzrāda atribūtus, pēdējās izmaiņas laiku, faila izmēru un elementa nosaukumu. Ja uz­gla­bā­ša­nas vieta ir tukša, izvade netiek parādīta.

Get-ChildItem -Path C:\example
shell

Atribūti tiek parādīti zem rindas „Režīms”. Šādas īpašības ir visbiežāk sa­sto­pa­mas:

  • a (arhīvs)
  • d (katalogs)
  • h (slēpts)
  • l (saite)
  • r (tikai lasīšanai)
  • s (sistēma)

16. Iestatīt Authen­ti­co­de parakstu

Lai aiz­sar­gā­tu savus failus, varat tiem pievienot Authen­ti­co­de parakstu, iz­man­to­jot komandu „Set-Authen­ti­co­de­Sig­na­tu­re “. Tomēr tas darbojas tikai ar failiem, kas atbalsta Subject Interface Package (SIP).

$cert=Get-ChildItem -Path Cert:\CurrentUser\My -CodeSigningCert
Set-AuthenticodeSignature -FilePath PsTestInternet2.ps1 -Certificate $cert
shell

17. Invoke-Item

Lai veiktu ar konkrētu failu saistītu standarta darbību, vien­kār­šā­kais veids ir izmantot komandu „Invoke-Item “. Šī komanda nodrošina, piemēram, ka iz­pil­dā­mais fails tiek palaists tieši vai ka dokumenta fails tiek atvērts no­klu­sē­ju­ma lie­to­jum­prog­ram­mā. Šajā piemērā fails tiek atvērts programmā „Microsoft Word“ pēc no­klu­sē­ju­ma:

Invoke-Item "C:\Test\example.doc"
shell

18. Darba uzsākšana

Lai uzsāktu fona uzdevumu savā lokālajā datorā, varat izmantot šim nolūkam paredzēto komandu. Komanda „Start-Job“ ļauj izpildīt konkrētu komandu fonā, ne­trau­cē­jot pa­šrei­zē­jo sesiju.

Start-Job -ScriptBlock { Get-Process -Name pwsh }
shell

Veiciet darbības, iz­man­to­jot šīs PowerShell komandas

Lai gan iepriekš minētās PowerShell komandas gal­ve­no­kārt bija pa­re­dzē­tas pārskata iegūšanai, iz­man­to­jot at­bil­sto­šos cmdletus, varat veikt arī dažādas darbības, tādējādi pa­lie­li­not sistēmas pro­duk­ti­vi­tā­ti. Turpmāk minētās PowerShell komandas optimizē jūsu darba plūsmu.

19. Satura dzēšana

Lai dzēstu elementa saturu, sa­gla­bā­jot pašu elementu, ideāla izvēle ir komanda „Clear-Content “. Piemēram, to var izmantot, lai dzēstu tekstu no dokumenta, vien­lai­kus atstājot pašu failu neskartu. Šo darbību veic šādi:

Clear-Content C:\Temp\example.txt
shell

20. ForEach-Object

Komanda „ForEach-Object“ ļauj veikt darbību ar visiem ele­men­tiem ievades objektu kopā. Šajā piemērā mēs dalām trīs masīva veselos skaitļus ar 10:

10000, 1000, 100 | ForEach-Object -Process {$_/10}
1000
100
10
shell

21. Sa­lī­dzi­nāt objektu

Lai iz­vai­rī­tos no dažādu objektu kopu manuālas sa­lī­dzi­nā­ša­nas, varat izmantot komandu „Compare-Object “. Šī komanda ģenerē atskaiti, kurā tiek izcelti ierakstu at­šķi­rī­bas. Pirmais ieraksts kalpo kā atsauces objekts, bet otrais ieraksts — kā atšķirību objekts. Jūs varat norādīt, kurus faktorus sa­lī­dzi­nāt, un, ja šī in­for­mā­ci­ja netiek norādīta, tiks sa­lī­dzi­nā­ti tikai teksta rezultāti. Izvade ir sadalīta īpašībās, kas parādās tikai atsauces objektā (<), un īpašībās, kas parādās tikai atšķirību objektā (>). Šajā piemērā failā document1.txt ir vērtības Berlin, London un Paris. Failā Document2.txt ir vērtības Berlin, Vienna un Amsterdam.

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

Saturs, kas atrodas abos do­ku­men­tos (šajā gadījumā „Berlīne“), pēc no­klu­sē­ju­ma netiek parādīts.

22. Jauns objekts

Viena no no­de­rī­gā­ka­jām PowerShell komandām ir New-Object. Šo cmdlet var izmantot, lai izveidotu objektu no .NET Framework vai Component Object Model (COM). Piemēram, ja vēlaties izveidot System.Version objektu ar kons­truk­to­ru „1.2.3.4“, komanda tiek izpildīta šādi:

New-Object -TypeName System.Version -ArgumentList "1.2.3.4"
shell

23. Iz­vē­lē­ties objektu

Iz­man­to­jiet komandu „Select-Object“, lai atlasītu objektu vai objektu grupu, kam ir jūsu definētās īpašības. Šim nolūkam varat norādīt šādus pa­ra­met­rus:

  • Pirmkārt
  • Pēdējais
  • Unikāls
  • Pāriet
  • Rādītājs

Šajā piemērā mēs iz­man­to­jam PowerShell komandas „Get-Process“ un „Sort-Object“, lai parādītu trīs procesus, kas ievades brīdī patērē visvairāk atmiņas.

Get-Process | Sort-Object -Property WS | Select-Object -Last 3
shell

24. Iestatīt sa­īsi­nā­ju­mu

Windows saīsnes ir noderīgas, lai darbības veiktu vēl ātrāk. Arī PowerShell piedāvā šo iespēju. Ar cmdletu „Set-Alias“ varat definēt saīsni dažādām PowerShell komandām. Turp­mā­ka­jā piemērā mēs iz­vei­do­jam saīsni „ci“ komandai „Get-ChildItem“ pa­šrei­zē­jai sesijai.

PS> Set-Alias -Name ci -Value Get-ChildItem
PS> Get-Alias -Name ci
shell

25. Set-Location

Lai mainītu darba atmiņas atrašanās vietu, iz­man­to­jiet komandu „Set-Location “. Kā jaunas atrašanās vietas var norādīt di­rek­to­ri­jus, ap­akš­di­rek­to­ri­jus, reģistra ierakstus vai pa­kal­po­ju­mu sniedzēju ceļus. Turp­mā­ka­jā piemērā kā pa­šrei­zē­jo uz­gla­bā­ša­nas vietu norādām disku C:

PS C:\Windows\> Set-Location HKLM:\
PS HKLM:\> Set-Location C:
PS C:\Windows\>
shell

26. Set-Service

Iz­man­to­jot komandu „Set-Service“, varat veikt darbības ar pa­kal­po­ju­mu, kā arī to sākt, apturēt vai pārtraukt. Ir iespējams arī mainīt pa­kal­po­ju­ma īpašības. Turp­mā­ka­jā piemērā mēs mainām pa­kal­po­ju­ma parādīto nosaukumu no „New Worksta­tion“ uz „Old Worksta­tion“.

Set-Service -Name New Workstation -DisplayName "Old Workstation"
shell

27. Iestatīt laika zonu

Lai mainītu sistēmas laika zonu, vislabāk izmantot komandu „Set-TimeZone “. Lai kā jauno sistēmas laiku iestatītu koor­di­nē­to uni­ver­sā­lo laiku, iz­man­to­jiet šo komandu:

Set-TimeZone -Id "UTC"
shell

28. Datoru pār­star­tēt

Jūs varat pār­star­tēt ope­rē­tājsis­tē­mu savā lokālajā datorā vai at­tā­li­nā­tā datorā, iz­man­to­jot at­bil­sto­šo PowerShell komandu Restart-Computer. To var izpildīt šādi:

Jūsu datoram:

Restart-Computer
shell

At­se­viš­ķiem datoriem jūsu tīklā:

Restart-Computer -ComputerName Server01, Server03
shell

29. Pa­kal­po­ju­ma atkārtota palaišana

Lai apturētu un atkārtoti palaistu pa­kal­po­ju­mu, iz­man­to­jot PowerShell komandas, pie­mē­ro­tā­kais cmdlet ir Restart-Service. Piemēram, varat atkārtoti palaist visus pa­kal­po­ju­mus, kuru nosaukums sākas ar „Net“:

PS C:\> Restart-Service -DisplayName "net*"
shell

30. Iztukšot atkritumu grozu

Atkritumu grozu vajadzētu regulāri iztukšot, ko var izdarīt arī ar PowerShell palīdzību. Komanda ir Clear-Recycle­Bin.

Clear-RecycleBin
shell

31. Get-Compu­te­rIn­fo

Komandu „Get-Compu­te­rIn­fo“ izmanto, lai iegūtu sistēmas un ope­rē­tājsis­tē­mas īpašības.

Get-ComputerInfo
shell

32. Pārvietot objektu

Ja jums ir ne­pie­cie­šams pārvietot objektu no vienas vietas uz citu, jūsu rīcībā ir vairākas PowerShell komandas. Tomēr visbiežāk izmantotā opcija ir Move-Item. Šajā piemērā mēs pār­vie­to­jam failu old.txt no C: diska uz D:\Temp di­rek­to­ri­ju, vien­lai­kus pār­dē­vē­jot to par new.txt.

Move-Item -Path C:\old.txt -Destination D:\Temp\new.txt
shell

Uz­rau­dzī­ba un kļūdu novēršana, iz­man­to­jot at­bil­sto­šas PowerShell komandas

PowerShell komandas, kas ļauj veikt sistēmas uz­rau­dzī­bu un pārbaudi, ir ārkārtīgi noderīgas, jo īpaši, testējot jauna tīkla veikt­spē­ju reālos apstākļos. Šiem mērķiem īpaši noderīgas ir šādas PowerShell komandas.

33. Debug-Process

Debugging ir svarīgs process, lai no­dro­ši­nā­tu, ka visi ie­sta­tī­ju­mi un procesi darbojas bez kļūdām. Lai to izdarītu, ir jā­le­ju­pie­lā­dē un jā­kon­fi­gu­rē at­bil­sto­šie debuggeri. Kad tas ir izdarīts, iz­man­to­jiet komandu „Debug-Process “. Turp­mā­ka­jā piemērā mēs iz­man­to­jam debuggeri prog­ram­mai Explorer:

PS C:\> Debug-Process -Name "Explorer"
shell

Lai vien­lai­kus atkļūdotu vairākus procesus, vienkārši atdaliet tos ar komatiem.

34. Iespējot PSBreakpoint

Lai ak­ti­vi­zē­tu noteiktus pār­trau­ku­ma punktus, iz­man­to­jiet komandu „Enable-PSBreakpoint “. No tehniskā viedokļa tas nosaka cmdlet vērtību kā „true“. Lai ak­ti­vi­zē­tu visus pār­trau­ku­ma punktus pa­šrei­zē­jā sesijā, iz­man­to­jiet šīs PowerShell komandas:

Get-PSBreakpoint | Enable-PSBreakpoint
shell

Izmanto šo komandu, lai ak­ti­vi­zē­tu pār­trau­ku­ma punktus, iz­man­to­jot to iden­ti­fi­ka­to­rus:

Enable-PSBreakpoint -ID 0, 3, 4
shell

35. Atcelt PSBreakpoint

Lai atkal atspēkotu PowerShell pār­trau­ku­ma punktus, šim nolūkam piemērota ir cmdlet Disable-PSBreakpoint. Tehniskā ziņā komandas Enable-PSBreakpoint vērtība tiek iestatīta uz „false“. Lai atspēkotu pār­trau­ku­ma punktu ar ID 0, ievadiet šādu komandu:

Disable-PSBreakpoint -Id 0
shell

36. Get-Counter

Windows ierīcēm to veikt­spē­jas datus var iegūt, iz­man­to­jot PowerShell. Šim uzdevumam piemērota komanda ir Get-Counter, ko var izmantot gan vietējā datorā, gan attālos datoros. Turp­mā­ka­jā piemērā mēs iegūstam datus no vietējā datora:

Get-Counter -ListSet *
shell

37. Ie­slēg­ša­na–Miega režīms

Skripta vai sesijas ap­tu­rē­ša­na var būt ļoti svarīga, jo īpaši sistēmas pār­slo­dzes gadījumos. Šim nolūkam PowerShell piedāvā komandu Start-Sleep, kas ļauj norādīt laiku, uz kādu darbības ir jāaptur. Turp­mā­ka­jā piemērā izpilde tiek apturēta uz divām sekundēm:

Start-Sleep -Seconds 2
shell

38. Test-Path

Iz­man­to­jiet komandu „Test-Path“, lai pār­bau­dī­tu, vai ir pieejami visi konkrētā ceļa elementi. Ie­spē­ja­mie rezultāti ir „True“ vai „False“.

Test-Path -Path "C:\Documents and Settings\user"
False
shell

39. Sa­vie­no­ju­ma pārbaude

Tīkla sa­vie­no­ja­mī­bu savā tīklā var novērtēt arī ar PowerShell palīdzību. To var izdarīt, iz­man­to­jot komandu „Test-Connec­tion“, kas nosūta ICMP atbalss pie­pra­sī­ju­ma paketes no­rā­dī­ta­jiem sa­ņē­mē­jiem un gaida atbildes, iz­man­to­jot interneta vadības ziņojumu protokolu (ICMP). Šajā piemērā mēs nosūtām pie­pra­sī­ju­mu uz Server02, iz­man­to­jot IPv6 protokolu.

Test-Connection -TargetName Server02 -IPv6
shell

40. Get-WinEvent

Ja jums ir ne­pie­cie­šams apskatīt vienu vai vairākus notikumu žurnālus, jūsu rīcībā ir dažādas PowerShell komandas. Prak­tis­kā­kā cmdlet šim nolūkam ir Get-WinEvent. Lai iegūtu visus žurnālus no jūsu lokālā datora, varat izmantot šādu komandu:

Get-WinEvent -ListLog *
shell
Go to Main Menu