Çfarë është Windows PowerShell dhe me çfarë hahet? Pjesa 1: Karakteristikat kryesore

Historikisht, shërbimet e linjës së komandës në sistemet Unix janë zhvilluar më mirë sesa në Windows, por me ardhjen e një zgjidhjeje të re, situata ka ndryshuar.

Windows PowerShell lejon administratorët e sistemit të automatizojnë shumicën e detyrave rutinë. Me të, ju mund të ndryshoni cilësimet, të ndaloni dhe të filloni shërbimet, si dhe të kryeni mirëmbajtje në shumicën e aplikacioneve të instaluara. Do të ishte gabim të perceptohej dritarja blu si një përkthyes tjetër komande. Kjo qasje nuk pasqyron thelbin e risive të propozuara nga Microsoft. Në fakt, mundësitë e Windows PowerShell janë shumë më të gjera: në një seri të shkurtër artikujsh, ne do të përpiqemi të kuptojmë se si ndryshon zgjidhja e Microsoft nga mjetet me të cilat jemi më të njohur.

Çfarë është Windows PowerShell dhe me çfarë hahet? Pjesa 1: Karakteristikat kryesore

Karakteristikat kryesore 

Sigurisht, Windows PowerShell është kryesisht një guaskë skriptimi, e ndërtuar fillimisht në .NET Framework dhe më vonë në .NET Core. Ndryshe nga predha që pranojnë dhe kthejnë të dhëna teksti, Windows PowerShell punon me klasa .NET që kanë veti dhe metoda. PowerShell ju lejon të ekzekutoni komanda të zakonshme dhe gjithashtu ju jep akses në objektet COM, WMI dhe ADSI. Ai përdor memorie të ndryshme, siç është sistemi i skedarëve ose regjistri i Windows, për qasje në të cilat të ashtuquajturat. ofruesit. Vlen të përmendet mundësia e futjes së komponentëve të ekzekutueshëm të PowerShell në aplikacione të tjera për të zbatuar operacione të ndryshme, përfshirë. përmes një ndërfaqe grafike. E kundërta është gjithashtu e vërtetë: shumë aplikacione Windows ofrojnë akses në ndërfaqet e tyre të menaxhimit përmes PowerShell. 

Windows PowerShell ju lejon të:

  • Ndryshoni cilësimet e sistemit operativ;
  • Menaxhoni shërbimet dhe proceset;
  • Konfiguro rolet dhe komponentët e serverit;
  • Instaloni softuer;
  • Menaxhoni softuerin e instaluar përmes ndërfaqeve speciale;
  • Futja e komponentëve të ekzekutueshëm në programet e palëve të treta;
  • Krijoni skripta për të automatizuar detyrat e administrimit;
  • Punoni me sistemin e skedarëve, regjistrin e Windows, dyqanin e certifikatave, etj.

Shell dhe mjedisi i zhvillimit

Ekziston Windows PowerShell në dy forma: përveç emulatorit të konsolës me një guaskë komandimi, ekziston një mjedis i integruar i skriptit (ISE). Për të hyrë në ndërfaqen e linjës së komandës, thjesht zgjidhni shkurtoren e duhur nga menyja e Windows ose ekzekutoni powershell.exe nga menyja Run. Një dritare blu do të shfaqet në ekran, dukshëm e ndryshme në aftësi nga cmd.exe antidiluvian. Ka plotësim automatik dhe veçori të tjera të njohura për përdoruesit e predhave të komandës për sistemet Unix.

Çfarë është Windows PowerShell dhe me çfarë hahet? Pjesa 1: Karakteristikat kryesore

Për të punuar me guaskën, duhet të mbani mend disa shkurtore të tastierës:

  • Shigjetat lart dhe poshtë lëvizin nëpër histori për të përsëritur komandat e shtypura më parë;
  • Shigjeta djathtas në fund të një rreshti rishtyp komandën e mëparshme karakter për karakter;
  • Ctrl+Home fshin tekstin e shtypur nga pozicioni i kursorit deri në fillim të rreshtit;
  • Ctrl+End fshin tekstin nga kursori deri në fund të rreshtit.

