Ինչ է Windows PowerShell-ը և ինչով է այն ուտվում: Մաս 1. Հիմնական հատկանիշներ

Պատմականորեն, Unix համակարգերում հրամանի տող կոմունալ ծառայություններն ավելի լավ են զարգացած, քան Windows-ում, սակայն նոր լուծման հայտնվելով իրավիճակը փոխվել է:

Windows PowerShell-ը թույլ է տալիս համակարգի ադմինիստրատորներին ավտոմատացնել առօրյա առաջադրանքների մեծ մասը: Նրա օգնությամբ դուք կարող եք փոխել կարգավորումները, դադարեցնել և սկսել ծառայությունները, ինչպես նաև կատարել տեղադրված հավելվածների մեծ մասի սպասարկում: Սխալ կլիներ կապույտ պատուհանը ընկալել որպես մեկ այլ հրամանի թարգմանիչ: Այս մոտեցումը չի արտացոլում Microsoft-ի առաջարկած նորարարությունների էությունը։ Փաստորեն, Windows PowerShell-ի հնարավորությունները շատ ավելի լայն են. կարճ հոդվածների շարքում մենք կփորձենք պարզել, թե ինչպես է Microsoft-ի լուծումը տարբերվում մեզ ավելի ծանոթ գործիքներից:

Ինչ է Windows PowerShell-ը և ինչով է այն ուտվում: Մաս 1. Հիմնական հատկանիշներ

Հիմնական հատկանիշները 

Իհարկե, Windows PowerShell-ը հիմնականում հրամանի կեղև է՝ սկրիպտավորման լեզվով, որն ի սկզբանե կառուցվել է .NET Framework-ի, իսկ ավելի ուշ՝ .NET Core-ի վրա: Ի տարբերություն շելերի, որոնք ընդունում և վերադարձնում են տեքստային տվյալներ, Windows PowerShell-ն աշխատում է .NET դասերի հետ, որոնք ունեն հատկություններ և մեթոդներ։ PowerShell-ը թույլ է տալիս գործարկել ընդհանուր հրամաններ, ինչպես նաև հնարավորություն է տալիս մուտք գործել COM, WMI և ADSI օբյեկտներ: Այն օգտագործում է տարբեր պահեստներ, ինչպիսիք են ֆայլային համակարգը կամ Windows ռեեստրը, որոնց մուտքի համար այսպես կոչված. մատակարարներ. Հարկ է նշել PowerShell-ի գործարկվող բաղադրիչները այլ հավելվածների մեջ ներդնելու հնարավորությունը՝ տարբեր գործողություններ իրականացնելու համար, ներառյալ. գրաֆիկական ինտերֆեյսի միջոցով: Ճիշտ է նաև հակառակը՝ Windows-ի շատ հավելվածներ PowerShell-ի միջոցով ապահովում են իրենց կառավարման ինտերֆեյսերի հասանելիությունը: 

Windows PowerShell-ը թույլ է տալիս.

  • Փոխել օպերացիոն համակարգի կարգավորումները;
  • Կառավարել ծառայությունները և գործընթացները;
  • Կարգավորել սերվերի դերերը և բաղադրիչները;
  • Ծրագրաշարի տեղադրում;
  • Կառավարեք տեղադրված ծրագրակազմը հատուկ միջերեսների միջոցով;
  • Ներդրեք գործարկվող բաղադրիչները երրորդ կողմի ծրագրերում;
  • Ստեղծեք սցենարներ՝ կառավարման առաջադրանքները ավտոմատացնելու համար;
  • Աշխատեք ֆայլային համակարգի, Windows ռեեստրի, վկայագրերի պահեստի և այլնի հետ:

Shell և զարգացման միջավայր

