Unsa ang Windows PowerShell ug unsa ang gikaon niini? Bahin 1: Pangunang mga Bahin

Sa kasaysayan, ang command-line utilities sa Unix system mas maayo nga naugmad kaysa sa Windows, apan sa pag-abot sa bag-ong solusyon, ang sitwasyon nausab.

Gitugotan sa Windows PowerShell ang mga administrador sa sistema nga i-automate ang kadaghanan sa naandan nga mga buluhaton. Sa tabang niini, mahimo nimong usbon ang mga setting, paghunong ug pagsugod sa mga serbisyo, ug paghimo usab pagmentinar sa kadaghanan nga na-install nga mga aplikasyon. Sayop ang pagtan-aw sa asul nga bintana nga lain nga tighubad sa mando. Kini nga pamaagi wala magpakita sa diwa sa mga inobasyon nga gisugyot sa Microsoft. Sa tinuud, ang mga kapabilidad sa Windows PowerShell labi ka lapad: sa usa ka mubo nga serye sa mga artikulo among sulayan nga mahibal-an kung giunsa ang solusyon sa Microsoft nga lahi sa mga himan nga mas pamilyar namon.

Unsa ang Windows PowerShell ug unsa ang gikaon niini? Bahin 1: Pangunang mga Bahin

Yawe nga mga bahin 

Siyempre, ang Windows PowerShell sa panguna usa ka command shell nga adunay scripting language, orihinal nga gitukod sa .NET Framework ug sa ulahi sa .NET Core. Dili sama sa mga shell nga modawat ug mobalik sa text data, ang Windows PowerShell nagtrabaho uban sa .NET nga mga klase, nga adunay mga kabtangan ug pamaagi. Gitugotan ka sa PowerShell sa pagpadagan sa komon nga mga sugo ug naghatag usab kanimo og access sa COM, WMI, ug ADSI nga mga butang. Kini naggamit sa lain-laing mga storages, sama sa file system o sa Windows registry, alang sa access sa nga gitawag nga. mga tigsuplay. Angay nga matikdan ang posibilidad sa pag-embed sa PowerShell executable nga mga sangkap sa ubang mga aplikasyon aron ipatuman ang lainlaing mga operasyon, lakip. pinaagi sa graphical interface. Tinuod usab ang kabaliktaran: daghang mga aplikasyon sa Windows ang naghatag ug akses sa ilang mga interface sa pagdumala pinaagi sa PowerShell. 

Gitugotan ka sa Windows PowerShell nga:

  • 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 sa file system, Windows registry, certificate store, etc.

Shell ug development environment

Ang Windows PowerShell anaa sa duha ka porma: dugang sa console emulator nga adunay command shell, adunay usa ka integrated scripting environment (ISE). Aron ma-access ang interface sa command line, pilia lang ang angay nga shortcut gikan sa menu sa Windows o padagana ang powershell.exe gikan sa Run menu. Ang usa ka asul nga bintana makita sa screen, mamatikdan nga lahi sa mga kapabilidad gikan sa antediluvian cmd.exe. Adunay autocompletion ug uban pang mga bahin nga pamilyar sa mga tiggamit sa command shells alang sa mga sistema sa Unix.

Unsa ang Windows PowerShell ug unsa ang gikaon niini? Bahin 1: Pangunang mga Bahin

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.

Unsa ang Windows PowerShell ug unsa ang gikaon niini? Bahin 1: Pangunang mga Bahin
Ang Windows PowerShell ISE usa ka bug-os nga development environment nga adunay code editor nga nagsuporta sa mga tab ug syntax highlighting, command designer, built-in debugger, ug uban pang programming delights. Kung magsulat ka usa ka hyphen pagkahuman sa ngalan sa command sa editor sa kalikopan sa pag-uswag, madawat nimo ang tanan nga magamit nga mga parameter sa lista sa drop-down, nga nagpaila sa tipo. Mahimo nimong ilunsad ang PowerShell ISE pinaagi sa usa ka shortcut gikan sa menu sa sistema o gamit ang executable file nga powershell_ise.exe.

Unsa ang Windows PowerShell ug unsa ang gikaon niini? Bahin 1: Pangunang mga Bahin

Mga Cmdlet 

