Sa kasaysayan, ang mga command line utilities sa mga sistema sa Unix mas naugmad kaysa sa kaniadto. Windowsapan, sa pag-abot sa usa ka bag-ong solusyon, ang sitwasyon nausab.
Windows Ang PowerShell nagtugot sa mga administrador sa sistema sa pag-automate sa kadaghanan sa mga rutina nga buluhaton. Mahimo kini gamiton sa pag-usab sa mga setting, paghunong ug pagsugod sa mga serbisyo, ug pagmentinar sa kadaghanan sa mga na-install nga aplikasyon. Ang pagtratar sa asul nga bintana isip usa lang ka laing command interpreter makapahisalaag. Kini nga pamaagi wala makakuha sa esensya sa mga inobasyon sa Microsoft. Sa tinuud, ang mga kapabilidad Windows Mas lapad ang PowerShell: niining mubo nga serye sa mga artikulo, atong paningkamutan nga masabtan kon unsa ang kalainan sa solusyon sa Microsoft gikan sa mga himan nga mas pamilyar na nato.
Yawe nga mga bahin
Alangan Windows Ang PowerShell usa ka command shell nga adunay scripting language, nga orihinal nga gitukod sa .NET Framework ug sa ulahi sa .NET Core. Dili sama sa mga shell nga modawat ug mobalik og text data, Windows Ang PowerShell mogana uban sa mga klase sa .NET, nga adunay mga kabtangan ug mga pamaagi. Ang PowerShell motugot kanimo sa pagpadagan sa regular nga mga sugo ug mohatag usab og access sa mga butang sa COM, WMI, ug ADSI. Kini mogamit og lain-laing mga kapanguhaan sa pagtipig, sama sa file system ug registry. Windows, nga ma-access pinaagi sa gitawag nga mga provider. Angayan nga matikdan ang abilidad sa pag-embed sa mga executable component sa PowerShell ngadto sa ubang mga aplikasyon aron mahimo ang lainlaing mga operasyon, lakip ang pinaagi sa usa ka graphical interface. Ang sukwahi tinuod usab: daghang mga aplikasyon para sa Windows paghatag og access sa ilang mga management interface pinaagi sa PowerShell.
Windows Ang PowerShell nagtugot kanimo sa:
- Usba ang mga setting sa operating system;
- Pagdumala sa mga serbisyo ug proseso;
- I-configure ang mga tahas ug sangkap sa server;
- Pag-instalar sa software;
- Pagdumala sa na-install nga software pinaagi sa mga espesyal nga interface;
- I-embed ang mga executable nga sangkap sa mga programa sa ikatulo nga partido;
- Paghimo og mga script aron ma-automate ang mga buluhaton sa administrasyon;
- Pagtrabaho uban sa file system, registry Windows, pagtipig sa sertipiko, ug uban pa.
Shell ug development environment
Adunay Windows Ang PowerShell adunay duha ka porma: dugang sa console emulator ug command shell, aduna usay Integrated Scripting Environment (ISE). Aron maka-access sa command line interface, pilia lang ang angay nga shortcut gikan sa menu. Windows O ilunsad ang powershell.exe gikan sa Run menu. Usa ka asul nga bintana ang makita, nga lahi kaayo ang mga kapabilidad gikan sa karaang cmd.exe. Kini adunay autocompletion ug uban pang mga feature nga pamilyar sa mga tiggamit sa Unix command shells.

Aron magamit ang kabhang kinahanglan nimong hinumdoman ang pipila ka mga shortcut sa keyboard:
- Ang pataas ug paubos nga mga udyong nag-scroll sa kasaysayan aron masubli ang nauna nang gi-type nga mga sugo;
- Ang tuo nga udyong sa katapusan sa linya nag-retype sa miaging command character pinaagi sa karakter;
- Ang Ctrl+Home nagtangtang sa gi-type nga teksto gikan sa posisyon sa cursor hangtod sa sinugdanan sa linya;
- Ang Ctrl+End nagtangtang sa teksto gikan sa cursor hangtod sa katapusan sa linya.
Ang F7 nagpakita sa usa ka bintana nga adunay gisulod nga mga sugo ug nagtugot kanimo sa pagpili sa usa niini. Ang console naglihok usab alang sa pagpili sa teksto gamit ang mouse, pagkopya-paste, pagpoposisyon sa cursor, pagtangtang, backspace - tanan nga among gihigugma.

Windows Ang PowerShell ISE usa ka kompleto nga development environment nga adunay tabbed code editor nga adunay syntax highlighting, command designer, built-in debugger, ug uban pang mga gamit sa programming. Kung mag-type ka og hyphen human sa command name sa IDE editor, makakita ka og drop-down list sa tanang available nga parameters, uban sa ilang type. Mahimo nimong ilunsad ang PowerShell ISE pinaagi sa shortcut sa system menu o pinaagi sa pagpadagan sa powershell_ise.exe executable.

