Inona ny Windows PowerShell ary inona no fihinanana azy? Fizarana 1: Lafin-javatra fototra

Ara-tantara, ny fampandehanan-baiko amin'ny rafitra Unix dia mivoatra kokoa noho ny amin'ny Windows, saingy noho ny fahatongavan'ny vahaolana vaovao dia niova ny toe-draharaha.

Ny Windows PowerShell dia ahafahan'ny mpitantana rafitra manao ho azy ny ankamaroan'ny asa mahazatra. Miaraka amin'ny fanampiany dia afaka manova ny toe-javatra ianao, mijanona ary manomboka serivisy, ary manao fikojakojana ny ankamaroan'ny fampiharana napetraka. Mety ho diso ny fiheverana ny varavarankely manga ho mpandika baiko hafa. Ity fomba fiasa ity dia tsy maneho ny maha-zava-dehibe ny fanavaozana natolotry ny Microsoft. Raha ny marina, ny fahaizan'ny Windows PowerShell dia midadasika kokoa: ao anatin'ny andian-dahatsoratra fohy dia hiezaka ny hamantatra ny maha-samihafa ny vahaolana Microsoft amin'ireo fitaovana mahazatra antsika.

Inona ny Windows PowerShell ary inona no fihinanana azy? Fizarana 1: Lafin-javatra fototra

Toe-javatra fototra 

Mazava ho azy fa ny Windows PowerShell dia akorandriaka fanoratana voalohany indrindra, naorina tamin'ny .NET Framework ary taty aoriana tamin'ny .NET Core. Tsy toy ny akorandriaka izay manaiky sy mamerina angona lahatsoratra, ny Windows PowerShell dia miasa miaraka amin'ireo kilasy .NET izay manana toetra sy fomba. PowerShell dia ahafahanao mampandeha baiko mahazatra ary manome anao koa ny fidirana amin'ny zavatra COM, WMI, ary ADSI. Mampiasa fitehirizana isan-karazany izy io, toy ny rafi-drakitra na ny rejisitra Windows, mba hidirana amin'ilay antsoina hoe. mpamatsy. Tsara ny manamarika fa mety hampiditra singa azo tanterahana amin'ny PowerShell amin'ny fampiharana hafa mba hampiharana ny asa isan-karazany, anisan'izany. amin'ny alàlan'ny interface grafika. Marina ihany koa ny mifanohitra amin'izany: maro ny rindranasa Windows manome fidirana amin'ny fifandraisan'ny fitantanana azy amin'ny alàlan'ny PowerShell. 

Windows PowerShell dia ahafahanao:

  • Hanova ny rafitra fiasan'ny rafitra;
  • Mitantana serivisy sy dingana;
  • Ampifanaraho ny andraikitry ny mpizara sy ny singa;
  • Mametraka rindrambaiko;
  • Mitantana rindrambaiko napetraka amin'ny alàlan'ny interface manokana;
  • Ampidiro ny singa azo tanterahana amin'ny programa an'ny antoko fahatelo;
  • Mamorona script ho an'ny automatique ny asa fitantanana;
  • Miaraha miasa amin'ny rafitra fichier, rejistra Windows, fivarotana taratasy fanamarinana, sns.

Shell sy tontolo iainana fampandrosoana

Misy Windows PowerShell amin'ny endrika roa: ankoatry ny emulator console miaraka amin'ny shell command, dia misy ny Integrated Scripting Environment (ISE). Raha te hidirana amin'ny interface tsara andalana, safidio fotsiny ny hitsin-dàlana mety amin'ny menio Windows na mandehana powershell.exe avy amin'ny menio Run. Hisy varavarankely manga hiseho eo amin'ny efijery, tsy mitovy amin'ny fahaiza-manaon'ny cmd.exe taloha. Misy autocompletion sy endri-javatra hafa mahazatra ny mpampiasa ny baiko shell ho an'ny rafitra Unix.

Inona ny Windows PowerShell ary inona no fihinanana azy? Fizarana 1: Lafin-javatra fototra

Raha te hiasa miaraka amin'ny akorandriaka dia mila mitadidy hitsin-dàlana sasantsasany ianao:

  • Ny zana-tsipìka miakatra sy midina dia mihodinkodina amin'ny tantara mba hamerina ny baiko voatendry teo aloha;
  • Ny zana-tsipìka havanana amin'ny faran'ny tsipika dia mamerina manoratra ny toetran'ny baiko teo aloha araka ny toetra;
  • Ctrl+Home dia mamafa ny lahatsoratra voatendry avy amin'ny toeran'ny cursor mankany amin'ny fiandohan'ny tsipika;
  • Ctrl+End dia mamafa lahatsoratra avy amin'ny cursor mankany amin'ny faran'ny andalana.

