Chii chinonzi Windows PowerShell uye inodyiwa nei? Chikamu 1: Zvinhu Zvikuru

Nhoroondo, mirairo-mutsara zvinoshandiswa paUnix masisitimu zvakagadziridzwa zviri nani pane paWindows, asi nekuuya kwemhinduro nyowani, mamiriro achinja.

Windows PowerShell inobvumira vatariri vehurongwa kuti vagadzirise mabasa mazhinji enguva dzose. Nayo, unogona kushandura marongero, kumisa uye kutanga masevhisi, uye zvakare ita kugadzirisa pane akawanda akaiswa maapplication. Zvingave zvakaipa kuona hwindo rebhuruu semumwe muturikiri wekuraira. Iyi nzira hairatidze kukosha kwezvitsva zvakakurudzirwa neMicrosoft. Muchokwadi, mikana yeWindows PowerShell yakawedzera kuwanda: mune pfupi nhevedzano yezvinyorwa, isu tichaedza kufunga kuti mhinduro yeMicrosoft inosiyana sei kubva kune zvishandiso zvatinonyanya kujaira.

Chii chinonzi Windows PowerShell uye inodyiwa nei? Chikamu 1: Zvinhu Zvikuru

Zvinhu zvakakosha 

Hongu, Windows PowerShell inonyanya kuve scripting shell, yakatanga kuvakwa paNET Framework uye gare gare pa.NET Core. Kusiyana nemateko anobvuma nekudzorera zvinyorwa zvemashoko, Windows PowerShell inoshanda ne.NET makirasi ane zvivakwa uye nzira. PowerShell inokutendera kuti umhanye zvakajairika mirairo uye zvakare inokupa iwe kupinda kune COM, WMI, uye ADSI zvinhu. Inoshandisa zvakasiyana-siyana zvekuchengetedza, senge faira system kana Windows registry, yekuwana iyo inonzi. providers. Izvo zvakakosha kucherechedza mukana wekumisikidza PowerShell zvinogoneka zvikamu mune mamwe maapplication kuita akasiyana mashandiro, kusanganisira. kuburikidza ne graphical interface. Zvakasiyana ndezvechokwadi zvakare: akawanda maWindows maapplication anopa mukana kune avo manejimendi interfaces kuburikidza nePowerShell. 

Windows PowerShell inokutendera kuti:

  • Shandura masisitimu ekushandisa;
  • Tonga masevhisi uye maitiro;
  • Rongedza sevha mabasa uye zvikamu;
  • Isa software;
  • Manage software yakaiswa kuburikidza akakosha interfaces;
  • Embed executable zvikamu muzvirongwa zvechitatu-bato;
  • Gadzira zvinyorwa kuti uite otomatiki mabasa ekutonga;
  • Shanda neiyo faira system, Windows registry, chitoro chezvitupa, nezvimwe.

Shell uye nzvimbo yekusimudzira

Kune Windows PowerShell mumhando mbiri: mukuwedzera kune iyo console emulator ine goko rekuraira, kune Yakabatanidzwa Scripting Nzvimbo (ISE). Kuti uwane iyo yekuraira mutsara interface, ingosarudza nzira yekudimbudzira yakakodzera kubva kuWindows menyu kana kumhanya powershell.exe kubva kuRun menyu. Iwindo rebhuruu richaonekwa pachiratidziro, zvinooneka zvakasiyana mukugona kubva kune antediluvian cmd.exe. Kune autocompletion uye zvimwe zvinojairika kune vashandisi vemirairo magomba eUnix masisitimu.

Chii chinonzi Windows PowerShell uye inodyiwa nei? Chikamu 1: Zvinhu Zvikuru

Kuti ushande negoko, unofanirwa kuyeuka mamwe mapfupi ekhibhodi:

  • Miseve yekumusoro nepasi inotenderera munhoroondo kudzokorora mirairo yakambotaipa;
  • Museve wekurudyi uri kumagumo emutsara unonyora zvekare mutsara wekuraira wapfuura nemavara;
  • Ctrl+Kumba inodzima mavara akataipa kubva pachinzvimbo checursor kusvika pakutanga kwemutsara;
  • Ctrl + End inobvisa zvinyorwa kubva kune chitubu kusvika kumagumo emutsara.

