Windows PowerShell ni nini na inaliwa na nini? Sehemu ya 1: Sifa Muhimu

Kwa kihistoria, huduma za mstari wa amri kwenye mifumo ya Unix zinaendelezwa vizuri zaidi kuliko Windows, lakini kwa ujio wa suluhisho jipya, hali imebadilika.

Windows PowerShell inaruhusu wasimamizi wa mfumo kugeuza kazi nyingi za kawaida. Kwa hiyo, unaweza kubadilisha mipangilio, kuacha na kuanza huduma, na pia kufanya matengenezo kwenye programu nyingi zilizosakinishwa. Itakuwa vibaya kugundua dirisha la bluu kama mkalimani mwingine wa amri. Mbinu hii haionyeshi kiini cha ubunifu uliopendekezwa na Microsoft. Kwa kweli, uwezekano wa Windows PowerShell ni pana zaidi: katika mfululizo mfupi wa makala, tutajaribu kujua jinsi ufumbuzi wa Microsoft hutofautiana na zana tunazozifahamu zaidi.

Windows PowerShell ni nini na inaliwa na nini? Sehemu ya 1: Sifa Muhimu

Vipengele muhimu 

Bila shaka, Windows PowerShell kimsingi ni ganda la uandishi, lililojengwa awali kwenye .NET Framework na baadaye kwenye .NET Core. Tofauti na makombora ambayo hukubali na kurejesha data ya maandishi, Windows PowerShell hufanya kazi na .NET madarasa ambayo yana sifa na mbinu. PowerShell hukuruhusu kutekeleza amri za kawaida na pia hukupa ufikiaji wa vitu vya COM, WMI, na ADSI. Inatumia hifadhi mbalimbali, kama vile mfumo wa faili au Usajili wa Windows, kwa ajili ya kufikia kinachojulikana. wasambazaji. Inastahili kuzingatia uwezekano wa kupachika vipengele vinavyoweza kutekelezwa vya PowerShell katika programu nyingine ili kutekeleza shughuli mbalimbali, ikiwa ni pamoja na. kupitia kiolesura cha picha. Kinyume chake pia ni kweli: programu nyingi za Windows hutoa ufikiaji wa violesura vyao vya usimamizi kupitia PowerShell. 

Windows PowerShell hukuruhusu:

  • Badilisha mipangilio ya mfumo wa uendeshaji;
  • Kusimamia huduma na taratibu;
  • Sanidi majukumu na vipengele vya seva;
  • Sakinisha programu;
  • Dhibiti programu iliyowekwa kwa njia ya interfaces maalum;
  • Kupachika vipengele vinavyoweza kutekelezwa katika programu za wahusika wengine;
  • Unda maandishi ili kubinafsisha kazi za usimamizi;
  • Fanya kazi na mfumo wa faili, Usajili wa Windows, duka la cheti, nk.

Shell na mazingira ya maendeleo

Kuna Windows PowerShell katika aina mbili: kwa kuongeza emulator ya koni iliyo na ganda la amri, kuna Mazingira ya Kuandika Maandishi (ISE). Ili kufikia kiolesura cha mstari wa amri, chagua tu njia ya mkato inayofaa kutoka kwenye menyu ya Windows au endesha powershell.exe kutoka kwenye menyu ya Run. Dirisha la bluu litaonekana kwenye skrini, tofauti kabisa na uwezo kutoka kwa cmd.exe ya antediluvian. Kuna ukamilishaji kiotomatiki na vipengele vingine vinavyojulikana kwa watumiaji wa makombora ya amri kwa mifumo ya Unix.

Windows PowerShell ni nini na inaliwa na nini? Sehemu ya 1: Sifa Muhimu

Ili kufanya kazi na ganda unahitaji kukumbuka njia za mkato za kibodi:

  • Mishale ya juu na chini inasogeza kwenye historia ili kurudia amri zilizochapwa hapo awali;
  • Mshale wa kulia mwishoni mwa mstari huandika tena herufi ya amri iliyotangulia kwa herufi;
  • Ctrl+Home hufuta maandishi yaliyochapwa kutoka kwa nafasi ya mshale hadi mwanzo wa mstari;
  • Ctrl+End hufuta maandishi kutoka kwa mshale hadi mwisho wa mstari.