F7 dia mampiseho varavarankely misy baiko voatendry ary ahafahanao misafidy ny iray amin'izy ireo. Ny console koa dia miasa amin'ny fifantenana lahatsoratra miaraka amin'ny totozy, kopia-mametaka, fametrahana ny cursor, famafana, backspace - izay rehetra tiantsika.

Inona ny Windows PowerShell ary inona no fihinanana azy? Fizarana 1: Lafin-javatra fototra
Windows PowerShell ISE dia tontolo fampandrosoana feno miaraka amin'ny tonian-dahatsoratry ny kaody misy tabilao sy asongadina amin'ny syntax, mpanamboatra baiko, debugger naorina, ary fahafinaretana fandaharana hafa. Raha manoratra hyphen ianao aorian'ny anaran'ny baiko ao amin'ny tonian-dahatsoratry ny tontolon'ny fampandrosoana, dia hahazo ny safidy rehetra azo alaina ao amin'ny lisitra midina miaraka amin'ny famantarana ny karazana. Azonao atao ny manomboka ny PowerShell ISE na amin'ny alàlan'ny hitsin-dàlana avy amin'ny menio rafitra, na amin'ny fampiasana ny rakitra executable powershell_ise.exe.

Inona ny Windows PowerShell ary inona no fihinanana azy? Fizarana 1: Lafin-javatra fototra

Cmdlets 

Ao amin'ny Windows PowerShell, ilay antsoina hoe. cmdlets. Ireo dia kilasy .NET manokana izay manome fiasa isan-karazany. Antsoina hoe Action-Object izy ireo (na Verb-Noun, raha tianao), ary ny rohy misaraka amin'ny hyphen dia mitovy amin'ny predicate sy subject amin'ny fehezanteny amin'ny fiteny voajanahary. Ohatra, ny Get-Help dia midika ara-bakiteny hoe "Get-Help", na ao amin'ny tontolon'ny PowerShell: "Asehoy-Fanampiana". Raha ny marina, ity dia analogue ny baikon'ny lehilahy amin'ny rafitra Unix, ary ny boky ao amin'ny PowerShell dia tsy maintsy angatahina amin'izany fomba izany, fa tsy amin'ny fiantsoana cmdlet miaraka amin'ny --help na /?. Aza adino ny momba ny tahirin-kevitra PowerShell an-tserasera: Microsoft dia manana izany amin'ny antsipiriany.

Ho fanampin'ny Get, ny cmdlets dia mampiasa matoanteny hafa mba hilazana hetsika (fa tsy ny matoanteny ihany, raha ny marina). Ao amin'ny lisitra eto ambany dia manome ohatra vitsivitsy izahay:

Add - manampy;
Clear - mazava;
Enable - Alefaso;
Disable - manapika;
New - mamorona;
Remove - mamafa;
Set - manontany;
Start - mihazakazaka;
Stop - Mijanòna;
Export - fanondranana;
Import - manafatra.

Misy ny rafitra, ny mpampiasa ary ny cmdlet tsy voatery: vokatry ny famonoana dia mamerina zavatra iray na zavatra maromaro izy ireo. Izy ireo dia tsy saro-pady, i.e. raha ny fomba fijerin'ny mpandika baiko dia tsy misy mahasamihafa ny Get-Help sy ny get-help. Ny endri-tsoratra ';' dia ampiasaina amin'ny fisarahana, fa tsy maintsy mametraka izany raha tsy misy cmdlet maromaro no tanterahina amin'ny andalana iray ihany. 

Ny cmdlet Windows PowerShell dia mivondrona ho modules (NetTCPIP, Hyper-V, sns.), ary misy cmdlet Get-Command hikaroka amin'ny alalan'ny zavatra sy ny hetsika. Azonao atao ny mampiseho fanampiana amin'izany toy izao:

Get-Help Get-Command

Inona ny Windows PowerShell ary inona no fihinanana azy? Fizarana 1: Lafin-javatra fototra

