Kas ir PowerShell komandas? 40 svarīgākās komandas īsumā
Izmantojot atbilstošas PowerShell komandas, varat precīzi lietot moduļus. Šīs labi strukturētās cmdlet komandas var vēl vairāk pielāgot, izmantojot papildu parametrus. Mēs piedāvājam 40 vissvarī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 komandrindas 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 paplašināt ar papildu parametriem, kurus atdala atstarpes. PowerShell lietderība sniedzas tālāk par administratoriem; tā izrādās nenovērtējama arī izstrādes jomā. No daudzajām iepriekš instalētajām PowerShell komandām mēs iepazīstināsim jūs ar vissvarīgākajām.
Svarīgākās PowerShell komandas
PowerShell komandas ļauj veikt plaša mēroga administratora uzdevumus, izmantojot tikai dažus komandas ievadījumus. Starp pamata komandām, kuras jūs, visticamāk, izmantosiet 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 konfigurācijas un ļauj veikt noderīgas analīzes. Šeit ir dažas no vissvarīgākajām PowerShell komandām, ar kurām jums vajadzētu iepazīties:
1. Get-Module -All
Lai iegūtu sākotnēju pārskatu par visiem importētajiem PowerShell moduļiem, izmantojiet komandu Get-Module -All.
Get-Module -Allshell2. Get-Command
Ir pieejams plašs iepriekš definētu PowerShell komandu klāsts. Lai iegūtu pārskatu par pašlaik pieejamajām PowerShell komandām, vienkārši izmantojiet komandu „Get-Command “. Šī komanda skaidri uzskaitīs visas iespējamās darbības un sniegs īsus skaidrojumus par katru atsevišķo cmdlet. Tas attiecas arī uz gadījumiem, ja esat instalējis papildu moduļus.
Get-Commandshell3. Palīdzība
Iepriekš aprakstītais „Get-Command“ saraksts sniedz sākotnēju pārskatu; lai iegūtu sīkāku informāciju par komandu un tās opcijām, izmantojiet cmdletu „Get-Help “. Šī komanda piekļūst palīdzības failiem jūsu datorā un pēc tam sniedz visu pieejamo informāciju. Lai to aktivizētu, apvienojiet „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>]shell4. Get-Process
Lai ātri pārbaudītu sistēmā pašlaik aktīvo lietojumprogrammu, programmu un procesu sarakstu, varat izmantot komandu „Get-Process “. Ja norādīsiet konkrētu lietojumprogrammu, saņemsiet papildu informāciju par šo konkrēto lietojumprogrammu.
Get-Processshell5. Get-Service
Komanda „Get-Service “ darbojas līdzīgi kā cmdlet „Get-Process“. Tomēr tā atšķiras ar to, ka sniedz informāciju par visiem aktīvajiem pakalpojumiem. Ja vēlaties iegūt informāciju par konkrētu pakalpojumu vai noteiktu pakalpojumu kategoriju, varat viegli precizēt savu pieprasījumu.
Get-Serviceshell6. Pārtraukt procesu
Jūs varat izmantot arī dažādas PowerShell komandas, lai apturētu procesus, izmantojot komandu rindu. Viena no iespējām ir komanda „Stop-Process “. Attiecīgo procesu varat norādīt pēc nosaukuma, identifikatora vai citiem atribūtiem. Lūk, piemērs:
Stop-Process -Name "processname"shellStop-Process -Id 3582 -Confirm -PassThrushellIzmantojot opciju -Confirm, tiek pieprasīts apstiprinājums komandai. Komanda -PassThru pieprasa apstiprinājumu par procesa apturēšanu. Tas nenotiek automātiski.
7. Pārvērst HTML
Lai ātri identificētu problēmas vai iespējamās komplikācijas, ļoti noderīgs ir skaidrs attēlojums. To var panākt, izmantojot komandu „ConvertTo-HTML“, kas pārvērš PowerShell komandu izvadi HTML failā. Tādējādi informācija tiek attēlota lietotājam draudzīgā kolonnu formātā. Komandas struktūra parasti izskatās šādi:
Get-Command | ConvertTo-Html > c:\temp\AllCommands.htmlshell8. ConvertTo-Xml
Ja jums ir nepieciešams konkrēta objekta attēlojums XML formātā, varat rīkoties līdzīgi. To var izdarīt, izmantojot komandu „ConvertTo-Xml “. Turpmākajā piemērā tiek konvertēts pašreizējais datums XML formātā:
Get-Date | ConvertTo-Xmlshell9. 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 informācijas, nekā jums nepieciešams. Izmantojot komandu „Where-Object“ kopā ar cauruli, varat parādīt tikai konkrēto informāciju, kuru meklējat. Piemēram, ja vēlaties apskatīt pakalpojumus, kas izveidoti vai atjaunināti šogad, to varat izdarīt šādi:
Get-Service | Where-Object { $_.LastWriteTime -gt "01.01.2023" }shell10. Vēsture
Lai uzskaitītu visas PowerShell komandas, kuras esat ievadījis sesijas laikā, izmantojiet cmdlet Get-History. Lai uzskaitītu visas PowerShell komandas:
Get-HistoryshellIzmantojot šo specifikāciju, tiek izsaukta tikai pēdējās desmit PowerShell komandas:
Get-History -Count 10shell11. Vēstures dzēšana
Varat arī dzēst izmantoto PowerShell komandu sarakstu. Lai dzēstu visus ierakstus, izmantojiet cmdlet Clear-History:
Clear-HistoryshellLai dzēstu noteiktas PowerShell komandas, vienkārši pievienojiet atbilstošos parametrus. Šāds ievadījums dzēš visas PowerShell komandas, kurās ir vārds „Help“ vai kuras beidzas ar vārdu „Syntax“.
Clear-History -Command *Help*, *Syntaxshell12. Pievienot vēsturi
Sesijai var pievienot arī PowerShell komandas. Tas ļauj tās vēlāk atkal izsaukt. Šim nolūkam paredzētais cmdlet ir Add-History.
Add-Historyshell13. Izvades fails
Lai saglabātu PowerShell komandu izvadi datorā, izmantojiet cmdletu „Out-File “. Tas saglabā PowerShell komandas neformātētā teksta failā norādītajā ceļā.
Get-Process | Out-File -FilePath .\Process.txtshell14. Kopēt objektu
PowerShell vidē varat arī kopēt elementus un saglabāt kopiju citā vietā. Izmantojiet komandu „Copy-Item“ un norādiet direktoriju, kurā kopija ir jāsaglabā. Tas darbojas šādi:
Copy-Item "C:\folder1\file.txt" -Destination "C:\folder2"shell15. Get-ChildItem
Lai iegūtu objektus no vienas vai vairākām uzglabāšanas vietām, varat izmantot komandu „Get-ChildItem “. Ja ir apakšelementi, tie arī tiks parādīti. Pēc noklusējuma šī komanda uzrāda atribūtus, pēdējās izmaiņas laiku, faila izmēru un elementa nosaukumu. Ja uzglabāšanas vieta ir tukša, izvade netiek parādīta.
Get-ChildItem -Path C:\exampleshellAtribūti tiek parādīti zem rindas „Režīms”. Šādas īpašības ir visbiežāk sastopamas:
- a (arhīvs)
- d (katalogs)
- h (slēpts)
- l (saite)
- r (tikai lasīšanai)
- s (sistēma)
16. Iestatīt Authenticode parakstu
Lai aizsargātu savus failus, varat tiem pievienot Authenticode parakstu, izmantojot komandu „Set-AuthenticodeSignature “. 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 $certshell17. Invoke-Item
Lai veiktu ar konkrētu failu saistītu standarta darbību, vienkāršākais veids ir izmantot komandu „Invoke-Item “. Šī komanda nodrošina, piemēram, ka izpildāmais fails tiek palaists tieši vai ka dokumenta fails tiek atvērts noklusējuma lietojumprogrammā. Šajā piemērā fails tiek atvērts programmā „Microsoft Word“ pēc noklusējuma:
Invoke-Item "C:\Test\example.doc"shell18. 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ā, netraucējot pašreizējo sesiju.
Start-Job -ScriptBlock { Get-Process -Name pwsh }shellVeiciet darbības, izmantojot šīs PowerShell komandas
Lai gan iepriekš minētās PowerShell komandas galvenokārt bija paredzētas pārskata iegūšanai, izmantojot atbilstošos cmdletus, varat veikt arī dažādas darbības, tādējādi palielinot sistēmas produktivitāti. Turpmāk minētās PowerShell komandas optimizē jūsu darba plūsmu.
19. Satura dzēšana
Lai dzēstu elementa saturu, saglabājot pašu elementu, ideāla izvēle ir komanda „Clear-Content “. Piemēram, to var izmantot, lai dzēstu tekstu no dokumenta, vienlaikus atstājot pašu failu neskartu. Šo darbību veic šādi:
Clear-Content C:\Temp\example.txtshell20. ForEach-Object
Komanda „ForEach-Object“ ļauj veikt darbību ar visiem elementiem 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
10shell21. Salīdzināt objektu
Lai izvairītos no dažādu objektu kopu manuālas salīdzināšanas, varat izmantot komandu „Compare-Object “. Šī komanda ģenerē atskaiti, kurā tiek izcelti ierakstu atšķirības. Pirmais ieraksts kalpo kā atsauces objekts, bet otrais ieraksts — kā atšķirību objekts. Jūs varat norādīt, kurus faktorus salīdzināt, un, ja šī informācija netiek norādīta, tiks salīdzinā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 <==shellSaturs, kas atrodas abos dokumentos (šajā gadījumā „Berlīne“), pēc noklusējuma netiek parādīts.
22. Jauns objekts
Viena no noderīgākajā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 konstruktoru „1.2.3.4“, komanda tiek izpildīta šādi:
New-Object -TypeName System.Version -ArgumentList "1.2.3.4"shell23. Izvēlēties objektu
Izmantojiet 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 parametrus:
- Pirmkārt
- Pēdējais
- Unikāls
- Pāriet
- Rādītājs
Šajā piemērā mēs izmantojam 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 3shell24. Iestatīt saīsinājumu
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. Turpmākajā piemērā mēs izveidojam saīsni „ci“ komandai „Get-ChildItem“ pašreizējai sesijai.
PS> Set-Alias -Name ci -Value Get-ChildItem
PS> Get-Alias -Name cishell25. Set-Location
Lai mainītu darba atmiņas atrašanās vietu, izmantojiet komandu „Set-Location “. Kā jaunas atrašanās vietas var norādīt direktorijus, apakšdirektorijus, reģistra ierakstus vai pakalpojumu sniedzēju ceļus. Turpmākajā piemērā kā pašreizējo uzglabāšanas vietu norādām disku C:
PS C:\Windows\> Set-Location HKLM:\
PS HKLM:\> Set-Location C:
PS C:\Windows\>shell26. Set-Service
Izmantojot komandu „Set-Service“, varat veikt darbības ar pakalpojumu, kā arī to sākt, apturēt vai pārtraukt. Ir iespējams arī mainīt pakalpojuma īpašības. Turpmākajā piemērā mēs mainām pakalpojuma parādīto nosaukumu no „New Workstation“ uz „Old Workstation“.
Set-Service -Name New Workstation -DisplayName "Old Workstation"shell27. 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 koordinēto universālo laiku, izmantojiet šo komandu:
Set-TimeZone -Id "UTC"shell28. Datoru pārstartēt
Jūs varat pārstartēt operētājsistēmu savā lokālajā datorā vai attālinātā datorā, izmantojot atbilstošo PowerShell komandu Restart-Computer. To var izpildīt šādi:
Jūsu datoram:
Restart-ComputershellAtsevišķiem datoriem jūsu tīklā:
Restart-Computer -ComputerName Server01, Server03shell29. Pakalpojuma atkārtota palaišana
Lai apturētu un atkārtoti palaistu pakalpojumu, izmantojot PowerShell komandas, piemērotākais cmdlet ir Restart-Service. Piemēram, varat atkārtoti palaist visus pakalpojumus, kuru nosaukums sākas ar „Net“:
PS C:\> Restart-Service -DisplayName "net*"shell30. 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-RecycleBin.
Clear-RecycleBinshell31. Get-ComputerInfo
Komandu „Get-ComputerInfo“ izmanto, lai iegūtu sistēmas un operētājsistēmas īpašības.
Get-ComputerInfoshell32. Pārvietot objektu
Ja jums ir nepiecieš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ārvietojam failu old.txt no C: diska uz D:\Temp direktoriju, vienlaikus pārdēvējot to par new.txt.
Move-Item -Path C:\old.txt -Destination D:\Temp\new.txtshellUzraudzība un kļūdu novēršana, izmantojot atbilstošas PowerShell komandas
PowerShell komandas, kas ļauj veikt sistēmas uzraudzību un pārbaudi, ir ārkārtīgi noderīgas, jo īpaši, testējot jauna tīkla veiktspē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 nodrošinātu, ka visi iestatījumi un procesi darbojas bez kļūdām. Lai to izdarītu, ir jālejupielādē un jākonfigurē atbilstošie debuggeri. Kad tas ir izdarīts, izmantojiet komandu „Debug-Process “. Turpmākajā piemērā mēs izmantojam debuggeri programmai Explorer:
PS C:\> Debug-Process -Name "Explorer"shellLai vienlaikus atkļūdotu vairākus procesus, vienkārši atdaliet tos ar komatiem.
34. Iespējot PSBreakpoint
Lai aktivizētu noteiktus pārtraukuma punktus, izmantojiet komandu „Enable-PSBreakpoint “. No tehniskā viedokļa tas nosaka cmdlet vērtību kā „true“. Lai aktivizētu visus pārtraukuma punktus pašreizējā sesijā, izmantojiet šīs PowerShell komandas:
Get-PSBreakpoint | Enable-PSBreakpointshellIzmanto šo komandu, lai aktivizētu pārtraukuma punktus, izmantojot to identifikatorus:
Enable-PSBreakpoint -ID 0, 3, 4shell35. Atcelt PSBreakpoint
Lai atkal atspēkotu PowerShell pārtraukuma 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ārtraukuma punktu ar ID 0, ievadiet šādu komandu:
Disable-PSBreakpoint -Id 0shell36. Get-Counter
Windows ierīcēm to veiktspējas datus var iegūt, izmantojot PowerShell. Šim uzdevumam piemērota komanda ir Get-Counter, ko var izmantot gan vietējā datorā, gan attālos datoros. Turpmākajā piemērā mēs iegūstam datus no vietējā datora:
Get-Counter -ListSet *shell37. Ieslēgšana–Miega režīms
Skripta vai sesijas apturēšana var būt ļoti svarīga, jo īpaši sistēmas pārslodzes 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. Turpmākajā piemērā izpilde tiek apturēta uz divām sekundēm:
Start-Sleep -Seconds 2shell38. Test-Path
Izmantojiet komandu „Test-Path“, lai pārbaudītu, vai ir pieejami visi konkrētā ceļa elementi. Iespējamie rezultāti ir „True“ vai „False“.
Test-Path -Path "C:\Documents and Settings\user"
Falseshell39. Savienojuma pārbaude
Tīkla savienojamību savā tīklā var novērtēt arī ar PowerShell palīdzību. To var izdarīt, izmantojot komandu „Test-Connection“, kas nosūta ICMP atbalss pieprasījuma paketes norādītajiem saņēmējiem un gaida atbildes, izmantojot interneta vadības ziņojumu protokolu (ICMP). Šajā piemērā mēs nosūtām pieprasījumu uz Server02, izmantojot IPv6 protokolu.
Test-Connection -TargetName Server02 -IPv6shell40. Get-WinEvent
Ja jums ir nepieciešams apskatīt vienu vai vairākus notikumu žurnālus, jūsu rīcībā ir dažādas PowerShell komandas. Praktiskā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