F7 tregon një dritare me komanda të shtypura dhe ju lejon të zgjidhni njërën prej tyre. Konsola gjithashtu funksionon me zgjedhjen e tekstit me miun, copy-paste, pozicionimin e kursorit, fshirjen, backspace - gjithçka që na pëlqen.

Çfarë është Windows PowerShell dhe me çfarë hahet? Pjesa 1: Karakteristikat kryesore
Windows PowerShell ISE është një mjedis i plotë zhvillimi me një redaktues kodi me skeda dhe sintaksë të theksuar, ndërtues komandash, korrigjues të integruar dhe kënaqësi të tjera programimi. Nëse shkruani një vizë pas emrit të komandës në redaktuesin e mjedisit të zhvillimit, do të merrni të gjitha opsionet e disponueshme në listën rënëse me një tregues të llojit. Mund ta nisni PowerShell ISE ose përmes një shkurtoreje nga menyja e sistemit ose duke përdorur skedarin e ekzekutueshëm powershell_ise.exe.

Çfarë është Windows PowerShell dhe me çfarë hahet? Pjesa 1: Karakteristikat kryesore

Cmdlets 

Në Windows PowerShell, të ashtuquajturat. cmdlet. Këto janë klasa të specializuara .NET që ofrojnë një shumëllojshmëri funksionesh. Ata janë quajtur Veprim-Objekt (ose Folje-Emër, nëse preferoni), dhe lidhja e ndarë me vizë i ngjan kallëzuesit dhe temës në fjalitë e gjuhës natyrore. Për shembull, Get-Help fjalë për fjalë do të thotë "Get-Help", ose në një kontekst PowerShell: "Trego-Help". Në fakt, ky është një analog i komandës man në sistemet Unix, dhe manualet në PowerShell duhet të kërkohen në këtë mënyrë, dhe jo duke thirrur cmdlet me çelësin --help ose /?. Mos harroni për dokumentacionin në internet të PowerShell: Microsoft e ka mjaft të detajuar.

Përveç Get, cmdlet përdorin folje të tjera për të treguar veprime (dhe jo vetëm folje, në mënyrë rigoroze). Në listën e mëposhtme japim disa shembuj:

Add - shtoni;
Clear - qartë;
Enable - ndez;
Disable - fik;
New - të krijojë;
Remove - fshij;
Set - pyesni;
Start - vraponi;
Stop - ndalesë;
Export - eksporti;
Import - importi.

Ekzistojnë cmdlet të sistemit, përdoruesve dhe opsionalë: si rezultat i ekzekutimit, ata të gjithë kthejnë një objekt ose një grup objektesh. Ata nuk janë të ndjeshëm ndaj rasteve, d.m.th. nga këndvështrimi i përkthyesit të komandës, nuk ka dallim ndërmjet Get-Help dhe Get-help. Karakteri ';' përdoret për ndarje, por është e detyrueshme të vendoset vetëm nëse disa cmdlet ekzekutohen në të njëjtën linjë. 

Windows PowerShell cmdlet grupohen në module (NetTCPIP, Hyper-V, etj.), dhe ekziston një cmdlet Get-Command për të kërkuar sipas objektit dhe veprimit. Ju mund të shfaqni ndihmë për të si kjo:

Get-Help Get-Command

Çfarë është Windows PowerShell dhe me çfarë hahet? Pjesa 1: Karakteristikat kryesore

Si parazgjedhje, komanda shfaq ndihmë të shkurtër, por parametrat (argumentet) kalohen në cmdlet sipas nevojës. Me ndihmën e tyre, për shembull, mund të merrni ndihmë të detajuar (parametër -Detailed) ose të plotë (parametër -Full), si dhe të shfaqni shembuj (parametër - Shembuj):

Get-Help Get-Command -Examples