Amin'ny alàlan'ny default, ny baiko dia mampiseho fanampiana fohy, fa ny mari-pamantarana (fandresen-dahatra) dia alefa amin'ny cmdlet raha ilaina. Miaraka amin'ny fanampian'izy ireo dia azonao atao, ohatra, ny mahazo fanampiana amin'ny antsipiriany (parameter -Detailed) na feno (parameter -Full), ary koa mampiseho ohatra (parameter -Ohatra):

Get-Help Get-Command -Examples

Ny fanampiana ao amin'ny Windows PowerShell dia nohavaozin'ny cmdlet Update-Help. Raha toa ka lasa lava loatra ny andalana baiko dia azo afindra any amin'ny manaraka ny tohan-kevitra cmdlet amin'ny alàlan'ny fanoratana ny toetran'ny serivisy '' sy ny fanindriana ny Enter - ny mamita ny fanoratana ny baiko amin'ny andalana iray ary ny fanohizana amin'ny iray hafa dia tsy mandeha.

Ireto misy ohatra vitsivitsy amin'ny cmdlet mahazatra: 

Get-Process - mampiseho ny fizotran'ny fandehanana ao amin'ny rafitra;
Get-Service - mampiseho ny serivisy sy ny satany;
Get-Content - asehoy ny votoatin'ny rakitra.

Ho an'ny cmdlet ampiasaina matetika sy fitaovana ivelany, ny Windows PowerShell dia manana anarana fohy - aliases. Ohatra, ny dir dia anarana ho an'ny Get-ChildItem. Misy ihany koa ny analogue ny baiko avy amin'ny Unix rafitra ao amin'ny lisitry ny synonyms (ls, ps, sns), ary ny Get-Help cmdlet dia antsoina amin'ny alalan'ny baiko fanampiana. Ny lisitra feno amin'ny teny mitovy hevitra dia azo jerena amin'ny alàlan'ny Get-Alias ​​​​cmdlet:

Inona ny Windows PowerShell ary inona no fihinanana azy? Fizarana 1: Lafin-javatra fototra

Scripts, Functions, Modules ary ny fiteny PowerShell

Ny script Windows PowerShell dia voatahiry ho rakitra soratra tsotra misy fanitarana .ps1. Tsy azonao atao ny manomboka azy ireo amin'ny fanindriana indroa: mila manindry havanana ianao mba hiantso ny menu context ary safidio ny singa "Run in PowerShell". Avy amin'ny console dia tsy maintsy mamaritra ny lalana feno mankany amin'ny script ianao, na mandeha any amin'ny lahatahiry mety ary soraty ny anaran'ny rakitra. Voafetran'ny politikan'ny rafitra ihany koa ny fampandehanana scripts, ary raha te hanamarina ny toe-javatra ankehitriny ianao dia azonao ampiasaina ny cmdlet Get-ExecutionPolicy, izay hamerina ny iray amin'ireto soatoavina manaraka ireto:

Restricted - ny fandefasana script dia kilemaina (amin'ny alàlan'ny default);
AllSigned - ny fandefasana script nosoniavin'ny mpamorona azo itokisana ihany no azo atao;
RemoteSigned - Avela hampandeha ny soratra voasonia sy manokana;
Unrestricted - navela handefa script rehetra.

Manana safidy roa ny mpitantana. Ny azo antoka indrindra dia ny fanaovana sonia scripts, saingy ody mahery vaika izany - hojerentsika amin'ny lahatsoratra manaraka. Andeha isika izao haka ny lalan'ny fanoherana faran'izay kely indrindra ary hanova ny politika:

Set-ExecutionPolicy RemoteSigned

Inona ny Windows PowerShell ary inona no fihinanana azy? Fizarana 1: Lafin-javatra fototra
Mba hanaovana izany dia tsy maintsy mampiasa PowerShell ianao amin'ny maha-mpitantana azy, na dia azonao atao aza ny mampiasa marika manokana hanovana ny politika ho an'ny mpampiasa ankehitriny.

Ny script dia nosoratana tamin'ny fiteny fandaharana miompana amin'ny zavatra, ary ny baiko amin'izy ireo dia nomena anarana mitovy amin'ireo cmdlet izay nodinihina teo aloha: "Action-Object" ("Verb-Noun"). Ny tena tanjona dia ny automatique ny asan'ny fitantanan-draharaha, fa izy io dia fiteny feno fandikana izay manana ny fanorenana ilaina rehetra: mitsambikina misy fepetra, tadivavarana, miovaova, array, zavatra, fitantanana fahadisoana, sns. Ny mpamoaka lahatsoratra rehetra dia mety amin'ny fanoratana, fa ny Windows PowerShell ISE no tsara indrindra.