Sa Windows PowerShell, ang gitawag nga. mga cmdlet. Kini mga espesyal nga .NET nga mga klase nga naghatag ug lainlain nga gamit. Ginganlan sila sumala sa prinsipyo nga "Action-Object" (o "Verb-Noun, kung gusto nimo), ug ang hyphen-separated connective 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: "Ipakita-Tabang". Sa tinuud, kini usa ka analogue sa man command sa Unix system, ug ang mga manwal sa PowerShell kinahanglan nga hangyoon niining paagiha, ug dili pinaagi sa pagtawag sa mga cmdlet gamit ang –help o /? key.. Ayaw kalimti ang online nga dokumentasyon para sa PowerShell: Ang Microsoft adunay kini nga detalyado.

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. 

Ang Windows PowerShell cmdlet gi-grupo sa mga modules (NetTCPIP, Hyper-V, etc.), ug adunay Get-Command cmdlet para sa pagpangita pinaagi sa butang ug aksyon. Mahimo nimong ipakita ang tabang niini sama niini:

Get-Help Get-Command

Unsa ang Windows PowerShell ug unsa ang gikaon niini? Bahin 1: Pangunang mga Bahin

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 -Examples

Ang tabang sa Windows PowerShell gi-update gamit ang Update-Help cmdlet. Kung ang usa ka linya sa mga sugo mahimong taas kaayo, ang cmdlet nga mga argumento mahimong ibalhin sa sunod pinaagi sa pagsulat sa service character nga '' ug pagpindot sa Enter - ang paghuman lang sa pagsulat sa usa ka command sa usa ka linya ug ang pagpadayon sa lain dili molihok.

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.

Alang sa kanunay nga gigamit nga mga cmdlet ug eksternal nga mga gamit, ang Windows PowerShell adunay mugbo nga synonyms - mga alias. Pananglitan, ang dir usa ka alyas alang sa Get-ChildItem. Adunay usab mga analogue sa mga sugo gikan sa mga sistema sa Unix sa lista sa mga synonyms (ls, ps, ug uban pa), ug ang Get-Help cmdlet gitawag sa tabang nga command. Ang bug-os nga listahan sa mga synonyms mahimong tan-awon gamit ang Get-Alias ​​​​cmdlet:

Unsa ang Windows PowerShell ug unsa ang gikaon niini? Bahin 1: Pangunang mga Bahin

PowerShell Scripts, Functions, Modules, ug Language

Ang mga script sa Windows PowerShell gitipigan isip plain text files nga adunay .ps1 extension. Dili nimo kini mapadagan pinaagi sa doble nga pag-klik: kinahanglan nimo nga i-right-click aron maablihan ang menu sa konteksto ug pilia ang "Pagdagan sa PowerShell". Gikan sa console kinahanglan nimo nga ipiho ang tibuuk nga agianan sa script, o adto sa angay nga direktoryo ug isulat ang ngalan sa file. Ang pagpadagan sa mga script limitado usab sa polisiya sa sistema, ug aron masusi ang kasamtangang mga setting mahimo nimong gamiton ang Get-ExecutionPolicy cmdlet, nga ibalik ang usa sa mosunod nga mga bili:

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

Unsa ang Windows PowerShell ug unsa ang gikaon niini? Bahin 1: Pangunang mga Bahin
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 nga programming language, ang mga sugo nga ginganlan sumala sa parehas nga prinsipyo sama sa kaniadto nga gihisgutan nga cmdlet: "Action-Object" ("Verb-Noun"). Ang panguna nga katuyoan niini mao ang pag-automate sa mga buluhaton sa administrasyon, apan kini usa ka hingpit nga gihubad nga sinultian nga adunay tanan nga kinahanglan nga mga pagtukod: conditional jump, loops, variables, arrays, objects, error handling, etc. Ang bisan unsang text editor haom alang sa pagsulat sa mga script, apan labing sayon ​​​​ang pagpadagan sa Windows PowerShell ISE.

Mahimo nimong ipasa ang mga parameter sa script, himuon kini nga mandatory, ug itakda usab ang mga default nga kantidad. Gitugotan ka usab sa Windows PowerShell sa paghimo ug pagtawag sa mga function sa parehas nga paagi sa mga cmdlet, gamit ang Function construct ug curly braces. Ang script nga adunay mga function gitawag ug module ug adunay .psm1 extension. Ang mga module kinahanglan nga tipigan sa mga direktoryo nga gihubit sa PowerShell environment variables. Mahimo nimo kining tan-awon gamit ang mosunod nga sugo:

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

Mga magtatambag

Sa kataposang pananglitan, migamit kami ug disenyo nga pamilyar sa mga tiggamit sa mga kabhang sa Unix. Sa Windows PowerShell, ang bertikal nga bar nagtugot usab kanimo nga ipasa ang output sa usa ka command ngadto sa input sa lain, apan adunay usa ka mahinungdanong kalainan sa pagpatuman sa pipeline: wala na kami maghisgot bahin sa usa ka hugpong sa mga karakter o pipila ka teksto. Ang mga built-in nga cmdlet o mga function nga gitakda sa user nagbalik sa mga butang o arrays sa mga butang, ug mahimo usab nga makadawat niini isip input. Sama sa Bourne shell ug sa daghang mga manununod niini, ang PowerShell naggamit ug pipeline aron pasimplehon ang mga komplikadong buluhaton.

Ang pinakasimple nga pananglitan sa usa ka pipeline ingon niini:

Get-Service | Sort-Object -property Status

Unsa ang Windows PowerShell ug unsa ang gikaon niini? Bahin 1: Pangunang mga Bahin
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. 

Kung gusto, mahimo nimong ipadayon ang kadena ug ipasa ang resulta sa Sort-Object sa lain nga cmdlet (kini ipatuman gikan sa wala hangtod sa tuo). Pinaagi sa dalan, ang mga tiggamit sa Windows usab adunay access sa disenyo nga pamilyar sa tanan nga Unixoids alang sa panid-sa-panid nga output: 

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

Nagdagan nga mga buluhaton sa background 

Kanunay nga gikinahanglan ang pagpadagan sa usa ka piho nga sugo sa background aron dili maghulat sa resulta sa pagpatuman niini sa sesyon sa kabhang. Ang Windows PowerShell adunay daghang mga cmdlet alang niini nga sitwasyon:

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}

