Kas yra „PowerShell“ komandos? 40 svarbiausių komandų apžvalga
Naudodami tinkamas „PowerShell“ komandas, galėsite tiksliai taikyti modulius. Šias gerai organizuotas komandas galima dar labiau pritaikyti pagal poreikius, naudojant papildomus parametrus. Pateikiame 40 svarbiausių „PowerShell“ komandų, kad galėtumėte optimaliai dirbti savo sistemoje ar tinkle.
Kas yra „PowerShell“ komanda?
„PowerShell“, kuris yra įdiegtas jau nuo „Windows 7“ versijos, leidžia įvesti „PowerShell“ komandas, kurias vėliau vykdo „Windows“. Be komandinės eilutės „cmd“ komandų, yra daugybė kitų komandų arba cmdletų, kurias supranta tik pats „PowerShell“. Šie cmdletai susideda iš veiksmažodžio ir daiktavardžio, kuriuos skiria brūkšnys. Be to, šias „PowerShell“ komandas galima išplėsti papildomais parametrais, atskirtais tarpeliais. „PowerShell“ naudingumas neapsiriboja tik administratoriais; jis taip pat yra nepakeičiamas programavimo srityje. Turint gausybę iš anksto įdiegtų „PowerShell“ komandų, mes supažindinsime jus su svarbiausiomis iš jų.
Svarbiausios „PowerShell“ komandos
Naudodami „PowerShell“ komandas, vos keliais įvedimais galite atlikti daugybę administravimo užduočių. Tarp pagrindinių komandų, kurias tikriausiai naudosite dažniausiai, yra tos, kurios suteikia pirminį tinklo struktūros apžvalgą, pateikia kitų „PowerShell“ komandų sąrašą, padeda atlikti svarbiausius saugumo nustatymus ir leidžia atlikti naudingas analizes. Štai keletas svarbiausių „PowerShell“ komandų, kurias turėtumėte išmanyti:
1. Get-Module -All
Norėdami susidaryti bendrą vaizdą apie visus importuotus „PowerShell“ modulius, naudokite komandą „Get-Module -All“.
Get-Module -Allshell2. Get-Command
Yra gausybė iš anksto apibrėžtų „PowerShell“ komandų. Norėdami susipažinti su šiuo metu prieinamomis „PowerShell“ komandomis, tiesiog naudokite komandą „Get-Command “. Ši komanda aiškiai išvardys visas galimas operacijas ir pateiks glaustus paaiškinimus apie kiekvieną atitinkamą cmdlet. Tai galioja net ir tuo atveju, jei esate įdiegę papildomus modulius.
Get-Commandshell3. Pagalba
Pirmiau aprašytas „Get-Command“ sąrašas suteikia bendrą apžvalgą; norėdami gauti išsamesnės informacijos apie komandą ir jos parinktis, naudokite „Get-Help“ komandą. Ši komanda pasiekia jūsų kompiuteryje esančius pagalbos failus ir pateikia visą turimą informaciją. Norėdami ją aktyvuoti, sujunkite „Get-Help“ su komanda, kurios sintaksę norite peržiūrėti.
Get-Help [[-Name] <String>] [-Path <String>] [-Category <String[]>] [-Component <String[]>] [-Functionality <String[]>] [-Role <String[]>] [-Examples] [<CommonParameters>]shell4. Get-Process
Norėdami greitai peržiūrėti sąrašą šiuo metu jūsų sistemoje veikiančių programų, taikomųjų programų ir procesų, galite naudoti komandą „Get-Process “. Jei nurodysite konkrečią programą, gausite papildomos informacijos apie tą programą.
Get-Processshell5. Get-Service
Komanda „Get-Service “ veikia panašiai kaip cmdletas „Get-Process“. Tačiau ji išsiskiria tuo, kad pateikia informaciją apie visas aktyvias paslaugas. Jei norite gauti informaciją apie konkrečią paslaugą arba tam tikrą paslaugų kategoriją, galite lengvai patikslinti savo užklausą.
Get-Serviceshell6. Sustabdyti procesą
Taip pat galite naudoti įvairias „PowerShell“ komandas, kad sustabdytumėte procesus per komandų eilutę. Viena iš galimybių – komanda „Stop-Process “. Atitinkamą procesą galite nurodyti pagal pavadinimą, ID arba kitus atributus. Štai pavyzdys:
Stop-Process -Name "processname"shellStop-Process -Id 3582 -Confirm -PassThrushellNaudojant parametrą -Confirm prašoma patvirtinti komandą. Komanda -PassThru prašo patvirtinti sustabdytą procesą. Tai nevyksta automatiškai.
7. Konvertuoti į HTML
Norint greitai nustatyti problemas ar galimas komplikacijas, labai praverčia aiškus vaizdas. Tai galima pasiekti naudojant komandą „ConvertTo-HTML“, kuri PowerShell komandų išvestį konvertuoja į HTML failą. Tokiu būdu informacija pateikiama patogiu stulpelių formatu. Komandos struktūra paprastai atrodo taip:
Get-Command | ConvertTo-Html > c:\temp\AllCommands.htmlshell8. Konvertuoti į XML
Jei norite gauti konkretaus objekto atvaizdą XML formatu, galite elgtis panašiai. Tai galima padaryti naudojant komandą „ConvertTo-Xml “. Toliau pateiktame pavyzdyje esama data konvertuojama į XML formatą:
Get-Date | ConvertTo-Xmlshell9. Kur-objektas
Naudodami komandą „Where-Object“ galite filtruoti cmdlet komandos rezultatą. Vykdydami komandą dažnai gaunate daug objektų, kuriuose yra daugiau informacijos, nei jums reikia. Naudodami „Where-Object“ kartu su vamzdeliu, galite rodyti tik tą informaciją, kurios ieškote. Pavyzdžiui, jei norite peržiūrėti šiais metais sukurtas arba atnaujintas paslaugas, tai galite padaryti taip:
Get-Service | Where-Object { $_.LastWriteTime -gt "01.01.2023" }shell10. Istorijos peržiūra
Jei norite peržiūrėti visas „PowerShell“ komandas, kurias įvedėte per sesiją, naudokite komandą „Get-History “. Norėdami peržiūrėti visas „PowerShell“ komandas:
Get-HistoryshellPagal šią specifikaciją bus vykdomos tik paskutinės dešimt „PowerShell“ komandų:
Get-History -Count 10shell11. Išvalyti istoriją
Taip pat galite ištrinti naudotų „PowerShell“ komandų sąrašą. Norėdami pašalinti visus įrašus, naudokite komandą „Clear-History“:
Clear-HistoryshellNorėdami ištrinti pasirinktas „PowerShell“ komandas, tiesiog įveskite atitinkamus parametrus. Įvedus žemiau pateiktą komandą, bus pašalintos visos „PowerShell“ komandos, kurių pavadinime yra žodis „Help“ arba kurios baigiasi žodžiu „Syntax“.
Clear-History -Command *Help*, *Syntaxshell12. Pridėti istoriją
Taip pat galima į sesiją įtraukti „PowerShell“ komandas. Tai leidžia jas vėliau vėl iškviesti. Tam skirta komanda yra „Add-History“.
Add-Historyshell13. Išvesties failas
Norėdami išsaugoti „PowerShell“ komandų išvestį kompiuteryje, naudokite „Out-File“ komandą. Ji išsaugo „PowerShell“ komandas paprasto teksto faile nurodytuoju keliu.
Get-Process | Out-File -FilePath .\Process.txtshell14. Kopijuoti elementą
„PowerShell“ taip pat galima kopijuoti elementus ir išsaugoti kopiją kitoje vietoje. Naudokite komandą „Copy-Item“ ir nurodykite katalogą, kuriame turi būti išsaugota kopija. Tai daroma taip:
Copy-Item "C:\folder1\file.txt" -Destination "C:\folder2"shell15. Get-ChildItem
Naudodami komandą „Get-ChildItem“ galite gauti elementus iš vienos ar kelių saugyklų. Jei yra poelementių, jie taip pat bus rodomi. Pagal numatytuosius nustatymus ši komanda pateikia atributus, paskutinio pakeitimo laiko žymą, failo dydį ir elemento pavadinimą. Jei saugykla tuščia, išvestis nepateikiama.
Get-ChildItem -Path C:\exampleshellAtributai rodomi po eilute „Režimas“. Dažniausiai pasitaiko šios savybės:
- a (archyvas)
- d (katalogas)
- h (paslėptas)
- l (nuoroda)
- r (tik skaityti)
- s (sistema)
16. Nustatyti „Authenticode“ parašą
Norėdami apsaugoti savo failus, galite juos pažymėti „Authenticode“ parašu naudodami komandą „Set-AuthenticodeSignature “. Tačiau tai veikia tik su failais, kurie palaiko „Subject Interface Package“ (SIP).
$cert=Get-ChildItem -Path Cert:\CurrentUser\My -CodeSigningCert
Set-AuthenticodeSignature -FilePath PsTestInternet2.ps1 -Certificate $certshell17. Invoke-Item
Norint atlikti su konkrečiu failu susijusį standartinį veiksmą, paprasčiausias būdas yra naudoti komandą „Invoke-Item “. Ši komanda užtikrina, pavyzdžiui, kad vykdomasis failas būtų paleistas tiesiogiai arba kad dokumento failas būtų atidarytas numatytoje programoje. Šiame pavyzdyje failas pagal numatytuosius nustatymus atidaromas programoje „Microsoft Word“:
Invoke-Item "C:\Test\example.doc"shell18. Pradėti darbą
Norėdami paleisti foninę užduotį savo kompiuteryje, galite naudoti tam skirtą komandą. Komanda „Start-Job“ leidžia vykdyti konkrečią komandą fone, netrukdant esamai sesijai.
Start-Job -ScriptBlock { Get-Process -Name pwsh }shellAtlikite veiksmus naudodami šias „PowerShell“ komandas
Nors anksčiau pateiktos „PowerShell“ komandos buvo skirtos daugiausia apžvalgai pateikti, naudojant atitinkamus cmdlet’us taip pat galima atlikti įvairius veiksmus, taip padidinant sistemos našumą. Toliau pateiktos „PowerShell“ komandos padės supaprastinti jūsų darbo eigą.
19. Išvalyti turinį
Norint ištrinti elemento turinį, bet išsaugoti patį elementą, komanda „Clear-Content“ yra idealus pasirinkimas. Pavyzdžiui, ją galima naudoti norint ištrinti tekstą iš dokumento, paliekant patį failą nepakitusi. Šis procesas atliekamas taip:
Clear-Content C:\Temp\example.txtshell20. ForEach-Object
Komanda „ForEach-Object“ leidžia atlikti operaciją su visais įvesties objektų rinkinio elementais. Šiame pavyzdyje dalijame tris masyve esančius sveikųjų skaičių iš 10:
10000, 1000, 100 | ForEach-Object -Process {$_/10}
1000
100
10shell21. Palyginti objektus
Norėdami išvengti rankinio skirtingų objektų rinkinių lyginimo, galite naudoti komandą „Compare-Object “. Ši komanda sukuria ataskaitą, kurioje išskiriamos įrašų skirtumai. Pirmasis įrašas veikia kaip atskaitos objektas, o antrasis – kaip skirtumų objektas. Galite nurodyti, kokius veiksnius lyginti; jei ši informacija nenurodoma, bus lyginami tik eilutės rezultatai. Rezultatas suskirstytas į savybes, kurios pasirodo tik atskaitos objekte (<), ir savybes, kurios pasirodo tik skirtumų objekte (>). Šiame pavyzdyje failas „document1.txt“ turi reikšmes „Berlin“, „London“ ir „Paris“. Failas „Document2.txt“ turi reikšmes „Berlin“, „Vienna“ ir „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 <==shellTurinys, kuris pasikartoja abiejuose dokumentuose (šiuo atveju „Berlynas“), pagal numatytuosius nustatymus nerodomas.
22. Naujas objektas
Viena iš naudingiausių „PowerShell“ komandų yra „New-Object“. Šią komandą galite naudoti, norėdami sukurti objektą iš „.NET Framework“ arba COM (Component Object Model). Pavyzdžiui, jei norite sukurti „System.Version“ objektą, kurio konstruktoriaus eilutė yra „1.2.3.4“, komandą reikia vykdyti taip:
New-Object -TypeName System.Version -ArgumentList "1.2.3.4"shell23. „Select-Object“
Naudokite komandą „Select-Object“, kad atrinktumėte objektą arba objektų grupę, atitinkančią jūsų nustatytus parametrus. Šiai komandai galite nurodyti šiuos parametrus:
- Pirmas
- Paskutinis
- Unikalus
- Pereiti
- Rodyklė
Šiame pavyzdyje naudojame „PowerShell“ komandas „Get-Process“ ir „Sort-Object“, kad būtų rodomi trys procesai, kurie įvedimo metu naudoja daugiausia atminties.
Get-Process | Sort-Object -Property WS | Select-Object -Last 3shell24. Nustatyti aliasą
„Windows“ sparčiosios klavišų kombinacijos yra naudingos, norint veiksmus atlikti dar greičiau. „PowerShell“ taip pat siūlo šią galimybę. Naudodami „Set-Alias“ komandą, galite nustatyti sparčiąją klavišų kombinaciją įvairioms „PowerShell“ komandoms. Toliau pateiktame pavyzdyje dabartinei sesijai komandai „Get-ChildItem“ sukuriame aliasą „ci“.
PS> Set-Alias -Name ci -Value Get-ChildItem
PS> Get-Alias -Name cishell25. Nustatyti vietą
Norėdami pakeisti darbo atminties vietą, naudokite komandą „Set-Location “. Galimos naujos vietos – tai katalogai, pakatalogiai, registro vietos arba teikėjo keliai. Toliau pateiktame pavyzdyje kaip dabartinę saugojimo vietą nurodome diską „C:“:
PS C:\Windows\> Set-Location HKLM:\
PS HKLM:\> Set-Location C:
PS C:\Windows\>shell26. Nustatyti paslaugą
Naudodami komandą „Set-Service“ galite valdyti paslaugą, ją paleisti, sustabdyti arba pristabdyti. Taip pat galima keisti paslaugos savybes. Toliau pateiktame pavyzdyje paslaugos rodomąjį pavadinimą keičiame iš „New Workstation“ į „Old Workstation“.
Set-Service -Name New Workstation -DisplayName "Old Workstation"shell27. Nustatyti laiko juostą
Norėdami pakeisti sistemos laiko juostą, naudokite komandą „Set-TimeZone “. Norėdami nustatyti koordinuotą pasaulinį laiką kaip naują sistemos laiką, naudokite šią komandą:
Set-TimeZone -Id "UTC"shell28. Kompiuterio perkrovimas
Operacinę sistemą savo kompiuteryje arba nuotolinio kompiuteryje galite perkrauti naudodami atitinkamą „PowerShell“ komandą „Restart-Computer“. Ji vykdoma taip:
Jūsų kompiuteryje:
Restart-ComputershellTam tikriems kompiuteriams jūsų tinkle:
Restart-Computer -ComputerName Server01, Server03shell29. Paslaugos paleidimas iš naujo
Norint sustabdyti ir iš naujo paleisti paslaugą naudojant „PowerShell“ komandas, reikia naudoti komandą „Restart-Service “. Pavyzdžiui, galite iš naujo paleisti visas paslaugas, kurių pavadinimai prasideda žodžiu „Net“:
PS C:\> Restart-Service -DisplayName "net*"shell30. Išvalyti šiukšliadėžę
Šiukšliadėžę reikėtų reguliariai ištuštinti, o tai galima padaryti ir naudojantis „PowerShell“. Komanda yra „Clear-RecycleBin“.
Clear-RecycleBinshell31. Get-ComputerInfo
Komanda „Get-ComputerInfo“ naudojama sistemos ir operacinės sistemos savybėms gauti.
Get-ComputerInfoshell32. Perkelti elementą
Jei reikia perkelti elementą iš vienos vietos į kitą, galite pasinaudoti keliomis „PowerShell“ komandomis. Vis dėlto dažniausiai naudojama komanda yra „Move-Item“. Šiame pavyzdyje perkeliame failą „old.txt“ iš disko C: į katalogą „D:\Temp“ ir tuo pačiu pakeičiame jo pavadinimą į „new.txt“.
Move-Item -Path C:\old.txt -Destination D:\Temp\new.txtshellStebėjimas ir klaidų šalinimas naudojant atitinkamas „PowerShell“ komandas
„PowerShell“ komandos, leidžiančios stebėti ir tikrinti sistemą, yra ypač vertingos, ypač kai naujo tinklo našumas tikrinamas realiomis sąlygomis. Šiems tikslams ypač naudingos šios „PowerShell“ komandos.
33. Debug-Process
Debuggingas yra svarbus procesas, užtikrinantis, kad visi nustatymai ir procesai veiktų be klaidų. Tam reikia atsisiųsti ir sukonfigūruoti atitinkamus debuggerius. Tai atlikus, naudokite komandą „Debug-Process “. Toliau pateiktame pavyzdyje naudojame „Explorer“ debuggerį:
PS C:\> Debug-Process -Name "Explorer"shellNorėdami derinti kelis procesus vienu metu, tiesiog atskirkite juos kableliais.
34. Įjungti PSBreakpoint
Norėdami įjungti tam tikrus sustabdymo taškus, naudokite komandą „Enable-PSBreakpoint “. Techniniu požiūriu tai nustato cmdlet reikšmę „true“. Naudokite šias „PowerShell“ komandas, kad įjungtumėte visus sustabdymo taškus dabartinėje sesijoje:
Get-PSBreakpoint | Enable-PSBreakpointshellNaudokite šią komandą, kad aktyvuotumėte sustabdymo taškus pagal jų ID:
Enable-PSBreakpoint -ID 0, 3, 4shell35. Išjungti-PSBreakpoint
Norėdami vėl išjungti „PowerShell“ sustabdymo taškus, naudokite tam skirtą komandą „Disable-PSBreakpoint“. Techniniu požiūriu, komandos „Enable-PSBreakpoint“ reikšmė nustatoma kaip „false“. Norėdami išjungti sustabdymo tašką su ID 0, įveskite šią komandą:
Disable-PSBreakpoint -Id 0shell36. Get-Counter
„Windows“ įrenginių našumo duomenis galima gauti naudojant „PowerShell“. Šiai užduočiai atlikti tinka komanda „Get-Counter“, kurią galima naudoti tiek vietiniame, tiek nuotoliniuose kompiuteriuose. Toliau pateiktame pavyzdyje duomenys gaunami iš vietinio kompiuterio:
Get-Counter -ListSet *shell37. Įjungti-Miegas
Skripto ar sesijos sustabdymas gali būti itin svarbus, ypač kai sistema yra perkrauta. Šiam tikslui „PowerShell“ siūlo komandą „Start-Sleep“, leidžiančią nurodyti, kiek laiko veikla turi būti sustabdyta. Toliau pateiktame pavyzdyje vykdymas sustabdomas dviem sekundėms:
Start-Sleep -Seconds 2shell38. Testavimo maršrutas
Naudokite komandą „Test-Path“, kad patikrintumėte, ar yra visi konkretaus kelio elementai. Galimi rezultatai yra „True“ arba „False“.
Test-Path -Path "C:\Documents and Settings\user"
Falseshell39. Ryšio patikrinimas
Tinklo ryšį savo tinkle taip pat galite įvertinti naudodami „PowerShell“. Tai daroma siunčiant ICMP atgarsio užklausos paketus nurodytiems adresatams naudojant komandą „Test-Connection“, kuri prašo atsakymų per interneto valdymo pranešimų protokolą (ICMP). Mūsų pavyzdyje užklausą siunčiame į „Server02“ naudodami IPv6 protokolą.
Test-Connection -TargetName Server02 -IPv6shell40. Get-WinEvent
Jei norite peržiūrėti vieną ar kelis įvykių žurnalus, galite pasinaudoti įvairiomis „PowerShell“ komandomis. Šiam tikslui labiausiai tinka komandėlė „Get-WinEvent“. Norėdami gauti visus žurnalus iš savo vietinio kompiuterio, galite naudoti šią komandą:
Get-WinEvent -ListLog *shell