F7 inaonyesha dirisha na amri zilizoingia na inakuwezesha kuchagua mmoja wao. Dashibodi pia hufanya kazi kwa kuchagua maandishi kwa kutumia kipanya, kubandika nakala, kuweka mshale, kufuta, nafasi ya nyuma - kila kitu tunachopenda.

Windows PowerShell ni nini na inaliwa na nini? Sehemu ya 1: Sifa Muhimu
Windows PowerShell ISE ni mazingira kamili ya ukuzaji yenye kihariri cha msimbo kilichowekwa kichupo na kisintaksia, kijenzi cha amri, kitatuzi kilichojengewa ndani, na starehe zingine za upangaji. Ikiwa utaandika hyphen baada ya jina la amri katika kihariri cha mazingira ya maendeleo, utapata chaguo zote zinazopatikana kwenye orodha ya kushuka na dalili ya aina. Unaweza kuzindua PowerShell ISE kupitia njia ya mkato kutoka kwa menyu ya mfumo, au kutumia faili inayoweza kutekelezwa powershell_ise.exe.

Windows PowerShell ni nini na inaliwa na nini? Sehemu ya 1: Sifa Muhimu

Cmdlets 

Katika Windows PowerShell, kinachojulikana. cmdlets. Haya ni madarasa maalum ya NET ambayo hutoa utendaji mbalimbali. Vinaitwa Action-Object (au Verb-Noun, ukipenda), na kiungo kilichotenganishwa na kistari hufanana na kiima na kiima katika sentensi za lugha asilia. Kwa mfano, Pata Usaidizi maana yake halisi ni "Pata-Msaada", au katika muktadha wa PowerShell: "Onyesha-Msaada". Kwa kweli, hii ni analogi ya amri ya mtu katika mifumo ya Unix, na miongozo katika PowerShell lazima iombewe kwa njia hii, na sio kwa kupiga cmdlets kwa --help au /?.. Usisahau kuhusu hati za mtandaoni za PowerShell: Microsoft ina maelezo ya kina.

Kando na Pata, cmdlets hutumia vitenzi vingine kuashiria vitendo (na sio vitenzi tu, kwa kusema kabisa). Katika orodha hapa chini tunatoa mifano kadhaa:

Add - ongeza;
Clear - safi;
Enable - kugeuka;
Disable - kuzima;
New - kuunda;
Remove - kufuta;
Set - kuuliza;
Start - kukimbia;
Stop - kuacha;
Export - kuuza nje;
Import - kuagiza.

Kuna mfumo, mtumiaji na cmdlets za hiari: kama matokeo ya utekelezaji, zote zinarudisha kitu au safu ya vitu. Wao sio nyeti kwa kesi, i.e. Kwa mtazamo wa mkalimani wa amri, hakuna tofauti kati ya Pata-Msaada na pata-msaada. Alama ya ';' inatumika kutenganisha, lakini inahitajika tu ikiwa cmdlets kadhaa zitatekelezwa kwenye mstari mmoja. 

Windows PowerShell cmdlets zimepangwa katika moduli (NetTCPIP, Hyper-V, nk.), na kuna Get-Command cmdlet kutafuta kwa kitu na hatua. Unaweza kuonyesha msaada kwa ajili yake kama hii:

Get-Help Get-Command

Windows PowerShell ni nini na inaliwa na nini? Sehemu ya 1: Sifa Muhimu

Kwa chaguo-msingi, amri huonyesha usaidizi wa haraka, lakini vigezo (hoja) hupitishwa kwa cmdlets kama inahitajika. Kwa msaada wao, unaweza, kwa mfano, kupata msaada wa kina (-Kina kigezo) au kamili (-Kamili) msaada, pamoja na mifano ya kuonyesha (-Mifano parameta):

