Dè a th’ ann an Windows PowerShell agus cò leis a bhios e ag ithe? Pàirt 1: Prìomh fheartan

Gu h-eachdraidheil, tha goireasan loidhne-àithne air siostaman Unix air an leasachadh nas fheàrr na air Windows, ach le teachd a-steach fuasgladh ùr, tha an suidheachadh air atharrachadh.

Leigidh Windows PowerShell le luchd-rianachd an t-siostaim a’ mhòr-chuid de ghnìomhan àbhaisteach a dhèanamh fèin-ghluasadach. Le a chuideachadh, faodaidh tu roghainnean atharrachadh, stad agus tòiseachadh air seirbheisean, agus cuideachd cumail suas a’ mhòr-chuid de thagraidhean stàlaichte. Bhiodh e ceàrr an uinneag ghorm fhaicinn mar eadar-theangair àithne eile. Chan eil an dòigh-obrach seo a’ nochdadh brìgh nan innleachdan a mhol Microsoft. Gu dearbh, tha comasan Windows PowerShell tòrr nas fharsainge: ann an sreath ghoirid de artaigilean feuchaidh sinn ri faighinn a-mach mar a tha fuasgladh Microsoft eadar-dhealaichte bho na h-innealan air a bheil sinn nas eòlaiche.

Dè a th’ ann an Windows PowerShell agus cò leis a bhios e ag ithe? Pàirt 1: Prìomh fheartan

Prìomh fheartan 

Gu dearbh, tha Windows PowerShell gu sònraichte na shlige àithne le cànan sgrìobhaidh, a chaidh a thogail an toiseach air an .NET Framework agus nas fhaide air adhart air an .NET Core. Eu-coltach ri sligean a tha a 'gabhail ri agus a' tilleadh dàta teacsa, bidh Windows PowerShell ag obair le clasaichean .NET, aig a bheil feartan agus dòighean-obrach. Leigidh PowerShell leat òrdughan cumanta a ruith agus bheir e cothrom dhut cuideachd air nithean COM, WMI, agus ADSI. Bidh e a’ cleachdadh diofar stòradh, leithid an siostam faidhle no clàr Windows, airson faighinn a-steach don rud ris an canar. solaraichean. Is fhiach a bhith mothachail gu bheil e comasach co-phàirtean so-ghnìomhaichte PowerShell a fhighe a-steach do thagraidhean eile gus diofar obrachaidhean a chuir an gnìomh, a’ gabhail a-steach. tro eadar-aghaidh grafaigeach. Tha an cùl fìor cuideachd: tha mòran de thagraidhean Windows a’ toirt cothrom air an eadar-aghaidh riaghlaidh aca tro PowerShell. 

Leigidh Windows PowerShell leat:

  • Atharraich roghainnean an t-siostaim obrachaidh;
  • Stiùirich seirbheisean agus pròiseasan;
  • Dèan rèiteachadh air dreuchdan agus co-phàirtean an fhrithealaiche;
  • Stàlaich bathar-bog;
  • Stiùirich bathar-bog stàlaichte tro eadar-aghaidh sònraichte;
  • Cuir a-steach co-phàirtean so-ghnìomhaichte ann am prògraman treas-phàrtaidh;
  • Cruthaich sgriobtaichean gus gnìomhan rianachd a dhèanamh fèin-ghluasadach;
  • Obraich leis an t-siostam faidhle, clàr Windows, stòr teisteanais, msaa.

Shell agus àrainneachd leasachaidh

Tha Windows PowerShell ann an dà chruth: a bharrachd air an emuladair tòcan le slige àithne, tha àrainneachd sgrìobhaidh aonaichte (ISE). Gus faighinn chun eadar-aghaidh loidhne-àithne, dìreach tagh an ath-ghoirid iomchaidh bho chlàr Windows no ruith powershell.exe bhon chlàr Run. Nochdaidh uinneag ghorm air an sgrion, gu math eadar-dhealaichte ann an comasan bhon cmd.exe antediluvian. Tha fèin-chrìochnachadh agus feartan eile ann a tha eòlach air luchd-cleachdaidh sligean àithne airson siostaman Unix.