Ndihma në Windows PowerShell përditësohet nga cmdlet Update-Help. Nëse vija e komandës rezulton të jetë shumë e gjatë, argumentet cmdlet mund të zhvendosen në tjetrën duke shkruar karakterin e shërbimit '`' dhe duke shtypur Enter - thjesht duke përfunduar shkrimin e komandës në një rresht dhe duke vazhduar në një tjetër nuk do të funksionojë.

Këtu janë disa shembuj të cmdlet-ve të zakonshme: 

Get-Process - të tregojë proceset e ekzekutimit në sistem;
Get-Service — tregoni shërbimet dhe statusin e tyre;
Get-Content - shfaqni përmbajtjen e skedarit.

Për cmdlet të përdorura shpesh dhe shërbimet e jashtme, Windows PowerShell ka sinonime të shkurtra - pseudonime (nga anglishtja. Alias). Për shembull, dir është një pseudonim për Get-ChildItem. Lista e sinonimeve përfshin edhe analoge të komandave nga sistemet Unix (ls, ps, etj.), dhe cmdlet Get-Help thirret nga komanda ndihmë. Një listë e plotë e sinonimeve mund të shihet duke përdorur cmdlet Get-Alias‎:

Çfarë është Windows PowerShell dhe me çfarë hahet? Pjesa 1: Karakteristikat kryesore

Skriptet, funksionet, modulet dhe gjuha PowerShell

Skriptet e Windows PowerShell ruhen si skedarë teksti të thjeshtë me një shtesë .ps1. Ju nuk mund t'i hapni ato duke klikuar dy herë: duhet të klikoni me të djathtën për të thirrur menynë e kontekstit dhe zgjidhni artikullin "Run in PowerShell". Nga tastiera, ose do të duhet të specifikoni shtegun e plotë të skriptit, ose të shkoni në drejtorinë e duhur dhe të shkruani emrin e skedarit. Ekzekutimi i skripteve është gjithashtu i kufizuar nga politika e sistemit dhe për të kontrolluar cilësimet aktuale, mund të përdorni cmdlet Get-ExecutionPolicy, i cili do të kthejë një nga vlerat e mëposhtme:

Restricted — nisja e skripteve është e çaktivizuar (si parazgjedhje);
AllSigned - lejohet vetëm lëshimi i skripteve të nënshkruara nga një zhvillues i besuar;
RemoteSigned - lejohet të ekzekutojë skriptet e nënshkruara dhe të zotëruara;
Unrestricted - lejohet të ekzekutojë çdo skript.

Administratori ka dy opsione. Më e sigurta përfshin nënshkrimin e skripteve, por kjo është një magji mjaft serioze - ne do të merremi me të në artikujt e ardhshëm. Tani le të marrim rrugën e rezistencës më të vogël dhe të ndryshojmë politikën:

Set-ExecutionPolicy RemoteSigned

Çfarë është Windows PowerShell dhe me çfarë hahet? Pjesa 1: Karakteristikat kryesore
PowerShell do të duhet të ekzekutohet si administrator për ta bërë këtë, megjithëse mund ta ndryshoni politikën për përdoruesin aktual me një cilësim të veçantë.

Skriptet janë shkruar në një gjuhë programimi të orientuar nga objekti, komandat e së cilës emërtohen sipas të njëjtit parim si cmdlet-et e diskutuara më parë: "Veprim-Objekt" ("Folje-Emër"). Qëllimi i tij kryesor është të automatizojë detyrat administrative, por është një gjuhë e interpretuar e plotë që ka të gjitha konstruktet e nevojshme: kërcimin e kushtëzuar, sythe, variabla, vargje, objekte, trajtimin e gabimeve, etj. Çdo redaktues teksti është i mirë për skriptimin, por është më mirë të ekzekutoni Windows PowerShell ISE.