Get-Help Get-Command -Examples

Usaidizi katika Windows PowerShell unasasishwa na Usasishaji-Msaada cmdlet. Ikiwa mstari wa amri unageuka kuwa mrefu sana, hoja za cmdlet zinaweza kuhamishiwa kwa ijayo kwa kuandika tabia ya huduma ``' na kushinikiza Ingiza - kumaliza tu kuandika amri kwenye mstari mmoja na kuendelea kwa mwingine haitafanya kazi.

Hapa kuna mifano ya cmdlets za kawaida: 

Get-Process - onyesha michakato inayoendesha katika mfumo;
Get-Service - onyesha huduma na hali zao;
Get-Content - onyesha yaliyomo kwenye faili.

Kwa cmdlets zinazotumiwa mara kwa mara na huduma za nje, Windows PowerShell ina visawe vifupi - lakabu. Kwa mfano, dir ni lakabu la Get-ChildItem. Pia kuna mlinganisho wa amri kutoka kwa mifumo ya Unix katika orodha ya visawe (ls, ps, nk.), na cmdlet ya Pata Msaada inaitwa kwa amri ya usaidizi. Orodha kamili ya visawe inaweza kutazamwa kwa kutumia Pata-Alias ​​​​cmdlet:

Windows PowerShell ni nini na inaliwa na nini? Sehemu ya 1: Sifa Muhimu

Hati, Kazi, Moduli, na Lugha ya PowerShell

Hati za Windows PowerShell huhifadhiwa kama faili za maandishi wazi na kiendelezi cha .ps1. Huwezi kuziendesha kwa kubofya mara mbili: unahitaji kubofya kulia ili kufungua menyu ya muktadha na uchague "Run in PowerShell". Kutoka kwa koni utalazimika kutaja njia kamili ya hati, au nenda kwenye saraka inayofaa na uandike jina la faili. Uendeshaji wa hati pia umepunguzwa na sera ya mfumo, na kuangalia mipangilio ya sasa unaweza kutumia Get-ExecutionPolicy cmdlet, ambayo itarudisha moja ya maadili yafuatayo:

Restricted - uandishi wa uzinduzi umezimwa (kwa chaguo-msingi);
AllSigned - uzinduzi tu wa hati zilizosainiwa na msanidi anayeaminika unaruhusiwa;
RemoteSigned - kuruhusiwa kuendesha hati zilizosainiwa na kumiliki;
Unrestricted - kuruhusiwa kuendesha hati yoyote.

Msimamizi ana chaguzi mbili. Salama zaidi ni pamoja na kusaini hati, lakini huu ni uchawi mbaya - tutashughulika nao katika nakala zijazo. Sasa wacha tuchukue njia ya upinzani mdogo na tubadilishe sera:

Set-ExecutionPolicy RemoteSigned

Windows PowerShell ni nini na inaliwa na nini? Sehemu ya 1: Sifa Muhimu
PowerShell itahitaji kuendeshwa kama msimamizi ili kufanya hivi, ingawa unaweza kubadilisha sera ya mtumiaji wa sasa kwa mpangilio maalum.

Maandishi yameandikwa katika lugha ya programu inayolengwa na kitu, amri ambazo zinaitwa kulingana na kanuni sawa na cmdlets zilizojadiliwa hapo awali: "Action-Object" ("Verb-Noun"). Kusudi lake kuu ni kusasisha kazi za usimamizi, lakini ni lugha iliyotafsiriwa kamili ambayo ina muundo wote muhimu: kuruka kwa masharti, matanzi, anuwai, safu, vitu, utunzaji wa makosa, nk. Kihariri chochote cha maandishi kinafaa kwa maandishi, lakini ni rahisi zaidi kuendesha Windows PowerShell ISE.