Windows PowerShell-ը գոյություն ունի երկու ձևով. բացի հրամանի կեղևով կոնսոլի էմուլյատորից, կա ինտեգրված սցենարային միջավայր (ISE): Հրամանի տողի ինտերֆեյսին մուտք գործելու համար պարզապես ընտրեք համապատասխան դյուրանցումը Windows-ի ընտրացանկից կամ գործարկեք powershell.exe-ը Run ընտրացանկից: Էկրանին կհայտնվի կապույտ պատուհան, որն իր հնարավորություններով նկատելիորեն տարբերվում է հակահեղեղված cmd.exe-ից: Կան ավտոմատ լրացում և այլ առանձնահատկություններ, որոնք ծանոթ են Unix համակարգերի հրամանների վահանակների օգտագործողներին:

Ինչ է Windows PowerShell-ը և ինչով է այն ուտվում: Մաս 1. Հիմնական հատկանիշներ

Կեղևի հետ աշխատելու համար հարկավոր է հիշել ստեղնաշարի մի քանի դյուրանցումներ.

  • Վեր և վար սլաքները պտտվում են պատմության մեջ՝ նախկինում մուտքագրված հրամանները կրկնելու համար.
  • Տողի վերջում գտնվող աջ սլաքը կրկնում է նախորդ հրամանի նիշ առ նիշ.
  • Ctrl+Home-ը ջնջում է մուտքագրված տեքստը կուրսորի դիրքից մինչև տողի սկիզբը;
  • Ctrl+End-ը ջնջում է տեքստը կուրսորից մինչև տողի վերջը:

F7-ը ցույց է տալիս մուտքագրված հրամաններով պատուհան և թույլ է տալիս ընտրել դրանցից մեկը: Վահանակը նաև աշխատում է՝ ընտրելով տեքստ մկնիկի միջոցով, պատճենահանել, կուրսորը տեղադրել, ջնջել, backspace՝ այն ամենը, ինչ մենք սիրում ենք:

Ինչ է Windows PowerShell-ը և ինչով է այն ուտվում: Մաս 1. Հիմնական հատկանիշներ
Windows PowerShell ISE-ը զարգացման լիարժեք միջավայր է՝ կոդերի խմբագրիչով, որն աջակցում է ներդիրների և շարահյուսության ընդգծմանը, հրամանների դիզայներին, ներկառուցված վրիպազերծիչին և ծրագրավորման այլ հաճույքներին: Եթե ​​մշակման միջավայրի խմբագրում հրամանի անունից հետո գծիկ եք գրում, բացվող ցանկում կստանաք բոլոր հասանելի պարամետրերը՝ նշելով տեսակը: Դուք կարող եք գործարկել PowerShell ISE-ը կամ համակարգի ընտրացանկից դյուրանցման միջոցով կամ օգտագործելով գործարկվող powershell_ise.exe ֆայլը:

Ինչ է Windows PowerShell-ը և ինչով է այն ուտվում: Մաս 1. Հիմնական հատկանիշներ

Cmdlets 

Windows PowerShell-ում այսպես կոչված. cmdlets. Սրանք մասնագիտացված .NET դասեր են, որոնք ապահովում են տարբեր գործառույթներ: Դրանք անվանվում են ըստ «Գործողություն-օբյեկտ» սկզբունքի (կամ «Բայ-Գոյական, եթե նախընտրում եք), իսկ գծիկով բաժանված կապակցականը հիշեցնում է նախադասությունն ու ենթական բնական նախադասությունների մեջ։ Օրինակ, Get-Help բառացիորեն նշանակում է «Օգնություն ստանալ» կամ PowerShell համատեքստում՝ «Ցույց տալ օգնություն»: Փաստորեն, սա Unix համակարգերում man հրամանի անալոգն է, և PowerShell-ի ձեռնարկները պետք է պահանջվեն այսպես, և ոչ թե կանչելով cmdlets –help կամ /? ստեղնով: Մի մոռացեք PowerShell-ի առցանց փաստաթղթերի մասին: Microsoft-ը դա բավականին մանրամասն է ներկայացնում:

Բացի Get-ից, cmdlet-ներն օգտագործում են նաև այլ բայեր՝ գործողություններ նշելու համար (և ոչ միայն բայերը, խստորեն ասած): Ստորև բերված ցանկում մենք տալիս ենք մի քանի օրինակ.