Ju mund t'i kaloni parametrat skriptit, t'i bëni ato të nevojshme dhe të vendosni vlerat e paracaktuara. Përveç kësaj, Windows PowerShell ju lejon të krijoni dhe thirrni funksione në të njëjtën mënyrë si cmdlet, duke përdorur konstruktin e funksionit dhe kllapat kaçurrelë. Një skrip me funksione quhet modul dhe ka një shtrirje .psm1. Modulet duhet të ruhen në drejtoritë e përcaktuara në variablat e mjedisit PowerShell. Ju mund t'i shikoni ato me komandën e mëposhtme:

Get-ChildItem Env:PSModulePath | Format-Table -AutoSize

transportues

Në shembullin e fundit, ne kemi përdorur një konstrukt që është i njohur për përdoruesit e Unix shell. Në Windows PowerShell, shiriti vertikal ju lejon gjithashtu të kaloni daljen e një komande në hyrjen e një tjetri, por ka një ndryshim domethënës në zbatimin e tubacionit: nuk po flasim më për një grup karakteresh ose një lloj teksti. Cmdlet-et e integruara ose funksionet e përcaktuara nga përdoruesi kthejnë objekte ose grupe objektesh dhe gjithashtu mund t'i marrin ato si hyrje. Ashtu si guaska Bourne dhe pasardhësit e saj të shumtë, PowerShell i bën më të lehta detyrat komplekse me një tubacion.

Shembulli më i thjeshtë i tubacionit duket si ky:

Get-Service | Sort-Object -property Status

Çfarë është Windows PowerShell dhe me çfarë hahet? Pjesa 1: Karakteristikat kryesore
Së pari, ekzekutohet cmdlet Get-Service dhe më pas të gjitha shërbimet e marra prej tij kalojnë në cmdlet Sort-Object për renditje sipas vetive Status. Në cilin argument kalohet rezultati i seksionit të mëparshëm të tubacionit varet nga lloji i tij - zakonisht është InputObject. Kjo çështje do të diskutohet më në detaje në një artikull kushtuar gjuhës së programimit PowerShell. 

Nëse dëshironi, mund të vazhdoni zinxhirin dhe të kaloni rezultatin e operacionit Sort-Object në një cmdlet tjetër (ato do të ekzekutohen nga e majta në të djathtë). Nga rruga, përdoruesit e Windows kanë gjithashtu qasje në ndërtimin për faqezim të njohur për të gjithë Unixoid-ët: 

Get-Service | Sort-Object -property Status | more

Ekzekutimi i detyrave në sfond 

Shumë shpesh, është e nevojshme të ekzekutoni një komandë të caktuar në sfond, në mënyrë që të mos prisni rezultatin e ekzekutimit të tij në seancën e guaskës. Windows PowerShell ka disa cmdlet për këtë rast:

Start-Job - nisja e një detyre në sfond;
Stop-Job — ndaloni detyrën e sfondit;
Get-Job — shikoni listën e detyrave në sfond;
Receive-Job — shikimi i rezultatit të ekzekutimit të detyrës në sfond;
Remove-Job — fshirja e një detyre në sfond;
Wait-Job - transferimi i detyrës së sfondit përsëri në tastierë.

Për të filluar një detyrë në sfond, ne përdorim cmdlet Start-Job dhe specifikojmë një komandë ose grup komandash në kllapa kaçurrelë:

Start-Job {Get-Service}

Çfarë është Windows PowerShell dhe me çfarë hahet? Pjesa 1: Karakteristikat kryesore
Detyrat e sfondit në Windows PowerShell mund të manipulohen duke ditur emrat e tyre. Së pari, le të mësojmë se si t'i shfaqim ato:

Get-Job

Çfarë është Windows PowerShell dhe me çfarë hahet? Pjesa 1: Karakteristikat kryesore
Tani le të tregojmë rezultatin e punës Job1:

Receive-Job Job1 | more

Çfarë është Windows PowerShell dhe me çfarë hahet? Pjesa 1: Karakteristikat kryesore
Gjithçka është mjaft e thjeshtë.

Ekzekutimi i komandës në distancë