Mga Cmdlet
В Windows Ang PowerShell karon adunay gitawag nga mga cmdlet. Kini mga espesyalisadong .NET class nga nagpatuman sa lain-laing mga gimbuhaton. Ginganlan kini gamit ang prinsipyo sa Action-Object (o Verb-Noun, kung gusto nimo), ug ang hyphenated pairing susama sa predicate ug subject sa natural nga mga sentence sa pinulongan. Pananglitan, ang Get-Help literal nga nagpasabut nga "Get-Help" o, sa konteksto sa PowerShell, "Show-Help." Sa panguna, kini katumbas sa man command sa mga sistema sa Unix, ug ang mga manwal sa PowerShell kinahanglan nga ma-access niining paagiha, imbes nga pinaagi sa paggamit sa mga cmdlet gamit ang --help o /? switch. Ayaw kalimti ang online nga dokumentasyon sa PowerShell: Ang Microsoft adunay detalyado nga usa.
Dugang sa Pagkuha, ang mga cmdlet naggamit usab sa ubang mga berbo aron ipasabut ang mga aksyon (ug dili lamang mga berbo, estrikto nga pagsulti). Sa lista sa ubos naghatag kami pipila ka mga pananglitan:
Add - pagdugang;
Clear - limpyo;
Enable - i-on;
Disable - pagpalong;
New - paghimo;
Remove - pagtangtang;
Set - pangutana;
Start — dagan;
Stop - hunong;
Export - eksport;
Import - import.
Adunay sistema, user ug opsyonal nga mga cmdlet: isip resulta sa pagpatuman, silang tanan nagbalik sa usa ka butang o usa ka han-ay sa mga butang. Dili sila case sensitive, i.e. Gikan sa punto sa panglantaw sa command interpreter, walay kalainan tali sa Get-Help ug get-help. Ang simbolo nga ';' gigamit alang sa pagbulag, apan gikinahanglan lamang kung daghang mga cmdlet ang ipatuman sa usa ka linya.
Mga Cmdlet Windows Ang PowerShell gigrupo ngadto sa mga module (NetTCPIP, Hyper-V, ug uban pa), ug ang Get-Command cmdlet gigamit sa pagpangita og mga butang ug mga aksyon. Mahimo nimong ipakita ang tabang alang niini sama niini:
Get-Help Get-Command 
Sa kasagaran, ang sugo nagpakita sa dali nga tabang, apan ang mga parameter (mga argumento) gipasa ngadto sa mga cmdlet kon gikinahanglan. Uban sa ilang tabang, mahimo nimo, pananglitan, makakuha og detalyado nga (-Detalyadong parameter) o kompleto (-Full) nga tabang, ingon man mga pananglitan sa pagpakita (-Mga pananglitan sa parameter):
Get-Help Get-Command -ExamplesTabang sa Windows Ang PowerShell gi-update gamit ang Update-Help cmdlet. Kon ang command line mahimong taas kaayo, ang mga argumento sa cmdlet mahimong ibalhin sa sunod nga linya pinaagi sa pag-type sa simbolo nga "`" ug pagpindot sa Enter—dili nimo basta-basta mahuman ang pag-type sa command sa usa ka linya ug magpadayon sa lain.
Sa ubos mao ang pipila ka mga pananglitan sa kasagaran nga mga cmdlet:
Get-Process - ipakita ang mga proseso nga nagdagan sa sistema;
Get-Service - ipakita ang mga serbisyo ug ang ilang kahimtang;
Get-Content - ipakita ang mga sulod sa file.
Para sa kanunay gigamit nga mga cmdlet ug mga external utilities sa Windows Ang PowerShell adunay mubo nga mga sinonimo nga gitawag og mga alias. Pananglitan, ang dir usa ka alias para sa Get-ChildItem. Ang lista sa mga sinonimo naglakip usab sa mga sugo nga sama sa Unix (ls, ps, ug uban pa), ug ang Get-Help cmdlet gigamit sa sugo nga help. Ang kompletong lista sa mga sinonimo makita gamit ang Get-Alias cmdlet:

PowerShell Scripts, Functions, Modules, ug Language
Mga script Windows Ang mga script sa PowerShell gitipigan isip mga plain text file nga adunay .ps1 extension. Dili kini ma-launch pinaagi sa pag-double click; kinahanglan ka nga mag-right-click aron makita ang context menu ug pilion ang "Run with PowerShell." Gikan sa console, kinahanglan nimo nga ipiho ang kompletong path sa script o moadto sa angay nga directory ug i-type ang file name. Ang pagpadagan sa mga script gipugngan usab sa system policy. Aron masusi ang kasamtangang mga setting, mahimo nimong gamiton ang Get-ExecutionPolicy cmdlet, nga mobalik sa usa sa mosunod nga mga value:
Restricted — ang pagpadagan sa mga script gidili (sa default);
AllSigned — Ang mga script lang nga gipirmahan sa usa ka kasaligan nga developer ang gitugotan nga modagan;
RemoteSigned - Gitugotan nga modagan nga gipirmahan ug kaugalingon nga mga script;
Unrestricted - Gitugotan sa pagpadagan sa bisan unsang mga script.
Ang tagdumala adunay duha ka kapilian. Ang labing luwas naglakip sa pagpirma sa mga script, apan kini usa ka seryoso nga salamangka - atong atubangon kini sa mosunod nga mga artikulo. Karon atong kuhaon ang dalan nga labing gamay nga pagsukol ug usbon ang palisiya:
Set-ExecutionPolicy RemoteSigned 
Aron mahimo kini, kinahanglan nimo nga modagan ang PowerShell ingon usa ka administrador, bisan kung mahimo nimo gamiton ang usa ka espesyal nga parameter aron mabag-o ang palisiya alang sa karon nga tiggamit.
Ang mga script gisulat sa usa ka object-oriented programming language, kansang mga sugo ginganlan sumala sa parehas nga prinsipyo sa mga cmdlet nga gihisgutan ganina: "Action-Object" ("Verb-Noun"). Ang panguna nga katuyoan niini mao ang pag-automate sa mga buluhaton sa administratibo, apan kini usa ka hingpit nga gihubad nga pinulongan nga naglakip sa tanan nga kinahanglanon nga mga construct: conditional branch, loops, variables, arrays, objects, error handling, ug uban pa. Bisan unsang text editor angay alang sa pagsulat og mga script, apan kini labing kombenyente nga ipadagan. Windows PowerShell ISE.
Mahimo nimong ipasa ang mga parameter sa script, himuon kini nga mandatory, ug magtakda usab og mga default nga kantidad. Dugang pa, Windows Ang PowerShell nagtugot kanimo sa paghimo og mga function ug pagtawag niini sama sa mga cmdlet, gamit ang Function construct ug curly braces. Ang script nga adunay mga function gitawag og module ug adunay .psm1 extension. Ang mga module kinahanglan nga tipigan sa mga direktoryo nga gihubit sa PowerShell environment variables. Mahimo nimo kini tan-awon gamit ang mosunod nga sugo:
Get-ChildItem Env:PSModulePath | Format-Table -AutoSizeMga magtatambag
Sa katapusang ehemplo, migamit kita og konstruksyon nga pamilyar sa mga tiggamit sa Unix shells. Windows Ang bertikal nga bar sa PowerShell nagtugot usab kanimo sa pag-pipe sa output sa usa ka sugo ngadto sa input sa lain, apan adunay dakong kalainan sa implementasyon sa pipeline: dili na kini usa ka string sa mga karakter o teksto. Ang built-in nga mga cmdlet ug mga function nga gihubit sa tiggamit nagbalik sa mga butang o array sa mga butang ug makadawat usab niini isip input. Sama sa Bourne shell ug sa daghang mga manununod niini, gigamit sa PowerShell ang pipeline aron pasimplehon ang mga komplikado nga buluhaton.
Ang pinakasimple nga pananglitan sa usa ka pipeline ingon niini:
Get-Service | Sort-Object -property Status 
Ang Get-Service cmdlet gipatuman una, ug dayon ang tanan nga mga serbisyo nga madawat niini ipasa ngadto sa Sort-Object cmdlet para sa paghan-ay pinaagi sa Status property. Asa nga argumento ang resulta sa miaging seksyon sa pipeline nga gipasa depende sa matang niini - kasagaran kini mao ang InputObject. Kini nga isyu pagahisgotan sa mas detalyado sa usa ka artikulo nga gipahinungod sa PowerShell programming language.
Kon gusto, ang kadena mahimong palapdan ug ang resulta sa Sort-Object mahimong ipasa ngadto sa laing cmdlet (kini ipatuman gikan sa wala ngadto sa tuo). Ug usab, ang mga tiggamit Windows Ang konstruksyon sa pagination, nga pamilyar sa tanang tiggamit sa Unix, anaa usab:
Get-Service | Sort-Object -property Status | moreNagdagan nga mga buluhaton sa background
Kasagaran gikinahanglan ang pagpadagan sa usa ka piho nga sugo sa background, aron dili maghulat sa resulta sa pagpatuman niini sa sesyon sa shell. Windows Ang PowerShell adunay daghang mga cmdlet para niini nga kaso:
Start-Job - paglansad sa usa ka buluhaton sa background;
Stop-Job - paghunong sa usa ka buluhaton sa background;
Get-Job - pagtan-aw sa lista sa mga buluhaton sa background;
Receive-Job — pagtan-aw sa resulta sa usa ka buluhaton sa background;
Remove-Job — pagtangtang sa usa ka buluhaton sa background;
Wait-Job - pagbalhin sa buluhaton sa background balik sa console.
Aron magsugod sa usa ka buluhaton sa background, among gigamit ang Start-Job cmdlet ug ipiho ang usa ka command o set sa mga sugo sa mga curly braces:
Start-Job {Get-Service} 
Mga buluhaton sa background sa Windows Mahimong manipulahon ang PowerShell pinaagi sa pagkahibalo sa ilang mga ngalan. Sugdan nato pinaagi sa pagkat-on unsaon kini pagpakita:
Get-Job 
Karon ipakita nato ang resulta sa Job1:
Receive-Job Job1 | more 
Kini yano ra.
Pagpatuman sa layo nga command
Windows Ang PowerShell nagtugot kanimo sa pagpadagan sa mga sugo ug mga script dili lamang sa lokal nga kompyuter, apan lakip usab sa mga lagyong kompyuter ug bisan sa tibuok nga grupo sa mga makina. Adunay daghang mga paagi aron mahimo kini:
- Daghang mga cmdlet adunay parameter
-ComputerName, apan niining paagiha dili mahimo, pananglitan, ang paghimo sa usa ka conveyor; - Cmdlet
Enter-PSSessionnagtugot kanimo sa paghimo sa usa ka interactive nga sesyon sa usa ka hilit nga makina; - Paggamit sa usa ka cmdlet
Invoke-CommandMahimo nimong ipadagan ang mga mando o mga script sa usa o daghang mga hilit nga kompyuter.
Mga bersyon sa PowerShell
Ang PowerShell miuswag pag-ayo sukad sa unang pagpagawas niini niadtong 2006. Kini anaa alang sa lain-laing mga sistema nga nagdagan sa lain-laing mga plataporma sa hardware (x86, x86-64, Itanium, ARM): Windows xp, Windows Server 2003, Windows Tan-awa, 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 ug OS X. Ang pinakabag-ong bersyon, ang 6.2, gipagawas niadtong Enero 10, 2018. Ang mga script nga gisulat para sa mga naunang bersyon lagmit mogana sa mga naunang bersyon, apan ang backporting mahimong problema, tungod kay ang PowerShell nakadugang ug daghang bag-ong mga cmdlet sa daghang katuigan. Mahimo nimong mahibal-an ang bersyon sa command shell nga na-install sa imong kompyuter gamit ang PSVersion property sa built-in nga $PSVersionTable variable:
$PSVersionTable.PSVersion 
Mahimo usab nimo gamiton ang cmdlet:
Get-Variable -Name PSVersionTable –ValueOnly 
Ang parehas nga butang mahimo gamit ang Get-Host cmdlet. Sa tinuud, adunay daghang mga kapilian, apan aron magamit kini kinahanglan nimo nga makat-on sa PowerShell programming language, nga mao ang among buhaton sa .
Mga resulta
Ang Microsoft nakahimo og usa ka gamhanang command shell nga adunay kombenyente nga integrated environment para sa paghimo og script. Ang nakapahimo niini nga lahi sa mga himan nga naandan na nato sa kalibutan sa Unix mao ang lawom nga integrasyon niini sa mga operating system sa pamilya. Windows, ingon man ang software para nila ug ang .NET Core platform. Ang PowerShell matawag nga object-oriented shell kay ang mga cmdlet ug user-defined functions mo-return og mga object o array sa mga object ug makadawat niini isip input. Nagtuo kami nga kini nga himan kinahanglanon para sa tanang server administrator. Windows: milabay na ang panahon nga kaya na nila nga wala ang command line. Ang usa ka abante nga console shell labi na nga gikinahanglan sa , apan kana usa ka hingpit nga lahi nga istorya.
Ang mga rehistradong tiggamit lamang ang makaapil sa survey. , walay sapayan.
Unsang mga topiko ang kinahanglang hisgotan una sa sunod nga mga artikulo sa serye?
53,2%Pagprograma sa PowerShell123
42,4%PowerShell98 Function ug Modules
22,1%Unsaon pagpirma sa imong kaugalingong mga script?51
12,1%Pagtrabaho sa mga storage pinaagi sa mga provider28
57,6%I-automate ang pagdumala sa kompyuter gamit ang PowerShell133
30,7%Pagdumala sa software ug pag-embed sa mga executable sa PowerShell ngadto sa mga third-party nga produkto71
231 ka tiggamit ang nagboto. 37 ka tiggamit ang nag-abstain.
Source: www.habr.com
