Ի՞նչ է 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-ի գրանցամատյան, որոնց հասանելիություն ապահովվում է zogenaamde մատակարարների միջոցով: Ակնհայտ է, որ PowerShell-ի շարժական բաղադրիչները կարելի է ներդնել այլ ծրագրերում տարբեր գործողությունների իրականացնելու համար, այդ թվում ՝ գրաֆիկական միջերեսի միջոցով: Մեկ ուրիշ կողմից, շատ ծրագրեր Windows-ի համար պարունակում են իրենց կառավարման միջերեսները PowerShell-ի միջոցով: 

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

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

Խմբաքարային միջավայր և զարգացման միջավայր

Windows PowerShell-ը գոյություն ունի երկու ձևաչափով. կոնսոլային էմուլյացիոն ծրագրի հետ մեկտեղ կա ինտեգրված սցենարների միջավայր (Integrated Scripting Environment — ISE): Կոմանդային գծի ինտերֆեյսին հասանելիություն ունենալու համար պարզապես ընտրեք համապատասխան շտեմարան Windows մենյուում կամ անցկացրեք powershell.exe «Գործողություններ» մենյուից: Էկրանի վրա կհայտնվի կապտավուն սարքավորում, որը նկատելիորեն տարբերվում է վաղուց մոռացված 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՝ հիմնական հնարավորությունները

Կոմանդլետներ 

Windows PowerShell-ում հայտնվեցին անվանումները — կոմանդլետներ (cmdlets): Սա հատուկ .NET դասեր են, որոնցով նախատեսված է բազմակողմանի ֆունկցիոնալություն: Նրանք անվանվում են «Գործողություն-Սուբյեկտ» սկզբունքով (կամ «动词-名词», եթե դա ձեզ ավելի դուր է գալիս), իսկ բաժինը, որը խիստ հատուկ է ենթադրյալն ու ենթականում, հիշեցնում է բնական լեզուների արձակումը: Օրինակ, Get-Help բառացիորեն նշանակում է «Գտնել-Օգնություն» կամ PowerShell-ի համատեքստում՝ «Ցույց տալ-Օգնություն»: Այդ կերպ դա նոյն է որպես man հրահանգ Unix համակարգերում, իսկ PowerShell-ում մունիցայներ պետք է խնդրել հենց այդպես, այլ ոչ թե հրահանգներ հրավիրել -help կամ \/?:-ով: Չպետք է մոռանալ նաև PowerShell-ի առցանց փաստաթղթավորումը. Microsoft-ում այն բավական մանրամասն է:

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

Ավելացնել — ավելացնել;
Clear — մաքրել;
Enable — հնարավոր դարձնել;
Disable — անջատել;
New — ստեղծել;
Remove — հեռացնել;
Set — սահմանել;
Start — սկսել;
Stop — կանգնեցնել;
Հրապարակել — արտահանել;
— դա տվելների պահպանման համակարգը (օպերացիոն համակարգը).. — ներմուծել:

Պաշտպանված, օգտագործողների և ընտրովի կոմանդլետներ կան. նրանց գործառույթից ազատվելու արդյունքում նրանք բոլորը վերադարձնում են օբյեկտ կամ օբյեկտների զանգված: Նախարարն անհարկի չէ, այն է, որ կատարման տեսանկյունից կիրառումայինների համար մտքեր չեն գոյանում միջեւ Get-Help և get-help: Դրանում տարածման համար օգտագործվում է ‘;’ նշանը, սակայն այն անհրաժեշտ է միայն եթե մեկ տողի մեջ կատարվում են մի քանի կոմանդլետներ: 

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

Get-Help Get-Command

Ի՞նչ է Windows PowerShell-ը և ինչպե՞ս պետք է օգտագործել այն: حصه 1՝ հիմնական հնարավորությունները

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

Get-Help Get-Command -Examples

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

Ներդրվում ենք մի քանի տարածված կոմանդլետների օրինակներ. 

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

Ամենաք Frequently օգտագործվող կոմանդլետների և արտաքին գործիքների համար Windows PowerShell-ում կան կարճ սինոնիմներ՝ ալիասներ (անգլ. Alias). Օրինակ, dir — ալիաս Get-ChildItem. Սինոնիմներ ցուցակում կան նաև Unix համակարգերից аналогներ (ls, ps և այլն), իսկ Get-Help կոմանդլետը կարելի է հրավիրել help կոմանդով. Сինոնիմների ամբողջական ցուցակը կարելի է տեսնել Get-Alias կոմանդլետով.