Add - ավելացնել;
Clear - մաքուր;
Enable - միացնել;
Disable - անջատել;
New - ստեղծել;
Remove - ջնջել;
Set - հարցնել;
Start - վազել;
Stop - կանգառ;
Export - արտահանում;
Import - ներմուծում.

Կան համակարգի, օգտագործողի և ընտրովի cmdlets. կատարման արդյունքում նրանք բոլորը վերադարձնում են օբյեկտ կամ օբյեկտների զանգված: Նրանք մեծատառերի զգայուն չեն, այսինքն. Հրամանների թարգմանչի տեսակետից «Get-Help»-ի և «get-help»-ի միջև տարբերություն չկա: «;» նշանն օգտագործվում է տարանջատման համար, բայց դա պահանջվում է միայն այն դեպքում, եթե մի տողում մի քանի cmdlet են գործարկվում: 

Windows PowerShell cmdlet-ները խմբավորված են մոդուլների մեջ (NetTCPIP, Hyper-V և այլն), և կա Get-Command cmdlet՝ ըստ օբյեկտների և գործողությունների որոնման համար: Դուք կարող եք օգնություն ցույց տալ դրա վերաբերյալ հետևյալ կերպ.

Get-Help Get-Command

Ինչ է Windows PowerShell-ը և ինչով է այն ուտվում: Մաս 1. Հիմնական հատկանիշներ

Լռելյայնորեն հրամանը ցուցադրում է արագ օգնություն, սակայն պարամետրերը (արգումենտները) ըստ անհրաժեշտության փոխանցվում են cmdlets-ին: Նրանց օգնությամբ դուք կարող եք, օրինակ, ստանալ մանրամասն (-Detailed parameter) կամ ամբողջական (-Full) օգնություն, ինչպես նաև ցուցադրել օրինակներ (-Examples պարամետր).

Get-Help Get-Command -Examples

Windows PowerShell-ի օգնությունը թարմացվում է Update-Help cmdlet-ով: Եթե ​​պարզվում է, որ հրամանների տողը չափազանց երկար է, ապա cmdlet-ի արգումենտները կարող են փոխանցվել հաջորդին` գրելով ծառայության նիշը «`» և սեղմելով Enter. պարզապես մի տողում հրաման գրելն ավարտելը և մյուսով շարունակելը չի ​​աշխատի:

Ստորև բերված են սովորական cmdlet-ների մի քանի օրինակ. 

Get-Process — ցույց տալ համակարգում գործող գործընթացները.
Get-Service — ցուցադրել ծառայությունները և դրանց կարգավիճակը.
Get-Content - ցուցադրել ֆայլի բովանդակությունը:

Հաճախ օգտագործվող cmdlet-ների և արտաքին կոմունալ ծառայությունների համար Windows PowerShell-ն ունի կարճ հոմանիշներ՝ անուն-ազգանուններ: Օրինակ, dir-ը Get-ChildItem-ի կեղծանունն է: Հոմանիշների ցանկում կան նաև Unix համակարգերի հրամանների անալոգներ (ls, ps և այլն), իսկ Get-Help cmdlet-ը կանչվում է help հրամանով։ Հոմանիշների ամբողջական ցանկը կարելի է դիտել Get-Alias ​​​​cmdlet-ի միջոցով.

Ինչ է Windows PowerShell-ը և ինչով է այն ուտվում: Մաս 1. Հիմնական հատկանիշներ

PowerShell-ի սցենարներ, գործառույթներ, մոդուլներ և լեզու

Windows PowerShell սկրիպտները պահվում են որպես պարզ տեքստային ֆայլեր .ps1 ընդլայնմամբ: Դուք չեք կարող դրանք գործարկել կրկնակի սեղմելով. անհրաժեշտ է աջ սեղմել համատեքստի ընտրացանկը բացելու համար և ընտրել «Գործարկել PowerShell-ում»: Վահանակից կամ պետք է նշեք սկրիպտի ամբողջական ուղին, կամ գնաք համապատասխան գրացուցակ և գրեք ֆայլի անունը: Գործող սկրիպտները նույնպես սահմանափակված են համակարգի քաղաքականությամբ, և ընթացիկ կարգավորումները ստուգելու համար կարող եք օգտագործել Get-ExecutionPolicy cmdlet-ը, որը կվերադարձնի հետևյալ արժեքներից մեկը.