Unsa ang Windows PowerShell ug unsa ang gikaon niini? Bahin 1: Pangunang mga Bahin
Ang mga buluhaton sa background sa Windows PowerShell mahimong mamanipula pinaagi sa pagkahibalo sa ilang mga ngalan. Una, atong tun-an unsaon sa pagpakita kanila:

Get-Job

Unsa ang Windows PowerShell ug unsa ang gikaon niini? Bahin 1: Pangunang mga Bahin
Karon ipakita nato ang resulta sa Job1:

Receive-Job Job1 | more

Unsa ang Windows PowerShell ug unsa ang gikaon niini? Bahin 1: Pangunang mga Bahin
Kini yano ra.

Pagpatuman sa layo nga command

Gitugotan ka sa Windows PowerShell sa pagpadagan sa mga command ug script dili lamang sa lokal, apan usab sa usa ka hilit nga kompyuter ug bisan sa usa ka tibuuk nga grupo sa mga makina. Adunay pipila ka mga paagi sa pagbuhat niini:

  • Daghang mga cmdlet adunay parameter -ComputerName, apan niining paagiha dili mahimo, pananglitan, ang paghimo sa usa ka conveyor;
  • Cmdlet Enter-PSSession nagtugot kanimo sa paghimo sa usa ka interactive nga sesyon sa usa ka hilit nga makina; 
  • Paggamit sa usa ka cmdlet Invoke-Command Mahimo nimong ipadagan ang mga mando o mga script sa usa o daghang mga hilit nga kompyuter.

Mga bersyon sa PowerShell

Sukad sa una nga pagpagawas niini kaniadtong 2006, ang PowerShell nagbag-o pag-ayo. Ang himan magamit alang sa daghang mga sistema nga nagdagan sa lainlaing mga platform sa hardware (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 ug OS X. Ang pinakabag-o nga release 6.2 gipagawas niadtong Enero 10, 2018. Ang mga script nga gisulat alang sa naunang mga bersyon lagmit nga magamit sa ulahi, apan ang mga problema mahimong motumaw sa usa ka balikbalik nga pagbalhin, tungod kay sa mga tuig sa pag-uswag, daghang bag-ong cmdlet ang nagpakita sa PowerShell. Mahibal-an nimo ang bersyon sa command shell nga gi-install sa imong computer gamit ang PSVersion property sa $PSVersionTable built-in variable:

$PSVersionTable.PSVersion

Unsa ang Windows PowerShell ug unsa ang gikaon niini? Bahin 1: Pangunang mga Bahin
Mahimo usab nimo gamiton ang cmdlet:

Get-Variable -Name PSVersionTable –ValueOnly

Unsa ang Windows PowerShell ug unsa ang gikaon niini? Bahin 1: Pangunang mga Bahin
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 sunod nga artikulo

Mga resulta 

Ang Microsoft nakahimo sa paghimo sa usa ka tinuod nga gamhanan nga command shell nga adunay usa ka kombenyente nga integrated nga palibot alang sa pagpalambo sa mga script. Ang nagpalahi niini gikan sa mga himan nga nahibal-an namon sa Unix nga kalibutan mao ang lawom nga paghiusa sa mga operating system sa pamilyang Windows, ingon man sa software alang kanila ug sa .NET Core nga plataporma. Ang PowerShell mahimong tawgon nga object-oriented shell tungod kay ang mga cmdlet ug user-defined functions mobalik sa mga butang o arrays sa mga butang ug makadawat niini isip input. Naghunahuna kami nga ang tanan nga mga tagdumala sa Windows server kinahanglan nga manag-iya niini nga himan: ang oras milabay kung kanus-a nila mahimo kung wala ang linya sa mando. Ang usa ka advanced console shell ilabinang gikinahanglan sa among barato nga VPS nga nagpadagan sa Windows Server Core, apan kana usa ka hingpit nga lahi nga istorya.

Unsa ang Windows PowerShell ug unsa ang gikaon niini? Bahin 1: Pangunang mga Bahin

Ang mga rehistradong tiggamit lamang ang makaapil sa survey. Sign in, 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

Idugang sa usa ka comment