Ի՞նչ է Windows PowerShell-ը և ինչպե՞ս պետք է օգտագործել այն: حصه 1՝ հիմնական հնարավորությունները

Սցենարաններ, ֆունկցիաներ, մոդուլները և PowerShell լեզուն

Windows PowerShell-ի սցենարանները պահպանվում են պարզ տեքստային ֆայլերի տեսքով, որոնց ընդլայնումը .ps1 է. Մինչև դրանք չի կարելի գործարկել կրկնակ սեղմումով. անհրաժեշտ է մեկանգամյա սեղմումով բացել համատեքստային մենյու և ընտրել 'Run with PowerShell' տարբերակը: Կոնսոլում հարկավոր կլինի կամ նշել սցենարի լրիվ ուղին, կամ անցնել համապատասխան կատեգորիա և գրել ֆայլի անունը. Սցենարների գործարկումը նույնպես սահմանափակվում է համակարգային քաղաքականությամբ, իսկ ընթացիկ կարգավորումները ստուգելու համար կարելի է օգտագործել Get-ExecutionPolicy կոմանդլետը, որը կտա հետևյալ արժեքներից մեկը:

Restricted — սցենարների գործարկումը արգելվում է (ժամանակակից կարգ)(default);
AllSigned — միայն վստահելի մշակողների կողմից ստորագրված սցենարների գործարկումն է թույլատրվում;
RemoteSigned — թույլատրվում է ստորագրված և ինքնակարթիվ սցենարանների գործարկումը;
Unrestricted — թույլատրվում է ցանկացած սցենարների գործարկումը.

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

Set-ExecutionPolicy RemoteSigned

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

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

Սքրիպտի մեջ կարելի է փոխանցել պարամետրեր, անել դրանք պարտադիր, ինչպես նաև սահմանել ազդանշաններ ըստ կանխադրված արժեքների: Բացի այդ, Windows PowerShell-ը թույլ է տալիս ստեղծել ֆունկցիաներ և վերաբերել դրանց այնպես, ինչպես խնդիրների մասին. դրա համար օգտագործվում է Function կառուցվածքը և աղյուսակները: Ֆունկցիաներով սցենարը կոչվում է մոդուլ և ունի .psm1 հավելված: Մոդուլները պետք է պահվեն PowerShell-ի միջավայրի փոփոխականներում սահմանված каталոգներում: Դրանք կարելի է դիտել հետևյալ հրամանով:

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

Գոյականներ

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

Պարզագույն ուղիղ գծի օրինակնlooks like this:

Get-Service | Sort-Object -property Status

Ի՞նչ է Windows PowerShell-ը և ինչպե՞ս պետք է օգտագործել այն: حصه 1՝ հիմնական հնարավորությունները
Նախապես կատարում է Get-Service հրամանը, ապա ստացված բոլոր ծառայությունները փոխանցվում են Sort-Object հրամանին `Status` հատկության համաձայն: Որոշակի պարամետրին փոխանցվում է նախորդը, կախված է նրա տեսակից - սովորաբար դա InputObject է: Մանրամասնորեն այս հարցը կքննարկվի PowerShell ծրագրավորման լեզվին նվիրված հոդվածում. 

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

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

Ավելի ուշ խնդիրների կատարումը ֆոնում 

Կայուն հաճախ անհրաժեշտ է այնքանից դեպի մեկ հրաման ֆոնում, որպեսզի չսպասեք նրա կատարելանման արդյունքի ձեր միջավայրում: Windows PowerShell-ում այսպիսի դեպքերի համար տարբեր հրամաններ կան:

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

Ֆոնային խնդրի մեկնարկման համար օգտագործում ենք Start-Job հրամանը և մանիֆեստում նշում ենք այդ հրամանը կամ հրամանների հավաքածու:

Start-Job {Get-Service}

Ի՞նչ է Windows PowerShell-ը և ինչպե՞ս պետք է օգտագործել այն: حصه 1՝ հիմնական հնարավորությունները
Windows PowerShell-ում ֆոնային խնդիրներով կարող եք գործել, իմանալով դրանց անունները: Նախ սովորենք դրանց ցուցադրվել:

Get-Job