Restricted — սկրիպտների գործարկումն արգելված է (լռելյայն);
AllSigned — թույլատրվում է գործարկել միայն վստահելի ծրագրավորողի կողմից ստորագրված սցենարները.
RemoteSigned - Թույլատրվում է գործարկել ստորագրված և սեփական սցենարներ;
Unrestricted - Թույլատրվում է գործարկել ցանկացած սցենար:

Ադմինիստրատորն ունի երկու տարբերակ. Ամենաապահովը ներառում է սցենարների ստորագրում, բայց սա բավականին լուրջ կախարդություն է. մենք դրանով կզբաղվենք հաջորդ հոդվածներում: Հիմա գնանք նվազագույն դիմադրության ճանապարհով և փոխենք քաղաքականությունը.

Set-ExecutionPolicy RemoteSigned

Ինչ է Windows PowerShell-ը և ինչով է այն ուտվում: Մաս 1. Հիմնական հատկանիշներ
Դա անելու համար դուք պետք է գործարկեք PowerShell-ը որպես ադմինիստրատոր, թեև կարող եք օգտագործել հատուկ պարամետր՝ ընթացիկ օգտագործողի քաղաքականությունը փոխելու համար:

Սցենարները գրված են օբյեկտ-կողմնորոշված ​​ծրագրավորման լեզվով, որոնց հրամաններն անվանվել են նույն սկզբունքով, ինչ նախկինում քննարկված cmdlet-ները՝ «Գործողություն-օբյեկտ» («Բայ-Գոյական»): Դրա հիմնական նպատակը կառավարման առաջադրանքների ավտոմատացումն է, բայց դա լիարժեք մեկնաբանվող լեզու է, որն ունի բոլոր անհրաժեշտ կառուցվածքները՝ պայմանական թռիչք, հանգույցներ, փոփոխականներ, զանգվածներ, օբյեկտներ, սխալների մշակում և այլն։ Ցանկացած տեքստային խմբագրիչ հարմար է սկրիպտներ գրելու համար, բայց ամենահարմարն է Windows PowerShell ISE-ն գործարկել:

Դուք կարող եք պարամետրեր փոխանցել սկրիպտին, դրանք դարձնել պարտադիր, ինչպես նաև սահմանել լռելյայն արժեքներ: Windows PowerShell-ը նաև թույլ է տալիս ստեղծել և կանչել գործառույթներ այնպես, ինչպես cmdlet-ները՝ օգտագործելով Function կառուցվածքը և գանգուր փակագծերը: Ֆունկցիաներով սկրիպտը կոչվում է մոդուլ և ունի .psm1 ընդլայնում: Մոդուլները պետք է պահվեն PowerShell միջավայրի փոփոխականներում սահմանված դիրեկտորիաներում: Դուք կարող եք դրանք դիտել՝ օգտագործելով հետևյալ հրամանը.

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

Փոխակրիչներ

Վերջին օրինակում մենք օգտագործեցինք դիզայն, որը ծանոթ է Unix-ի պատյանների օգտագործողներին: Windows PowerShell-ում ուղղահայաց սանդղակը նաև թույլ է տալիս մի հրամանի ելքը փոխանցել մյուսի մուտքագրմանը, սակայն խողովակաշարի իրականացման մեջ զգալի տարբերություն կա. մենք այլևս չենք խոսում նիշերի կամ ինչ-որ տեքստի մասին: Ներկառուցված cmdlet-ները կամ օգտագործողի կողմից սահմանված գործառույթները վերադարձնում են օբյեկտներ կամ առարկաների զանգվածներ և կարող են նաև ստանալ դրանք որպես մուտքագրում: Ինչպես Bourne shell-ը և նրա բազմաթիվ իրավահաջորդները, PowerShell-ն օգտագործում է խողովակաշար՝ բարդ առաջադրանքները պարզեցնելու համար:

Խողովակաշարի ամենապարզ օրինակն ունի հետևյալ տեսքը.

Get-Service | Sort-Object -property Status

Ինչ է Windows PowerShell-ը և ինչով է այն ուտվում: Մաս 1. Հիմնական հատկանիշներ
Սկզբում գործարկվում է Get-Service cmdlet-ը, այնուհետև նրա ստացած բոլոր ծառայությունները փոխանցվում են Sort-Object cmdlet-ին՝ ըստ Status հատկության տեսակավորման: Թե որ արգումենտին է փոխանցվում խողովակաշարի նախորդ հատվածի արդյունքը, կախված է դրա տեսակից. սովորաբար դա InputObject է: Այս հարցը ավելի մանրամասն կքննարկվի PowerShell ծրագրավորման լեզվին նվիրված հոդվածում։ 

Ցանկության դեպքում կարող եք շարունակել շղթան և Sort-Object-ի արդյունքը փոխանցել մեկ այլ cmdlet-ի (դրանք կկատարվեն ձախից աջ): Ի դեպ, Windows-ի օգտատերերը նաև մուտք ունեն բոլոր Unixoid-ներին ծանոթ դիզայնը՝ էջ առ էջ ելքի համար. 

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

Առաջադրանքների կատարումը հետին պլանում 

Շատ հաճախ անհրաժեշտ է ետին պլանում որոշակի հրաման գործարկել, որպեսզի չսպասեք դրա կատարման արդյունքին shell-ի նիստում: Windows PowerShell-ն ունի մի քանի cmdlet այս իրավիճակի համար.

Start-Job - գործարկել ֆոնային առաջադրանք;
Stop-Job — ֆոնային առաջադրանքի դադարեցում;
Get-Job — դիտելով ֆոնային առաջադրանքների ցանկը.
Receive-Job — դիտել ֆոնային առաջադրանքի արդյունքը.
Remove-Job — ֆոնային առաջադրանքի ջնջում;
Wait-Job — ֆոնային առաջադրանքը ետ տեղափոխելով վահանակ:

Ֆոնային առաջադրանք սկսելու համար մենք օգտագործում ենք Start-Job cmdlet-ը և գանգուր փակագծերում նշում ենք հրաման կամ հրամանների մի շարք.

Start-Job {Get-Service}

Ինչ է Windows PowerShell-ը և ինչով է այն ուտվում: Մաս 1. Հիմնական հատկանիշներ
Windows PowerShell-ում ֆոնային առաջադրանքները կարող են շահարկվել՝ իմանալով դրանց անունները: Նախ, եկեք սովորենք, թե ինչպես ցուցադրել դրանք.

Get-Job

Ինչ է Windows PowerShell-ը և ինչով է այն ուտվում: Մաս 1. Հիմնական հատկանիշներ
Հիմա եկեք ցույց տանք Job1-ի արդյունքը.

Receive-Job Job1 | more

Ինչ է Windows PowerShell-ը և ինչով է այն ուտվում: Մաս 1. Հիմնական հատկանիշներ
Դա բավականին պարզ է.

Հրամանի հեռավոր կատարում

Windows PowerShell-ը թույլ է տալիս հրամաններ և սկրիպտներ գործարկել ոչ միայն տեղական, այլ նաև հեռավոր համակարգչի և նույնիսկ մեքենաների մի ամբողջ խմբի վրա: Դա անելու մի քանի եղանակ կա.

  • Շատ cmdlet-ներ ունեն պարամետր -ComputerName, բայց այս կերպ հնարավոր չի լինի, օրինակ, կոնվեյեր ստեղծել;
  • Cmdlet Enter-PSSession թույլ է տալիս ստեղծել ինտերակտիվ նիստ հեռավոր մեքենայի վրա. 
  • Օգտագործելով cmdlet Invoke-Command Դուք կարող եք հրամաններ կամ սկրիպտներ գործարկել մեկ կամ մի քանի հեռավոր համակարգիչների վրա:

PowerShell տարբերակները