Dè a th’ ann an Windows PowerShell agus cò leis a bhios e ag ithe? Pàirt 1: Prìomh fheartan

Gus obrachadh leis an t-slige feumaidh tu cuimhneachadh air cuid de gheàrr-dhealbhan meur-chlàr:

  • Bidh na saighdean suas is sìos a’ gluasad tron ​​eachdraidh gus òrdughan a chaidh a sgrìobhadh roimhe ath-aithris;
  • Bidh an t-saighead cheart aig deireadh na loidhne ag ath-sgrìobhadh a’ charactar àithne roimhe le caractar;
  • Bidh Ctrl+Home a’ sguabadh às an teacsa clò-sgrìobhte bho shuidheachadh a’ chursair gu toiseach na loidhne;
  • Bidh Ctrl+End a’ sguabadh às teacsa bhon chursair gu deireadh na loidhne.

Tha F7 a’ sealltainn uinneag leis na h-òrdughan a chaidh a chuir a-steach agus leigidh e leat aon dhiubh a thaghadh. Bidh an consol cuideachd ag obair le bhith a’ taghadh teacsa leis an luchag, a’ dèanamh leth-bhreac, suidheachadh cursair, cuir às, backspace - a h-uile dad a tha sinn dèidheil air.

Dè a th’ ann an Windows PowerShell agus cò leis a bhios e ag ithe? Pàirt 1: Prìomh fheartan
Tha Windows PowerShell ISE na àrainneachd leasachaidh làn-chuimseach le deasaiche còd a bheir taic do thabaichean agus soilleireachadh co-chòrdadh, dealbhaiche àithne, dì-bhugadair togte, agus toileachas prògramadh eile. Ma sgrìobhas tu tàthan às deidh an ainm àithne ann an deasaiche na h-àrainneachd leasachaidh, gheibh thu a h-uile paramadair a tha ri fhaighinn san liosta tuiteam-sìos, a’ comharrachadh an t-seòrsa. Faodaidh tu PowerShell ISE a chuir air bhog an dàrna cuid tro ath-ghoirid bho chlàr an t-siostaim no a’ cleachdadh am faidhle so-ghnìomhaichte powershell_ise.exe.

Dè a th’ ann an Windows PowerShell agus cò leis a bhios e ag ithe? Pàirt 1: Prìomh fheartan

Cmdlets 

Ann an Windows PowerShell, an rud ris an canar. cmdlets. Is e clasaichean .NET sònraichte a tha seo a bheir seachad measgachadh de ghnìomhachd. Tha iad air an ainmeachadh a rèir prionnsapal “Action-Object” (no “Verb-Noun, mas fheàrr leat), agus tha an ceangal a tha air a sgaradh le tàthan coltach ri ro-innse agus cuspair ann an seantansan cànain nàdarra. Mar eisimpleir, tha Get-Help gu litireil a’ ciallachadh “Get-Help” no ann an co-theacsa PowerShell: “Show-Help”. Gu dearbh, is e seo analogue den àithne fear ann an siostaman Unix, agus feumar leabhraichean-làimhe ann an PowerShell iarraidh san dòigh seo, agus chan ann le bhith a’ gairm cmdlets leis an iuchair -help no /?.. Na dìochuimhnich mu na sgrìobhainnean air-loidhne airson PowerShell: Tha e gu math mionaideach aig Microsoft.

A bharrachd air Get, bidh cmdlets cuideachd a’ cleachdadh gnìomhairean eile gus gnìomhan a chomharrachadh (agus chan e gnìomhairean a-mhàin, gu cruaidh). Anns an liosta gu h-ìosal tha sinn a 'toirt seachad eisimpleirean:

Add - cuir;
Clear - glan;
Enable - Tionndaidh air;
Disable - Cuir dheth;
New - cruthaich;
Remove - sguabadh às;
Set - faighnich;
Start - ruith;
Stop - stad;
Export - às-mhalairt;
Import - a-steach.

Tha cmdlets siostam, cleachdaiche agus roghainneil ann: mar thoradh air an coileanadh, bidh iad uile a 'tilleadh rud no sreath de nithean. Chan eil iad mothachail air cùisean, i.e. Bho shealladh an eadar-theangair àithne, chan eil diofar eadar Get-Help agus get-help. Tha an samhla ';' air a chleachdadh airson dealachadh, ach chan eil feum air ach ma thèid grunn cmdlets a chur gu bàs air aon loidhne. 

Tha cmdlets Windows PowerShell air an cruinneachadh ann am modalan (NetTCPIP, Hyper-V, msaa), agus tha cmdlet Get-Command ann airson rannsachadh le nì agus gnìomh. Faodaidh tu cuideachadh a shealltainn air mar seo:

Get-Help Get-Command

Dè a th’ ann an Windows PowerShell agus cò leis a bhios e ag ithe? Pàirt 1: Prìomh fheartan

Gu gnàthach, tha an àithne a’ taisbeanadh cuideachadh luath, ach thèid paramadairean (argamaidean) a chuir gu cmdlets mar a dh’ fheumar. Le an cuideachadh, faodaidh tu, mar eisimpleir, cuideachadh fhaighinn mionaideach (-mionaideach paramadair) no coileanta (-Full), a bharrachd air eisimpleirean taisbeanaidh (- Eisimpleirean paramadair):

Get-Help Get-Command -Examples