Azonao atao ny mampita masontsivana amin'ny script, manao azy ireo ho ilaina, ary mametraka ny sanda default. Fanampin'izany, ny Windows PowerShell dia ahafahanao mamorona sy miantso ireo fiasa mitovy amin'ny cmdlets, amin'ny fampiasana ny Function construct sy ny braces curly. Ny script misy asa dia antsoina hoe module ary manana fanitarana .psm1. Ny maody dia tsy maintsy tehirizina ao amin'ny lahatahiry voafaritra ao amin'ny fari-piainana PowerShell. Azonao atao ny mijery azy ireo amin'ny baiko manaraka:

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

Conveyor

Tamin'ny ohatra farany, dia nampiasa fanamboarana izay mahazatra ny mpampiasa shell Unix izahay. Ao amin'ny Windows PowerShell, ny bara mitsangana koa dia ahafahanao mampita ny fivoahan'ny baiko iray mankany amin'ny fampidiran'ny iray hafa, saingy misy fahasamihafana lehibe eo amin'ny fampiharana ny fantsona: tsy miresaka karazana litera na karazana karazana. lahatsoratra. Ny cmdlets na ny fiasa voafaritry ny mpampiasa dia mamerina zavatra na laharan-javatra, ary afaka mandray azy ireo ho fampidirana ihany koa. Tahaka ny Bourne shell sy ny mpandimby azy maro, PowerShell dia manamora ny asa sarotra amin'ny fantsona.

Ny ohatra fantsona tsotra indrindra dia toy izao:

Get-Service | Sort-Object -property Status

Inona ny Windows PowerShell ary inona no fihinanana azy? Fizarana 1: Lafin-javatra fototra
Voalohany, ny Get-Service cmdlet dia tanterahina, ary avy eo ny serivisy rehetra azony dia alefa any amin'ny Sort-Object cmdlet ho an'ny fanasokajiana amin'ny fananana Status. Ny hevitra hoe inona ny valin'ny fizarana teo aloha amin'ny pipeline dia miankina amin'ny karazana azy - matetika dia InputObject. Ity olana ity dia horesahina amin'ny antsipiriany amin'ny lahatsoratra natokana ho an'ny fiteny fandaharana PowerShell. 

Raha tianao dia azonao atao ny manohy ny rojo ary mampita ny vokatry ny asa Sort-Object amin'ny cmdlet hafa (hovonoina avy any ankavia miankavanana izy ireo). Raha ny tokony ho izy, ny mpampiasa Windows dia manana fahafahana miditra amin'ny fananganana pagination mahazatra amin'ny Unixoids rehetra: 

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

Fampandehanana asa ao ambadika 

Matetika dia ilaina ny manatanteraka baiko iray ao ambadika, mba tsy hiandry ny vokatry ny famonoana azy amin'ny fivoriana akorandriaka. Windows PowerShell dia manana cmdlet maromaro ho an'ity tranga ity:

Start-Job - manomboka asa fototra;
Stop-Job - atsaharo ny asa ambadika;
Get-Job - jereo ny lisitry ny asa ambadika;
Receive-Job - mijery ny vokatry ny fanatanterahana ny asa ambadika;
Remove-Job - famafana asa ambadika;
Wait-Job - mamindra ny asa ambadika miverina amin'ny console.

Mba hanombohana asa an-damosina, dia mampiasa ny Start-Job cmdlet izahay ary mamaritra baiko na andian-baiko amin'ny braces olioly:

Start-Job {Get-Service}

Inona ny Windows PowerShell ary inona no fihinanana azy? Fizarana 1: Lafin-javatra fototra
Ny asa any ambadika ao amin'ny Windows PowerShell dia azo amboarina amin'ny fahafantarana ny anarany. Voalohany, andeha hojerentsika ny fomba hanehoana azy ireo:

Get-Job

Inona ny Windows PowerShell ary inona no fihinanana azy? Fizarana 1: Lafin-javatra fototra
Andeha hasehontsika izao ny vokatry ny asa Job1:

Receive-Job Job1 | more

Inona ny Windows PowerShell ary inona no fihinanana azy? Fizarana 1: Lafin-javatra fototra
Tsotra ny zava-drehetra.