Unaweza kupitisha vigezo kwa hati, uifanye kuhitajika, na kuweka maadili chaguo-msingi. Kwa kuongeza, Windows PowerShell inakuwezesha kuunda na kupiga simu kazi kwa njia sawa na cmdlets, kwa kutumia kazi ya kujenga na braces curly. Hati iliyo na vitendaji inaitwa moduli na ina kiendelezi cha .psm1. Moduli lazima zihifadhiwe katika saraka zilizofafanuliwa katika vigeu vya mazingira vya PowerShell. Unaweza kuzitazama kwa kutumia amri ifuatayo:

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

Conveyors

Katika mfano wa mwisho, tulitumia muundo unaojulikana kwa watumiaji wa makombora ya Unix. Katika Windows PowerShell, bar ya wima pia inakuwezesha kupitisha pato la amri moja kwa pembejeo ya mwingine, lakini kuna tofauti kubwa katika utekelezaji wa bomba: hatuzungumzi tena kuhusu seti ya wahusika au maandishi fulani. cmdlets zilizojengewa ndani au vitendaji vilivyobainishwa na mtumiaji hurejesha vitu au safu za vitu, na pia vinaweza kuvipokea kama ingizo. Kama ganda la Bourne na warithi wake wengi, PowerShell hutumia bomba kurahisisha kazi ngumu.

Mfano rahisi zaidi wa bomba inaonekana kama hii:

Get-Service | Sort-Object -property Status

Windows PowerShell ni nini na inaliwa na nini? Sehemu ya 1: Sifa Muhimu
cmdlet ya Pata-Huduma inatekelezwa kwanza, na kisha huduma zote inazopokea hupitishwa kwa cmdlet ya Kitu cha Panga kwa kupangwa kwa sifa ya Hali. Ni hoja gani ambayo matokeo ya sehemu ya awali ya bomba hupitishwa inategemea aina yake - kawaida ni InputObject. Suala hili litajadiliwa kwa undani zaidi katika makala iliyotolewa kwa lugha ya programu ya PowerShell. 

Ikiwa unataka, unaweza kuendelea na mlolongo na kupitisha matokeo ya operesheni ya Kitu cha Kupanga kwa cmdlet nyingine (itatekelezwa kutoka kushoto kwenda kulia). Kwa njia, watumiaji wa Windows pia wanapata ujenzi wa utaftaji unaojulikana kwa Unixoids zote: 

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

Kuendesha majukumu chinichini 

Mara nyingi, ni muhimu kutekeleza amri fulani nyuma, ili usisubiri matokeo ya utekelezaji wake katika kikao cha shell. Windows PowerShell ina cmdlets kadhaa kwa kesi hii:

Start-Job - zindua kazi ya nyuma;
Stop-Job - kusimamisha kazi ya nyuma;
Get-Job - kutazama orodha ya kazi za nyuma;
Receive-Job - kutazama matokeo ya kazi ya nyuma;
Remove-Job - kufuta kazi ya nyuma;
Wait-Job - kuhamisha kazi ya nyuma kwenye console.

Kuanza kazi ya usuli, tunatumia Anza-Job cmdlet na kutaja amri au seti ya amri katika braces curly:

Start-Job {Get-Service}

Windows PowerShell ni nini na inaliwa na nini? Sehemu ya 1: Sifa Muhimu
Kazi za usuli katika Windows PowerShell zinaweza kubadilishwa kwa kujua majina yao. Kwanza, hebu tujifunze jinsi ya kuzionyesha:

Get-Job

Windows PowerShell ni nini na inaliwa na nini? Sehemu ya 1: Sifa Muhimu
Sasa hebu tuonyeshe matokeo ya kazi Job1:

Receive-Job Job1 | more

Windows PowerShell ni nini na inaliwa na nini? Sehemu ya 1: Sifa Muhimu
Ni rahisi sana.

Utekelezaji wa amri ya mbali