Taic ann an Windows Tha PowerShell air ùrachadh leis an Update-Help cmdlet. Ma tha loidhne òrdughan ro fhada, faodar na h-argamaidean cmdlet a ghluasad chun an ath fhear le bhith a’ sgrìobhadh an caractar seirbheis ‘`’ agus a’ putadh Enter - dìreach crìoch a chur air sgrìobhadh àithne air aon loidhne agus leantainn air adhart air loidhne eile chan obraich sin.

Gu h-ìosal tha eisimpleirean de cmdlets cumanta: 

Get-Process - a 'sealltainn pròiseasan a tha a' ruith san t-siostam;
Get-Service - seall seirbheisean agus an inbhe;
Get-Content - seall susbaint an fhaidhle.

Airson cmdlets a chleachdar gu tric agus goireasan taobh a-muigh, tha co-fhaclan goirid aig Windows PowerShell - ailias. Mar eisimpleir, tha dir na alias airson Get-ChildItem. Tha cuideachd analogues de òrdughan bho shiostaman Unix anns an liosta de cho-fhaclan (ls, ps, msaa), agus tha an cmdlet Get-Help air a ghairm leis an àithne cuideachaidh. Faodar an làn liosta de cho-fhaclan fhaicinn a’ cleachdadh an cmdlet Get-Alias:

Dè a th’ ann an Windows PowerShell agus cò leis a bhios e ag ithe? Pàirt 1: Prìomh fheartan

Sgriobtaichean PowerShell, Gnìomhan, Modalan, agus Cànan

Tha sgriobtaichean Windows PowerShell air an stòradh mar fhaidhlichean teacsa sìmplidh le leudachadh .ps1. Chan urrainn dhut an ruith le bhith a’ briogadh dùbailte: feumaidh tu briogadh deas gus an clàr-taice co-theacsa fhosgladh agus tagh “Run in PowerShell”. Bhon consol feumaidh tu an dàrna cuid an t-slighe slàn a shònrachadh don sgriobt, no a dhol chun eòlaire iomchaidh agus ainm an fhaidhle a sgrìobhadh. Tha ruith sgriobtaichean cuideachd cuingealaichte le poileasaidh siostam, agus gus sùil a thoirt air na roghainnean gnàthach faodaidh tu an cmdlet Get-ExecutionPolicy a chleachdadh, a thilleas aon de na luachan a leanas:

Restricted - tha e toirmisgte ruith sgriobtaichean (gu bunaiteach);
AllSigned - chan fhaod ach sgriobtaichean air an soidhnigeadh le leasaiche earbsach a ruith;
RemoteSigned - Ceadaichte a bhith a 'ruith sgriobtaichean soidhnichte agus fhèin;
Unrestricted - Ceadaichte sgriobtaichean sam bith a ruith.

Tha dà roghainn aig an rianaire. Tha an tè as tèarainte a’ toirt a-steach a bhith a’ soidhnigeadh sgriobtaichean, ach is e fìor dhùrachd a tha seo - bidh sinn a’ dèiligeadh ris anns na h-artaigilean a leanas. A-nis gabhamaid slighe an aghaidh as lugha agus atharraichidh sinn am poileasaidh:

Set-ExecutionPolicy RemoteSigned

Dè a th’ ann an Windows PowerShell agus cò leis a bhios e ag ithe? Pàirt 1: Prìomh fheartan
Gus seo a dhèanamh, feumaidh tu PowerShell a ruith mar rianadair, ged as urrainn dhut paramadair sònraichte a chleachdadh gus am poileasaidh atharrachadh airson an neach-cleachdaidh gnàthach.

Tha sgriobtaichean air an sgrìobhadh ann an cànan prògramadh cuspair, agus tha na h-òrdughan aca air an ainmeachadh a rèir an aon phrionnsapal ris na cmdlets a chaidh a dheasbad roimhe: “Action-Object” (“Verb-Noun”). Is e am prìomh adhbhar aige gnìomhan rianachd a dhèanamh fèin-ghluasadach, ach is e cànan làn-mhìneachaidh a th’ ann anns a bheil a h-uile togail riatanach: leum gun chumhachan, lùban, caochladairean, arrays, nithean, làimhseachadh mhearachdan, msaa. Tha deasaiche teacsa sam bith freagarrach airson sgriobtaichean a sgrìobhadh, ach tha e nas freagarraiche Windows PowerShell ISE a ruith.

Faodaidh tu crìochan a thoirt don sgriobt, an dèanamh èigneachail, agus cuideachd luachan bunaiteach a shuidheachadh. Leigidh Windows PowerShell leat gnìomhan a chruthachadh agus a ghairm san aon dòigh ri cmdlets, a’ cleachdadh an togail gnìomh agus braces lùbach. Canar modal ri sgriobt le gnìomhan agus tha leudachadh .psm1 air. Feumar modalan a stòradh ann an clàran a tha air am mìneachadh ann an caochladairean àrainneachd PowerShell. Faodaidh tu am faicinn leis an òrdugh a leanas:

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

Luchd-giùlain

Anns an eisimpleir mu dheireadh, chleachd sinn dealbhadh a bha eòlach air luchd-cleachdaidh sligean Unix. Ann an Windows PowerShell, leigidh am bàr dìreach leat toradh aon àithne a chuir a-steach gu cuir a-steach fear eile, ach tha eadar-dhealachadh mòr ann am buileachadh na loidhne-phìoban: chan eil sinn a’ bruidhinn tuilleadh mu sheata de charactaran no cuid de theacsa. Bidh cmdlets togte no gnìomhan a tha air an sònrachadh leis a’ chleachdaiche a’ tilleadh nithean no sreath de nithean, agus faodaidh iad cuideachd fhaighinn mar chur-a-steach. Coltach ri slige Bourne agus an iomadh neach a thàinig às a dhèidh, bidh PowerShell a’ cleachdadh loidhne-phìoban gus gnìomhan iom-fhillte a dhèanamh nas sìmplidhe.

Tha an eisimpleir as sìmplidh de loidhne-phìoban a 'coimhead mar seo:

Get-Service | Sort-Object -property Status

Dè a th’ ann an Windows PowerShell agus cò leis a bhios e ag ithe? Pàirt 1: Prìomh fheartan
Tha an cmdlet Get-Service air a chur gu bàs an toiseach, agus an uairsin thèid a h-uile seirbheis a gheibh e a chuir chun cmdlet Sort-Object airson a sheòrsachadh a rèir an t-seilbh Inbhe. Dè an argamaid a thèid toradh na h-earrainn roimhe seo den loidhne-phìoban a thoirt seachad an urra ris an t-seòrsa aice - mar as trice is e InputObject a th’ ann. Thèid a’ chùis seo a dheasbad nas mionaidiche ann an artaigil coisrigte do chànan prògramadh PowerShell. 

Ma thogras tu, faodaidh tu leantainn air adhart leis an t-sèine agus toradh Sort-Object a chuir gu cmdlet eile (thèid an cur gu bàs bho chlì gu deas). Air an t-slighe, tha cothrom aig luchd-cleachdaidh Windows cuideachd air an dealbhadh a tha eòlach air a h-uile Unixoids airson toradh duilleag-air-duilleag: 

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

A 'ruith ghnìomhan air a' chùl 

Gu math tric feumar òrdugh sònraichte a ruith air a 'chùl gus nach feitheamh ri toradh a chur gu bàs anns an t-seisean shligean. Tha grunn cmdlets aig Windows PowerShell airson an t-suidheachaidh seo:

Start-Job - cuir air bhog gnìomh cùl-fhiosrachaidh;
Stop-Job - stad air obair cùl-fhiosrachaidh;
Get-Job - coimhead air an liosta de ghnìomhan cùl-fhiosrachaidh;
Receive-Job - a 'coimhead air toradh obair cùl-fhiosrachaidh;
Remove-Job - cuir às do ghnìomh cùl-fhiosrachaidh;
Wait-Job - a’ gluasad a’ ghnìomh cùl-fhiosrachaidh air ais chun chonsail.

Gus obair cùl-fhiosrachaidh a thòiseachadh, bidh sinn a’ cleachdadh an cmdlet Start-Job agus a’ sònrachadh àithne no seata de dh’ àitheantan ann an sèbhirean lùbach:

Start-Job {Get-Service}

Dè a th’ ann an Windows PowerShell agus cò leis a bhios e ag ithe? Pàirt 1: Prìomh fheartan
Faodar gnìomhan cùl-fhiosrachaidh ann an Windows PowerShell a làimhseachadh le bhith eòlach air an ainmean. An toiseach, ionnsaichidh sinn mar a sheallas tu iad:

Get-Job

Dè a th’ ann an Windows PowerShell agus cò leis a bhios e ag ithe? Pàirt 1: Prìomh fheartan
A-nis seallaidh sinn toradh Iob1:

Receive-Job Job1 | more

Dè a th’ ann an Windows PowerShell agus cò leis a bhios e ag ithe? Pàirt 1: Prìomh fheartan
Tha e gu math sìmplidh.

Cur an gnìomh àithne iomallach

Leigidh Windows PowerShell leat òrdughan agus sgriobtaichean a ruith chan ann a-mhàin gu h-ionadail, ach cuideachd air coimpiutair iomallach agus eadhon air buidheann iomlan de dh’ innealan. Tha grunn dhòighean ann seo a dhèanamh:

  • Tha paramadair aig mòran cmdlets -ComputerName, ach san dòigh seo cha bhith e comasach, mar eisimpleir, inneal-giùlain a chruthachadh;
  • Cmdlet Enter-PSSession a 'leigeil leat seisean eadar-ghnìomhach a chruthachadh air inneal iomallach; 
  • A 'cleachdadh cmdlet Invoke-Command Faodaidh tu òrdughan no sgriobtaichean a ruith air aon choimpiutair iomallach no barrachd.

Tionndaidhean PowerShell

Bho chaidh a leigeil a-mach an toiseach ann an 2006, tha PowerShell air atharrachadh gu mòr. Tha an inneal ri fhaighinn airson iomadh siostam a tha a’ ruith air diofar àrd-ùrlaran bathar-cruaidh (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 agus OS X. Chaidh an sgaoileadh 6.2 as ùire fhoillseachadh air 10 Faoilleach 2018. Tha e glè choltach gun obraich sgriobtaichean a chaidh a sgrìobhadh airson dreachan nas tràithe ann an feadhainn nas fhaide air adhart, ach dh’ fhaodadh duilgheadasan èirigh le gluasad air ais, oir thar nam bliadhnaichean leasachaidh, tha àireamh mhòr de cmdlets ùra air nochdadh ann an PowerShell. Gheibh thu a-mach an dreach den t-slige àithne a chaidh a chuir a-steach air a’ choimpiutair agad a’ cleachdadh an t-seilbh PSVersion den chaochladair togte $ PSVersionTable:

$PSVersionTable.PSVersion

Dè a th’ ann an Windows PowerShell agus cò leis a bhios e ag ithe? Pàirt 1: Prìomh fheartan
Faodaidh tu cuideachd an cmdlet a chleachdadh:

Get-Variable -Name PSVersionTable –ValueOnly

Dè a th’ ann an Windows PowerShell agus cò leis a bhios e ag ithe? Pàirt 1: Prìomh fheartan
Faodar an aon rud a dhèanamh a’ cleachdadh an cmdlet Get-Host. Gu dearbh, tha mòran roghainnean ann, ach airson an cleachdadh feumaidh tu cànan prògramadh PowerShell ionnsachadh, agus is e sin a nì sinn ann an an ath artaigil

Builean 

Tha Microsoft air a bhith comasach air slige stiùiridh fìor chumhachdach a chruthachadh le àrainneachd aonaichte goireasach airson sgriobtaichean a leasachadh. Is e an rud a tha ga eadar-dhealachadh bho na h-innealan air a bheil sinn eòlach ann an saoghal Unix an aonachadh domhainn aige le siostaman obrachaidh teaghlach Windows, a bharrachd air bathar-bog dhaibh agus an àrd-ùrlar .NET Core. Faodar PowerShell a ghairm mar shlige a tha ag amas air nithean oir bidh cmdlets agus gnìomhan air an sònrachadh leis a’ chleachdaiche a’ tilleadh nithean no sreath de nithean agus gheibh iad iad mar chur-a-steach. Tha sinn den bheachd gum bu chòir an inneal seo a bhith aig gach rianadair frithealaiche Windows: tha an ùine air a dhol seachad nuair a b’ urrainn dhaibh a dhèanamh às aonais an loidhne-àithne. Tha feum air slige console adhartach gu sònraichte air an VPS cosgais ìseal againn a’ ruith Windows Server Core, ach ’s e sgeulachd gu tur eadar-dhealaichte a tha sin.

Dè a th’ ann an Windows PowerShell agus cò leis a bhios e ag ithe? Pàirt 1: Prìomh fheartan

Chan fhaod ach luchd-cleachdaidh clàraichte pàirt a ghabhail san sgrùdadh. Soidhnig a-steach, mas e do thoil e.

Dè na cuspairean air am bu chòir dèiligeadh an toiseach anns na h-ath artaigilean san t-sreath?

  • 53,2%Prògramachadh ann an PowerShell123

  • 42,4%Feartan agus modalan PowerShell98

  • 22,1%Mar a chuireas tu ainm ris na sgriobtaichean agad fhèin?51

  • 12,1%Ag obair le stòran-stòraidh tro sholaraichean28

  • 57,6%Dèan fèin-ghluasad air rianachd coimpiutair a’ cleachdadh PowerShell133

  • 30,7%A’ riaghladh bathar-bog agus a’ stèidheachadh bathar-bog PowerShell ann am bathar treas-phàrtaidh71

Bhòt 231 neach-cleachdaidh. Sheall 37 luchd-cleachdaidh.

Source: www.habr.com

Cuir beachd ann