Windows PowerShell ju lejon të ekzekutoni komanda dhe skripte jo vetëm në kompjuterin lokal, por edhe në një kompjuter të largët, madje edhe në një grup të tërë makinash. Ka disa mënyra për ta bërë këtë:

  • Shumë cmdlet kanë një parametër -ComputerName, por në këtë mënyrë nuk do të funksionojë, për shembull, të krijohet një transportues;
  • cmdlet Enter-PSSession ju lejon të krijoni një seancë interaktive në një makinë të largët; 
  • Duke përdorur cmdlet Invoke-Command ju mund të ekzekutoni komanda ose skripta në një ose më shumë kompjuterë të largët.

Versionet e PowerShell

PowerShell ka ndryshuar shumë që nga publikimi i tij i parë në 2006. Mjeti është i disponueshëm për shumë sisteme që funksionojnë në platforma të ndryshme harduerike (x86, x86-64, Itanium, ARM): Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008/2008 R2, Windows 7, Windows 8, Windows 8.1, Windows RT, Windows RT 8.1, Windows Server 2012/2012 R2, Windows 10, Windows Server 2016, GNU/Linux dhe OS X. Lëshimi i fundit 6.2 i lëshuar më 10 janar 2018. Skriptet e shkruara për versionet e mëparshme ka të ngjarë të funksionojnë në versionet e mëvonshme, por përcjellja e pasme mund të jetë problematike sepse PowerShell ka prezantuar një numër të madh cmdlet-sh të rinj gjatë viteve të zhvillimit. Mund të zbuloni versionin e guaskës së komandës të instaluar në kompjuter duke përdorur veçorinë PSVersion të ndryshores së integruar $PSVersionTable:

$PSVersionTable.PSVersion

Çfarë është Windows PowerShell dhe me çfarë hahet? Pjesa 1: Karakteristikat kryesore
Ju gjithashtu mund të përdorni cmdlet:

Get-Variable -Name PSVersionTable –ValueOnly

Çfarë është Windows PowerShell dhe me çfarë hahet? Pjesa 1: Karakteristikat kryesore
E njëjta gjë bëhet me cmdlet Get-Host. Në fakt, ka shumë opsione, por për t'i përdorur ato duhet të mësoni gjuhën e programimit PowerShell, të cilën do ta bëjmë në artikulli tjetër

Rezultatet e 

Microsoft ka arritur të krijojë një guaskë vërtet të fuqishme me një mjedis të integruar të përshtatshëm për zhvillimin e skripteve. Ai ndryshon nga mjetet e njohura për ne në botën e Unix nga integrimi i thellë me sistemet operative të familjes Windows, si dhe me softuerin për to dhe platformën .NET Core. PowerShell mund të quhet një guaskë e orientuar nga objekti sepse cmdlets dhe funksionet e përcaktuara nga përdoruesi kthejnë objekte ose vargje objektesh dhe mund t'i marrin ato si hyrje. Ne mendojmë se të gjithë administratorët e serverëve në Windows duhet të zotërojnë këtë mjet: ka kaluar koha kur ata mund të bënin pa linjën e komandës. Një guaskë konsole e avancuar është veçanërisht e nevojshme VPS-ja jonë me kosto të ulët që ekzekuton Windows Server Core, por kjo është një histori krejtësisht tjetër.

Çfarë është Windows PowerShell dhe me çfarë hahet? Pjesa 1: Karakteristikat kryesore

Vetëm përdoruesit e regjistruar mund të marrin pjesë në anketë. Hyni, te lutem

Cilat tema duhet të trajtohen së pari në artikujt vijues të serisë?

  • 53,2%Programimi në PowerShell123

  • 42,4%Funksionet dhe modulet e PowerShell98

  • 22,1%Si të nënshkruani skenarët tuaj?51

  • 12,1%Puna me depo përmes ofruesve (ofruesve)28

  • 57,6%Automatizimi i administrimit të kompjuterit me PowerShell133

  • 30,7%Menaxhimi i softuerit dhe futja e ekzekutuesve të PowerShell në produkte të palëve të treta71

231 përdorues votuan. 37 përdorues abstenuan.

Burimi: www.habr.com

Shto një koment