2006 թվականին իր առաջին թողարկումից հետո PowerShell-ը շատ է փոխվել: Գործիքը հասանելի է տարբեր ապարատային հարթակներում աշխատող մի շարք համակարգերի համար (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 և OS X: Վերջին թողարկումը 6.2 թողարկվել է 10 թվականի հունվարի 2018-ին: Ավելի վաղ տարբերակների համար գրված սկրիպտները, ամենայն հավանականությամբ, կաշխատեն ավելի ուշ տարբերակներում, սակայն խնդիրներ կարող են առաջանալ հակադարձ փոխանցման դեպքում, քանի որ զարգացման տարիների ընթացքում PowerShell-ում հայտնվել են մեծ թվով նոր cmdlet-ներ: Դուք կարող եք պարզել ձեր համակարգչում տեղադրված հրամանի վահանակի տարբերակը՝ օգտագործելով $PSVersionTable ներկառուցված փոփոխականի PSVersion հատկությունը.

$PSVersionTable.PSVersion

Ինչ է Windows PowerShell-ը և ինչով է այն ուտվում: Մաս 1. Հիմնական հատկանիշներ
Կարող եք նաև օգտագործել cmdlet-ը.

Get-Variable -Name PSVersionTable –ValueOnly

Ինչ է Windows PowerShell-ը և ինչով է այն ուտվում: Մաս 1. Հիմնական հատկանիշներ
Նույնը կարելի է անել Get-Host cmdlet-ի միջոցով: Իրականում կան բազմաթիվ տարբերակներ, բայց դրանք օգտագործելու համար դուք պետք է սովորեք PowerShell ծրագրավորման լեզուն, ինչը մենք կանենք հաջորդ հոդվածը

Արդյունքները 

Microsoft-ին հաջողվել է ստեղծել իսկապես հզոր հրամանի վահանակ՝ հարմար ինտեգրված միջավայրով սցենարներ մշակելու համար: Այն, ինչ այն տարբերում է Unix աշխարհում մեզ ծանոթ գործիքներից, նրա խորը ինտեգրումն է Windows ընտանիքի օպերացիոն համակարգերի, ինչպես նաև դրանց և .NET Core հարթակի համար նախատեսված ծրագրերի հետ: PowerShell-ը կարելի է անվանել օբյեկտի վրա հիմնված կեղև, քանի որ cmdlet-ները և օգտագործողի կողմից սահմանված գործառույթները վերադարձնում են օբյեկտներ կամ առարկաների զանգվածներ և կարող են դրանք ստանալ որպես մուտքագրում: Մենք կարծում ենք, որ բոլոր Windows սերվերի ադմինիստրատորները պետք է ունենան այս գործիքը. անցել է ժամանակը, երբ նրանք կարող էին անել առանց հրամանի տողի: Հատկապես անհրաժեշտ է առաջադեմ վահանակի պատյան մեր էժան VPS-ն, որն աշխատում է Windows Server Core-ով, բայց դա բոլորովին այլ պատմություն է։

Ինչ է Windows PowerShell-ը և ինչով է այն ուտվում: Մաս 1. Հիմնական հատկանիշներ

Հարցմանը կարող են մասնակցել միայն գրանցված օգտվողները։ Մուտք գործել, խնդրում եմ:

Ո՞ր թեմաներին պետք է առաջին հերթին անդրադառնալ շարքի հաջորդ հոդվածներում:

  • 53,2%Ծրագրավորում PowerShell123-ում

  • 42,4%PowerShell98 գործառույթներ և մոդուլներ

  • 22,1%Ինչպե՞ս ստորագրել սեփական սցենարները:51

  • 12,1%Աշխատեք պահեստների հետ պրովայդերների միջոցով28

  • 57,6%Ավտոմատացրեք համակարգչային կառավարումը PowerShell133-ի միջոցով

  • 30,7%Ծրագրային ապահովման կառավարում և PowerShell-ի գործարկվող նյութերի ներդրումը երրորդ կողմի արտադրանքներում71

Քվեարկել է 231 օգտատեր։ 37 օգտատեր ձեռնպահ է մնացել։

Source: www.habr.com

Добавить комментарий