Ի՞նչ է Windows PowerShell-ը և ինչպե՞ս պետք է օգտագործել այն: حصه 1՝ հիմնական հնարավորությունները
Այսպիսով, հիմա ցույց կտանք Job1-ի կատարած աշխատանքի արդյունքը:

Receive-Job Job1 | more

Ի՞նչ է Windows PowerShell-ը և ինչպե՞ս պետք է օգտագործել այն: حصه 1՝ հիմնական հնարավորությունները
Այդ ամենը բավականին պարզ է.

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

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

  • Շատ commandlet-ներում կա պարամետր -ComputerName, բայց այս եղանակով, օրինակ, հնարավոր չէ ստեղծել խողովակ;
  • Commandlet Enter-PSSession թույլ է տալիս ստեղծել հեռավոր համակարգչում ինտերակտիվ seans; 
  • Commandlet-ով 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-ը թողարկվել է 2018 թվականի հոկտեմբերի 10-ին: Նախորդ տարբերակների համար գրված սկրիպտները հնարավոր է, որ աշխատեն նորերին, սակայն հետադարձ փոխադրության հետ կարող են խնդիրներ առաջանալ, քանի որ PowerShell-ի զարգացման ընթացքում շատ նոր commandlet-ներ են հայտնվել: Իրենք համակարգչից տեղադրված հրամանատանու տարբերակը կարող եք իմանալ $PSVersionTable փոփոխականի PSVersion հատկությամբ:

$PSVersionTable.PSVersion

Ի՞նչ է Windows PowerShell-ը և ինչպե՞ս պետք է օգտագործել այն: حصه 1՝ հիմնական հնարավորությունները
Также можно воспользоваться командлетом:

Get-Variable -Name PSVersionTable –ValueOnly

Ի՞նչ է Windows PowerShell-ը և ինչպե՞ս պետք է օգտագործել այն: حصه 1՝ հիմնական հնարավորությունները
То же самое делается и с помощью командлета Get-Host. На самом деле вариантов множество, но для их применения нужно изучить язык программирования PowerShell, чем мы и займемся в следующей статье

Եզրակացություններ 

Microsoft ընկերությանը հաջողվեց ստեղծել իսկապես հզոր հրամանատոն, որը հարմար ինտեգրված միջավայր ունի սկրիպտերի մշակման համար: Unix աշխարհում մեզ ծանոթ միջոցներից այն առանձնանում է Windows ընտանիքի գործող համակարգերի և դրանց համար ծրագրային ապահովման և .NET Core-ին վրա խորքային ինտեգրացմամբ: PowerShell-ը կարելի է անվանել օբյեկտ-օգտագործվող հրամանատո, որովհետև commandlet-ները և օգտվողի գործառույթներն վերադարձնում են օբյեկտներ կամ օբյեկտների զանգվածներ և կարող են ստանալ դրանք որպես մուտքի: Մենք կարծում ենք, որ այս գործիքով պետք է տիրապետեն բոլոր Windows սերվերի ադմինիստրատորները: Ժամանակը անցել է, երբ նրանք կարող էին առանց հրամանատողի կողմնորոշվել: Գործի advanced console shell-ը հատկապես անհրաժեշտ է մեր մատչելի VPS-ներում, որոնք պետք է գործեն Windows Server Core-ի տակ, բայց դա արդեն մեկ այլ պատմություն է: наших недорогих VPS, работающих под управлением Windows Server Core, բայց դա արդեն համեստ պատմություն է:

Ի՞նչ է Windows PowerShell-ը և ինչպե՞ս պետք է օգտագործել այն: حصه 1՝ հիմնական հնարավորությունները

Պատասխանելու համար պետք է գրանցված օգտվող լինել։ Մուտք, խնդրում եմ։

Ի՞նչ թեմաներ նախապատրաստել հաջորդ հոդվածների շարքում:

  • 53,2%PowerShell-ում ծրագրավորում123

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

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

  • 12,1%Համակարգիչների վարչումը PowerShell-ով 28

  • 57,6%Համակարգչային ադմինիստրացված վարչությունները PowerShell-ով ավտոմատացում133

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

231 օգտվողներ ձայնեցին։ 37 օգտվողներ հրաժարվեցին։

Ընտանիք: habr.com

Գնել հուսալի հյուրընկալում DDoS պաշտպանությամբ, VPS VDS սերվերներով 🔥 Գնել հուսալի հյուրընկալում DDoS պաշտպանությամբ, VPS VDS սերվերներով | ProHoster