F7 inoratidza hwindo rine mirairo yakanyorwa uye inokubvumira kusarudza imwe yacho. Iyo console inoshandawo nekusarudza mavara negonzo, kopi-namira, cursor chinzvimbo, kudzima, backspace - zvese zvatinoda.

Chii chinonzi Windows PowerShell uye inodyiwa nei? Chikamu 1: Zvinhu Zvikuru
Windows PowerShell ISE inzvimbo yakakwana yekusimudzira ine tabbed uye syntax-yakaratidza kodhi kodhi mupepeti, muvaki wekuraira, akavakirwa-mukati debugger, uye mamwe mafaro ekuronga. Kana iwe ukanyora hyphen mushure mezita rekuraira mune yekuvandudza nharaunda mupepeti, iwe unowana ese aripo sarudzo mune yekudonha-pasi runyorwa nechiratidzo cherudzi. Unogona kuvhura PowerShell ISE kungave kuburikidza nechidimbu kubva kune system menyu, kana kushandisa iyo inogadziriswa faira powershell_ise.exe.

Chii chinonzi Windows PowerShell uye inodyiwa nei? Chikamu 1: Zvinhu Zvikuru

Cmdlets 

MuWindows PowerShell, iyo inonzi. cmdlets. Aya makirasi .NET makirasi anopa zvakasiyana-siyana zvekushanda. Vanodanwa zita rekuti Action-Object (kana Verb-Noun, kana uchida), uye hyphen-separated link inofanana nepredicate uye musoro mumitauro yemutauro wechisikigo. Semuyenzaniso, Get-Rubatsiro zvinoreva kuti "Tora-Rubatsiro", kana mune PowerShell mamiriro: "Show-Rubatsiro". Muchokwadi, iyi ndiyo analogue yemurume anoraira muUnix masisitimu, uye zvinyorwa muPowerShell zvinofanirwa kukumbirwa nenzira iyi, uye kwete nekufonera cmdlets ne--help kana /? kiyi.. Usakanganwa nezve online PowerShell zvinyorwa: Microsoft ine iyo yakadzama.

Pamusoro peKuwana, cmdlets anoshandisa mamwe zviito kuratidza zviito (uye kwete chete zviito, kunyatsotaura). Muchinyorwa chiri pasi apa tinopa mimwe mienzaniso:

Add - kuwedzera;
Clear - zvakajeka;
Enable - batidza;
Disable - kudzima;
New - kugadzira;
Remove - delete;
Set - bvunza;
Start - run;
Stop - stop;
Export - kunze;
Import - import.

Kune sisitimu, mushandisi uye sarudzo cmdlets: semhedzisiro yekuuraya, vese vanodzosera chinhu kana ruzhinji rwezvinhu. Ivo havasi nyaya inonzwisisika, i.e. kubva pamaonero emuturikiri wemirairo, hapana musiyano pakati peKubatsira nekuwana-rubatsiro. Chimiro ';' chinoshandiswa kupatsanura, asi chinosungirwa kuchiisa chete kana akati wandei cmdlets akaurayiwa pamutsetse mumwechete. 

Windows PowerShell cmdlets akaiswa mumamodules (NetTCPIP, Hyper-V, nezvimwewo), uye kune Get-Command cmdlet yekutsvaga nechinhu uye chiito. Unogona kuratidza rubatsiro pazviri sezvizvi:

Get-Help Get-Command

Chii chinonzi Windows PowerShell uye inodyiwa nei? Chikamu 1: Zvinhu Zvikuru

Nekutadza, iwo murairo unoratidza rubatsiro rupfupi, asi paramita (makakatanwa) anopfuudzwa kune cmdlets sezvinodiwa. Nerubatsiro rwavo, unogona, semuenzaniso, kuwana zvakadzama (parameter -Detailed) kana yakazara (parameter -Yakazara) rubatsiro, pamwe nekuratidza mienzaniso (parameter -Mienzaniso):