Fanatanterahana baiko lavitra

Windows PowerShell dia ahafahanao manatanteraka baiko sy script tsy amin'ny solosaina eo an-toerana ihany, fa amin'ny ordinatera lavitra, ary na amin'ny vondrona milina iray manontolo aza. Misy fomba maromaro hanaovana izany:

  • cmdlet maro no manana paramètre -ComputerName, fa amin'izany fomba izany dia tsy hahomby, ohatra, ny famoronana conveyor;
  • Cmdlet Enter-PSSession mamela anao hamorona fivoriana interactive amin'ny milina lavitra; 
  • Mampiasa ny cmdlet Invoke-Command Afaka mandefa baiko na script amin'ny solosaina lavitra iray na maromaro ianao.

Dikan-tenin'ny PowerShell

Niova be ny PowerShell hatramin'ny nivoahany voalohany tamin'ny 2006. Ny fitaovana dia misy amin'ny rafitra maro mandeha amin'ny sehatra hardware samihafa (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 ary OS X. Navoaka tamin'ny 6.2 Janoary 10 ny famoahana farany 2018. Ireo script nosoratana ho an'ny dikan-teny teo aloha dia mety hiasa amin'ny dikan-teny manaraka, fa ny backporting dia mety ho olana satria PowerShell dia nampiditra cmdlet vaovao marobe nandritra ny taona maro nivoarana. Azonao atao ny mahita ny dikan'ny akorandriaka baiko napetraka amin'ny solosaina amin'ny alàlan'ny fananana PSVersion an'ny $PSVersionTable naorina-in variable:

$PSVersionTable.PSVersion

Inona ny Windows PowerShell ary inona no fihinanana azy? Fizarana 1: Lafin-javatra fototra
Azonao atao koa ny mampiasa ny cmdlet:

Get-Variable -Name PSVersionTable –ValueOnly

Inona ny Windows PowerShell ary inona no fihinanana azy? Fizarana 1: Lafin-javatra fototra
Toy izany koa no atao amin'ny Get-Host cmdlet. Raha ny marina dia misy safidy maro, fa ny fampiasana azy ireo dia mila mianatra ny fiteny fandaharana PowerShell, izay hataontsika lahatsoratra manaraka

vokatra 

Nahavita namorona akorandriaka mahery vaika i Microsoft miaraka amin'ny tontolo mitambatra mety amin'ny famolavolana script. Izy io dia tsy mitovy amin'ireo fitaovana mahazatra antsika eo amin'ny tontolon'ny Unix amin'ny alàlan'ny fampidirana lalina amin'ny rafitra fiasan'ny fianakaviana Windows, ary koa amin'ny rindrambaiko ho azy ireo sy ny sehatra .NET Core. Ny PowerShell dia azo antsoina hoe akora miompana amin'ny zavatra satria ny cmdlet sy ny asa voafaritry ny mpampiasa dia mamerina zavatra na andian-javatra ary afaka mandray azy ireo ho fampidirana. Mihevitra izahay fa tokony hanana an'ity fitaovana ity ny mpitantana ny mpizara rehetra ao amin'ny Windows: lasa ny fotoana ahafahan'izy ireo manao tsy misy baiko. Ilaina indrindra ny akorandriaka console mandroso ny VPS vidiny ambany dia mitantana Windows Server Core, fa tantara hafa tanteraka izany.

Inona ny Windows PowerShell ary inona no fihinanana azy? Fizarana 1: Lafin-javatra fototra

Ireo mpampiasa voasoratra anarana ihany no afaka mandray anjara amin'ny fanadihadiana. HiditraPlease.

Inona no foto-kevitra tokony hodinihina voalohany ao amin’ny lahatsoratra manaraka?

  • 53,2%Fandaharana ao amin'ny PowerShell123

  • 42,4%PowerShell98 Functions sy Modules

  • 22,1%Ahoana ny fanaovana sonia ny soratrao manokana?51

  • 12,1%Miara-miasa amin'ny tahiry amin'ny alàlan'ny mpamatsy (mpanome)28

  • 57,6%Manao automatique ny fitantanana ny solosaina amin'ny PowerShell133

  • 30,7%Mitantana rindrambaiko sy mampiditra ny PowerShell azo tanterahina amin'ny vokatra avy amin'ny antoko fahatelo71

Mpampiasa 231 no nifidy. Mpampiasa 37 no nifady.

Source: www.habr.com

Add a comment