Windows PowerShell inakuwezesha kutekeleza amri na maandiko sio tu kwenye kompyuta ya ndani, lakini pia kwenye kompyuta ya mbali, na hata kwenye kundi zima la mashine. Kuna njia kadhaa za kufanya hivi:

  • cmdlets nyingi zina parameta -ComputerName, lakini kwa njia hii haitawezekana, kwa mfano, kuunda conveyor;
  • Cmdlet Enter-PSSession inakuwezesha kuunda kikao cha maingiliano kwenye mashine ya mbali; 
  • Kwa kutumia cmdlet Invoke-Command unaweza kuendesha amri au hati kwenye kompyuta moja au zaidi za mbali.

Matoleo ya PowerShell

PowerShell imebadilika sana tangu kutolewa kwake kwa mara ya kwanza mnamo 2006. Chombo kinapatikana kwa mifumo mingi inayoendesha kwenye majukwaa tofauti ya maunzi (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 na OS X. Toleo jipya zaidi la 6.2 lilitolewa Januari 10, 2018. Maandishi yaliyoandikwa kwa matoleo ya awali yana uwezekano mkubwa wa kufanya kazi katika yale ya baadaye, lakini matatizo yanaweza kutokea kwa uhamisho wa kinyume, kwa kuwa zaidi ya miaka ya maendeleo, idadi kubwa ya cmdlets mpya imeonekana katika PowerShell. Unaweza kujua toleo la ganda la amri iliyosanikishwa kwenye kompyuta yako kwa kutumia mali ya PSVersion ya $PSVersionTable kutofautisha iliyojengwa ndani:

$PSVersionTable.PSVersion

Windows PowerShell ni nini na inaliwa na nini? Sehemu ya 1: Sifa Muhimu
Unaweza pia kutumia cmdlet:

Get-Variable -Name PSVersionTable –ValueOnly

Windows PowerShell ni nini na inaliwa na nini? Sehemu ya 1: Sifa Muhimu
Vile vile hufanywa na Get-Host cmdlet. Kwa kweli, kuna chaguzi nyingi, lakini kuzitumia unahitaji kujifunza lugha ya programu ya PowerShell, ambayo ndio tutafanya katika makala inayofuata

Matokeo ya 

Microsoft imeweza kuunda ganda la amri lenye nguvu kwelikweli na mazingira rahisi jumuishi ya kutengeneza hati. Kinachoitofautisha na zana tunazozifahamu katika ulimwengu wa Unix ni ushirikiano wake wa kina na mifumo ya uendeshaji ya familia ya Windows, pamoja na programu kwao na jukwaa la NET Core. PowerShell inaweza kuitwa ganda lenye mwelekeo wa kitu kwa sababu cmdlets na vitendakazi vilivyoainishwa na mtumiaji hurudisha vitu au safu za vitu na vinaweza kuvipokea kama ingizo. Tunafikiri kwamba wasimamizi wote wa seva kwenye Windows wanapaswa kumiliki chombo hiki: wakati umepita wakati wangeweza kufanya bila mstari wa amri. Gamba la koni ya hali ya juu inahitajika sana VPS yetu ya gharama nafuu inayoendesha Windows Server Core, lakini hiyo ni hadithi tofauti kabisa.

Windows PowerShell ni nini na inaliwa na nini? Sehemu ya 1: Sifa Muhimu

Watumiaji waliojiandikisha pekee ndio wanaweza kushiriki katika utafiti. Weka sahihitafadhali.

Ni habari gani zinazopaswa kuzungumziwa kwanza katika makala zinazofuata za mfululizo huo?

  • 53,2%Kupanga programu katika PowerShell123

  • 42,4%Kazi na Moduli za PowerShell98

  • 22,1%Jinsi ya kusaini hati zako mwenyewe?51

  • 12,1%Kufanya kazi na hazina kupitia watoa huduma (watoa huduma)28

  • 57,6%Kuendesha Utawala wa Kompyuta na PowerShell133

  • 30,7%Kusimamia programu na kupachika vitekelezo vya PowerShell kwenye bidhaa za wahusika wengine71

Watumiaji 231 walipiga kura. Watumiaji 37 walijizuia.

Chanzo: mapenzi.com

Kuongeza maoni