Get-Help Get-Command -Examples

Rubatsiro muWindows PowerShell inogadziridzwa neKugadziridza-Rubatsiro cmdlet. Kana mutsara wekuraira ukaita kunge wakareba, iwo cmdlet nharo dzinogona kutamirwa kune inotevera nekunyora sevhisi hunhu '''' uye nekudzvanya Enter - kungopedza kunyora murairo pane mumwe mutsara uye kuenderera kune mumwe hazvishande.

Heano mimwe mienzaniso yeakajairika cmdlets: 

Get-Process - ratidza maitiro ekumhanya muhurongwa;
Get-Service - kuratidza masevhisi uye chimiro chavo;
Get-Content - ratidza zviri mukati mefaira.

Kune anowanzo shandiswa cmdlets uye zvekunze zvekushandisa, Windows PowerShell ine mapfupi anoreva zvakafanana - aliases (kubva kuChirungu. Alias). Semuenzaniso, dir is alias reGet-ChildItem. Rondedzero yemasinonimimi inosanganisirawo analogue emirairo kubva kuUnix masisitimu (ls, ps, nezvimwewo), uye iyo Get-Rubatsiro cmdlet inodaidzwa nerubatsiro kuraira. Rondedzero yakazara yemasinonimi inogona kutariswa uchishandisa iyo Get-Alias ​​​​cmdlet:

Chii chinonzi Windows PowerShell uye inodyiwa nei? Chikamu 1: Zvinhu Zvikuru

Zvinyorwa, Mabasa, Modules, uye PowerShell Mutauro

Manyoro eWindows PowerShell anochengetwa semafaira emavara akajeka ane .ps1 extension. Iwe haugone kuvavhura nekudzvanya-kaviri: unofanirwa kudzvanya-kurudyi kuti ufonere kumusoro menyu uye sarudza iyo "Mhanya muPowerShell" chinhu. Kubva pane koni, iwe uchafanirwa kutsanangura nzira yakazara kune script, kana kuenda kune yakakodzera dhairekitori uye nyora zita refaira. Running scripts zvakare inoganhurwa nehurongwa hwehurongwa, uye kutarisa marongero azvino, unogona kushandisa Get-ExecutionPolicy cmdlet, iyo inodzosa imwe yeanotevera maitiro:

Restricted - kuvhura zvinyorwa kwakadzimwa (nekusarudzika);
AllSigned - chete kutangwa kwezvinyorwa zvakasainwa nemugadziri akavimbika kunobvumidzwa;
RemoteSigned - inobvumidzwa kumhanya yakasainwa uye neyako zvinyorwa;
Unrestricted - inobvumirwa kumhanyisa chero zvinyorwa.

Mutungamiri ane zvingasarudzwa zviviri. Kunyanya kuchengetedzeka kunosanganisira kusaina zvinyorwa, asi uhu huroyi hwakakomba - tichabata nazvo mune zvinotevera zvinyorwa. Zvino ngatitorei nzira yekushomeka kushoma uye tichinje mutemo:

Set-ExecutionPolicy RemoteSigned

Chii chinonzi Windows PowerShell uye inodyiwa nei? Chikamu 1: Zvinhu Zvikuru
PowerShell inozoda kumhanyirwa semaneja kuita izvi, kunyangwe iwe uchigona kushandura mutemo weazvino mushandisi ane yakakosha kuseta.

Zvinyorwa zvakanyorwa mumutauro wechirongwa chechinhu-chakanangana nechinhu, mirairo yacho yakatumidzwa zvinoenderana nemusimboti wakafanana necmdlets yakatariswa kare: "Action-Object" ("Verb-Noun"). Chinangwa chayo chikuru ndechekuita otomatiki mabasa ekutonga, asi iwo mutauro wakadudzirwa wakazara une zvese zvinodiwa zvekuvaka: kusvetuka kwemamiriro, zvishwe, zvinosiyana, arrays, zvinhu, kukanganisa kubata, nezvimwe. Chero mameseji edhita akanakira kunyora, asi zvakanakisa kumhanyisa Windows PowerShell ISE.

Iwe unogona kupfuudza paramita kune script, ita kuti idiwe, uye kuseta default tsika. Uye zvakare, Windows PowerShell inobvumidza iwe kugadzira uye kufonera mabasa nenzira imwechete secmdlets, nekushandisa Basa rekuvaka uye rakamonana braces. Chinyorwa chine mabasa chinonzi module uye chine .psm1 yekuwedzera. Mamodule anofanirwa kuchengetwa mumadhairekitori anotsanangurwa muPowerShell nharaunda zvinosiyana. Unogona kuaona nemurairo unotevera:

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

Conveyors

Mumuenzaniso wekupedzisira, takashandisa chivakwa chinozivikanwa nevashandisi veUnix shell. MuWindows PowerShell, iyo yakamira bhaa zvakare inobvumidza iwe kupfuudza kuburitswa kweimwe kuraira kune yekuisa imwe, asi pane mutsauko wakakura mukuitwa kwepombi: isu hatisisiri kutaura nezve seti yemavara kana imwe mhando ye. text. Akavakirwa-mukati macmdlets kana mushandisi-anotsanangurwa mabasa anodzosa zvinhu kana marongero ezvinhu, uye anogonawo kuzvigamuchira sekuisa. Kufanana neBourne shell uye vatevedzeri vayo vazhinji, PowerShell inoita kuti mabasa akaomarara ave nyore nepombi.

Muenzaniso wakapfava wepombi unotaridzika seizvi:

Get-Service | Sort-Object -property Status

Chii chinonzi Windows PowerShell uye inodyiwa nei? Chikamu 1: Zvinhu Zvikuru
Kutanga, iyo Get-Service cmdlet inoitwa, uye ipapo masevhisi ese anogamuchirwa nayo anopfuudzwa kune Ronga-Chinhu cmdlet yekurongedza neStatus pfuma. Ndeipi nharo mhedzisiro yechikamu chekare chepombi chinopfuudzwa zvinoenderana nerudzi rwayo - kazhinji iri InputObject. Nyaya iyi ichakurukurwa zvakadzama muchinyorwa chakatsaurirwa kuPowerShell programming language. 

Kana uchida, iwe unogona kuenderera mberi neketani uye kupfuudza mhedzisiro yeSort-Object oparesheni kune imwe cmdlet (vachaurayiwa kubva kuruboshwe kuenda kurudyi). Nenzira, vashandisi veWindows vanewo mukana wekuvaka kwepagination kunozivikanwa kune vese Unixoids: 

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

Kumhanyisa mabasa kumashure 

Kazhinji, zvinodikanwa kumhanyisa imwe kuraira kumashure, kuti usamirire mhedzisiro yekuitwa kwayo muchikamu chegomba. Windows PowerShell ine akati wandei cmdlets yenyaya iyi:

Start-Job - kutanga basa rekumashure;
Stop-Job - kumisa basa rekumashure;
Get-Job - tarisa rondedzero yemashure mabasa;
Receive-Job - kuona mhedzisiro yekuitwa kwekuita basa;
Remove-Job - kudzima basa rekumashure;
Wait-Job - kuendesa iyo yekumashure basa kumashure kune console.

Kutanga basa rekumashure, isu tinoshandisa Start-Job cmdlet uye tsanangura murairo kana seti yemirairo mune dzakamonana braces:

Start-Job {Get-Service}

Chii chinonzi Windows PowerShell uye inodyiwa nei? Chikamu 1: Zvinhu Zvikuru
Mabasa ekumashure muWindows PowerShell anogona kushandiswa nekuziva mazita avo. Kutanga, ngatidzidzei maitiro ekuaratidza:

Get-Job

Chii chinonzi Windows PowerShell uye inodyiwa nei? Chikamu 1: Zvinhu Zvikuru
Zvino ngatiratidze mhedzisiro yebasa Job1:

Receive-Job Job1 | more

Chii chinonzi Windows PowerShell uye inodyiwa nei? Chikamu 1: Zvinhu Zvikuru
Zvese zviri nyore.

Remote command execution

Windows PowerShell inokutendera kuti uite mirairo uye zvinyorwa kwete chete pakombuta yemuno, asiwo pakombuta iri kure, uye kunyangwe paboka rese remichina. Pane nzira dzakawanda dzekuita izvi:

  • Mazhinji cmdlets ane parameter -ComputerName, asi nenzira iyi hazvizoshandi, somuenzaniso, kugadzira conveyor;
  • Cmdlet Enter-PSSession inokubvumira kuti ugadzire musangano unopindirana pamushini uri kure; 
  • Kushandisa cmdlet Invoke-Command unogona kumhanyisa mirairo kana zvinyorwa pane imwe kana akawanda ari kure komputa.

Shanduro dzePowerShell

PowerShell yakachinja zvakanyanya kubva payakatanga kuburitswa muna 2006. Chishandiso ichi chiripo kune akawanda masisitimu anoshanda pamapuratifomu akasiyana-siyana (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 uye OS X. Kuburitswa kuchangoburwa 6.2 kwakaburitswa muna Ndira 10, 2018. Zvinyorwa zvakanyorerwa mavhezheni ekutanga anogona kushanda mune dzinotevera vhezheni, asi backporting inogona kunetsa nekuti PowerShell yakaunza nhamba huru yecmdlets nyowani mumakore ebudiriro. Unogona kutsvaga vhezheni yegomba rekuraira rakaiswa pakombuta uchishandisa iyo PSVersion pfuma yeiyo $PSVersionTable yakavakirwa-mukati chinja:

$PSVersionTable.PSVersion

Chii chinonzi Windows PowerShell uye inodyiwa nei? Chikamu 1: Zvinhu Zvikuru
Iwe unogona zvakare kushandisa iyo cmdlet:

Get-Variable -Name PSVersionTable –ValueOnly

Chii chinonzi Windows PowerShell uye inodyiwa nei? Chikamu 1: Zvinhu Zvikuru
Izvi zvakafanana zvinoitwa neGet-Host cmdlet. Muchokwadi, pane zvakawanda zvingasarudzwa, asi kuti uzvishandise iwe unofanirwa kudzidza iyo PowerShell programming mutauro, iyo yatichaita mukati. nyaya inotevera

Migumisiro 

Microsoft yakakwanisa kugadzira ganda rine simba chaizvo rine nharaunda yakasanganiswa yekugadzira zvinyorwa. Iyo yakasiyana kubva kune zvishandiso zvatinoziva munyika yeUnix nekubatanidzwa kwakadzika nemaitiro ekushanda emhuri yeWindows, pamwe chete nesoftware kwavari uye NET Core platform. PowerShell inogona kunzi igoko rakanangana nechinhu nekuti cmdlets uye mushandisi-anotsanangurwa mabasa anodzosa zvinhu kana hurongwa hwezvinhu uye anogona kuzvitora sekuisa. Isu tinofunga kuti ese maseva maneja paWindows anofanirwa kunge aine chishandiso ichi: nguva yadarika pavakakwanisa kuita pasina mutsara wekuraira. An advanced console shell inonyanya kudiwa pa yedu yakaderera mutengo VPS inomhanya Windows Server Core, asi iyo nyaya yakasiyana zvachose.

Chii chinonzi Windows PowerShell uye inodyiwa nei? Chikamu 1: Zvinhu Zvikuru

Vashandisi vakanyoresa chete ndivo vanogona kutora chikamu muongororo. Nyorera mu, Munogamuchirwa.

Inyaya dzipi dzinofanira kutanga kukurukurwa munyaya dzinotevera dzenhevedzano yacho?

  • 53,2%Kuronga muPowerShell123

  • 42,4%PowerShell98 Mabasa uye Modules

  • 22,1%Kusaina sei zvinyorwa zvako?51

  • 12,1%Kushanda nematura kuburikidza nevanopa (vanopa)28

  • 57,6%Automating Computer Administration nePowerShell133

  • 30,7%Software manejimendi uye kudzvanya PowerShell inotepfenyurwa mune yechitatu-bato zvigadzirwa71

231 vashandisi vakavhota. 37 vashandisi vakaramba.

Source: www.habr.com

Voeg