Windows PowerShell nima va u nima bilan iste'mol qilinadi? 1-qism: Asosiy xususiyatlar

Tarixan, Unix tizimlarida buyruq qatori yordamchi dasturlari Windowsga qaraganda yaxshiroq rivojlangan, ammo yangi yechim paydo bo'lishi bilan vaziyat o'zgargan.

Windows PowerShell tizimi ma'murlariga ko'pgina muntazam vazifalarni avtomatlashtirishga imkon beradi. Uning yordamida siz sozlamalarni o'zgartirishingiz, xizmatlarni to'xtatishingiz va ishga tushirishingiz, shuningdek, ko'pgina o'rnatilgan ilovalarga texnik xizmat ko'rsatishingiz mumkin. Moviy oynani boshqa buyruq tarjimoni sifatida qabul qilish noto'g'ri bo'lar edi. Ushbu yondashuv Microsoft tomonidan taklif qilingan innovatsiyalarning mohiyatini aks ettirmaydi. Aslida, Windows PowerShell-ning imkoniyatlari ancha kengroq: qisqacha maqolalar turkumida biz Microsoft yechimi bizga ko'proq tanish bo'lgan vositalardan qanday farq qilishini aniqlashga harakat qilamiz.

Windows PowerShell nima va u nima bilan iste'mol qilinadi? 1-qism: Asosiy xususiyatlar

Asosiy xususiyatlar 

Albatta, Windows PowerShell birinchi navbatda .NET Framework-da va keyinroq .NET Core-da qurilgan skript qobig'idir. Matn ma'lumotlarini qabul qiladigan va qaytaradigan qobiqlardan farqli o'laroq, Windows PowerShell xususiyatlari va usullariga ega bo'lgan .NET sinflari bilan ishlaydi. PowerShell sizga umumiy buyruqlarni ishga tushirish imkonini beradi, shuningdek, COM, WMI va ADSI obyektlariga kirish imkonini beradi. U kirish uchun fayl tizimi yoki Windows reestri kabi turli xil xotiralardan foydalanadi. yetkazib beruvchilar. Turli operatsiyalarni amalga oshirish uchun PowerShell bajariladigan komponentlarini boshqa ilovalarga joylashtirish imkoniyatini ta'kidlash kerak, shu jumladan. grafik interfeys orqali. Buning teskarisi ham to'g'ri: ko'pgina Windows ilovalari PowerShell orqali boshqaruv interfeyslariga kirishni ta'minlaydi. 

Windows PowerShell sizga quyidagilarga imkon beradi:

  • Operatsion tizim sozlamalarini o'zgartirish;
  • Xizmatlar va jarayonlarni boshqarish;
  • Server rollari va komponentlarini sozlash;
  • Dasturiy ta'minotni o'rnatish;
  • Maxsus interfeyslar orqali o'rnatilgan dasturiy ta'minotni boshqarish;
  • Bajariladigan komponentlarni uchinchi tomon dasturlariga joylashtirish;
  • Boshqaruv vazifalarini avtomatlashtirish uchun skriptlarni yaratish;
  • Fayl tizimi, Windows ro'yxatga olish kitobi, sertifikatlar do'koni va boshqalar bilan ishlash.

Shell va rivojlanish muhiti

Windows PowerShell ikki shaklda mavjud: buyruq qobig'iga ega konsol emulyatoriga qo'shimcha ravishda integratsiyalangan skript muhiti (ISE) mavjud. Buyruqlar qatori interfeysiga kirish uchun Windows menyusidan tegishli yorliqni tanlang yoki Run menyusidan powershell.exe faylini ishga tushiring. Ekranda antediluvian cmd.exe-dan sezilarli darajada farq qiladigan ko'k oyna paydo bo'ladi. Unix tizimlari uchun buyruq qobig'ining foydalanuvchilariga tanish bo'lgan avtoto'ldirish va boshqa funktsiyalar mavjud.

Windows PowerShell nima va u nima bilan iste'mol qilinadi? 1-qism: Asosiy xususiyatlar

Qobiq bilan ishlash uchun ba'zi klaviatura yorliqlarini eslab qolishingiz kerak:

  • Yuqoriga va pastga o'qlar avval kiritilgan buyruqlarni takrorlash uchun tarix bo'ylab harakatlanadi;
  • Satr oxiridagi o'ng strelka oldingi buyruq belgisini belgilar bo'yicha qayta kiritadi;
  • Ctrl+Home terilgan matnni kursor joyidan satr boshigacha o‘chiradi;
  • Ctrl+End kursordan satr oxirigacha bo'lgan matnni o'chiradi.

F7 terilgan buyruqlar bilan oynani ko'rsatadi va ulardan birini tanlash imkonini beradi. Konsol shuningdek, sichqoncha yordamida matnni tanlash, nusxa ko'chirish, kursorni joylashtirish, o'chirish, orqaga qaytarish - biz yoqtiradigan barcha narsalar orqali ishlaydi.

Windows PowerShell nima va u nima bilan iste'mol qilinadi? 1-qism: Asosiy xususiyatlar
Windows PowerShell ISE - bu yorliqlar va sintaksisni ajratib ko'rsatishni qo'llab-quvvatlaydigan kod muharriri, buyruqlar dizayneri, o'rnatilgan tuzatuvchi va boshqa dasturlash imkoniyatlariga ega to'liq ishlab chiqish muhiti. Rivojlanish muhiti muharririda buyruq nomidan keyin chiziqcha yozsangiz, ochiladigan ro'yxatda turni ko'rsatgan holda barcha mavjud parametrlarni olasiz. PowerShell ISE ni tizim menyusidagi yorliq orqali yoki powershell_ise.exe bajariladigan faylidan foydalanib ishga tushirishingiz mumkin.

Windows PowerShell nima va u nima bilan iste'mol qilinadi? 1-qism: Asosiy xususiyatlar

Cmdletlar 

Windows PowerShell-da, deb ataladigan. cmdletlar. Bular turli funksiyalarni ta'minlovchi maxsus .NET sinflaridir. Ular Action-Object (yoki xohlasangiz, Fe'l-Noun) deb nomlanadi va defis bilan ajratilgan havola tabiiy tildagi gaplardagi predikat va mavzuga o'xshaydi. Masalan, Get-Help so'zma-so'z "Yordam olish" degan ma'noni anglatadi yoki PowerShell kontekstida: "Yordamni ko'rsatish". Aslida, bu Unix tizimlaridagi man buyrug'ining analogidir va PowerShell-dagi qo'llanmalar --help yoki /? tugmalari bilan cmdletlarni chaqirish orqali emas, balki shu tarzda so'ralishi kerak.Onlayn PowerShell hujjatlari haqida unutmang: Microsoft bu haqda juda batafsil ma'lumotga ega.

Get-ga qo'shimcha ravishda, cmdletlar harakatlarni bildirish uchun boshqa fe'llardan ham foydalanadilar (va faqat fe'llarni emas, qat'iy aytganda). Quyidagi ro'yxatda biz ba'zi misollarni keltiramiz:

Add - qo'shish;
Clear - toza;
Enable - yoqish; ishga tushirish;
Disable - o'chiring;
New - yaratmoq;
Remove - o'chirish;
Set - so'rash;
Start - yugurish;
Stop - STOP;
Export - eksport;
Import - Import.

Tizim, foydalanuvchi va ixtiyoriy cmdletlar mavjud: bajarilishi natijasida ularning barchasi ob'ekt yoki ob'ektlar massivini qaytaradi. Ular katta-kichik harflarga sezgir emas, ya'ni. buyruq tarjimoni nuqtai nazaridan, Get-Help va get-help o'rtasida farq yo'q. Ajratish uchun ';' belgisi ishlatiladi, lekin u bir qatorda bir nechta cmdletlar bajarilgan taqdirdagina talab qilinadi. 

Windows PowerShell cmdletlari modullarga guruhlangan (NetTCPIP, Hyper-V va boshqalar) va ob'ekt va harakatlar bo'yicha qidirish uchun Get-Command buyrug'i mavjud. Siz bu borada yordam ko'rsatishingiz mumkin:

Get-Help Get-Command

Windows PowerShell nima va u nima bilan iste'mol qilinadi? 1-qism: Asosiy xususiyatlar

Odatiy bo'lib, buyruq tezkor yordamni ko'rsatadi, ammo parametrlar (argumentlar) kerak bo'lganda cmdletlarga uzatiladi. Ularning yordami bilan siz, masalan, batafsil (-Batafsil parametr) yoki to'liq (-To'liq) yordam olishingiz, shuningdek, misollarni ko'rsatishingiz mumkin (-Misollar parametri):

Get-Help Get-Command -Examples

Windows PowerShell-dagi yordam Update-Help buyrug'i bilan yangilanadi. Agar buyruqlar qatori juda uzun bo'lib chiqsa, cmdlet argumentlarini '`' xizmat belgisini yozish va Enter tugmasini bosish orqali keyingisiga o'tkazish mumkin - shunchaki bitta satrda buyruq yozishni tugatib, boshqasida davom etish ishlamaydi.

Quyida keng tarqalgan cmdletlarning ba'zi misollari keltirilgan: 

Get-Process — tizimda ishlayotgan jarayonlarni ko‘rsatish;
Get-Service — xizmatlar va ularning holatini ko‘rsatish;
Get-Content — fayl mazmunini ko'rsatish.

Tez-tez ishlatiladigan cmdletlar va tashqi yordam dasturlari uchun Windows PowerShell qisqa sinonimlariga ega - taxalluslar. Masalan, dir Get-ChildItem uchun taxallusdir. Sinonimlar ro'yxatida (ls, ps va boshqalar) Unix tizimlari buyruqlarining analoglari ham mavjud va Get-Help cmdlet yordam buyrug'i bilan chaqiriladi. Sinonimlarning to'liq ro'yxatini Get-Alias ​​cmdlet yordamida ko'rish mumkin:

Windows PowerShell nima va u nima bilan iste'mol qilinadi? 1-qism: Asosiy xususiyatlar

PowerShell skriptlari, funktsiyalari, modullari va tili

Windows PowerShell skriptlari .ps1 kengaytmali oddiy matnli fayllar sifatida saqlanadi. Siz ularni ikki marta bosish orqali ishga tushira olmaysiz: kontekst menyusini ochish uchun sichqonchaning o'ng tugmachasini bosishingiz va "PowerShell'da ishga tushirish" ni tanlashingiz kerak. Konsoldan siz skriptga to'liq yo'lni ko'rsatishingiz yoki tegishli katalogga o'tishingiz va fayl nomini yozishingiz kerak bo'ladi. Skriptlarni ishga tushirish tizim siyosati bilan ham cheklangan va joriy sozlamalarni tekshirish uchun quyidagi qiymatlardan birini qaytaradigan Get-ExecutionPolicy cmdletidan foydalanishingiz mumkin:

Restricted — skriptlarni ishga tushirish taqiqlangan (sukut bo'yicha);
AllSigned - faqat ishonchli ishlab chiquvchi tomonidan imzolangan skriptlarni ishga tushirishga ruxsat beriladi;
RemoteSigned - imzolangan va o'z skriptlarini ishga tushirishga ruxsat berilgan;
Unrestricted - Har qanday skriptlarni ishga tushirishga ruxsat berilgan.

Administrator ikkita variantga ega. Eng xavfsiz skriptlarni imzolashni o'z ichiga oladi, ammo bu juda jiddiy sehr - biz bu haqda keyingi maqolalarda ko'rib chiqamiz. Keling, eng kam qarshilik yo'liga o'tamiz va siyosatni o'zgartiramiz:

Set-ExecutionPolicy RemoteSigned

Windows PowerShell nima va u nima bilan iste'mol qilinadi? 1-qism: Asosiy xususiyatlar
Buni amalga oshirish uchun siz PowerShell-ni administrator sifatida ishga tushirishingiz kerak bo'ladi, ammo joriy foydalanuvchi uchun siyosatni o'zgartirish uchun maxsus parametrdan foydalanishingiz mumkin.

Skriptlar ob'ektga yo'naltirilgan dasturlash tilida yozilgan bo'lib, ularning buyruqlari ilgari muhokama qilingan cmdletlar bilan bir xil printsipga muvofiq nomlanadi: "Action-Object" ("Fe'l-Noun"). Uning asosiy maqsadi boshqaruv vazifalarini avtomatlashtirishdir, lekin u barcha kerakli konstruktsiyalarga ega bo'lgan to'liq huquqli talqin qilingan tildir: shartli o'tish, tsikllar, o'zgaruvchilar, massivlar, ob'ektlar, xatolarni qayta ishlash va boshqalar. Har qanday matn muharriri skriptlarni yozish uchun mos keladi, ammo Windows PowerShell ISE ni ishga tushirish eng qulaydir.

Siz parametrlarni skriptga o'tkazishingiz, ularni majburiy qilishingiz va standart qiymatlarni o'rnatishingiz mumkin. Windows PowerShell, shuningdek, Funktsiya konstruktsiyasi va jingalak qavslar yordamida cmdletlar kabi funktsiyalarni yaratish va chaqirish imkonini beradi. Funksiyalarga ega skript modul deb ataladi va .psm1 kengaytmasiga ega. Modullar PowerShell muhit o'zgaruvchilarida belgilangan kataloglarda saqlanishi kerak. Siz ularni quyidagi buyruq yordamida ko'rishingiz mumkin:

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

Konveyerlar

Oxirgi misolda biz Unix shell foydalanuvchilariga tanish bo'lgan konstruktsiyadan foydalandik. Windows PowerShell-da vertikal chiziq sizga bitta buyruqning chiqishini boshqasining kirishiga o'tkazishga imkon beradi, ammo quvur liniyasini amalga oshirishda sezilarli farq bor: biz endi belgilar to'plami yoki biron bir turdagi belgilar haqida gapirmayapmiz. matn. O'rnatilgan cmdletlar yoki foydalanuvchi tomonidan belgilangan funktsiyalar ob'ektlar yoki ob'ektlar massivlarini qaytaradi va ularni kiritish sifatida ham qabul qilishi mumkin. Bourne qobig'i va uning ko'plab vorislari singari, PowerShell quvur liniyasi bilan murakkab vazifalarni osonlashtiradi.

Eng oddiy quvur liniyasi misoli quyidagicha ko'rinadi:

Get-Service | Sort-Object -property Status

Windows PowerShell nima va u nima bilan iste'mol qilinadi? 1-qism: Asosiy xususiyatlar
Avval Get-Service buyrug'i bajariladi, so'ngra u olgan barcha xizmatlar Status xususiyati bo'yicha tartiblash uchun Sort-Object cmdletiga uzatiladi. Quvurning oldingi qismining natijasi qaysi argumentga uzatilishi uning turiga bog'liq - odatda bu InputObject. Ushbu masala PowerShell dasturlash tiliga bag'ishlangan maqolada batafsil ko'rib chiqiladi. 

Agar xohlasangiz, zanjirni davom ettirishingiz va Sort-Object operatsiyasi natijasini boshqa cmdletga o'tkazishingiz mumkin (ular chapdan o'ngga bajariladi). Aytgancha, Windows foydalanuvchilari ham barcha Unixoidlarga tanish bo'lgan sahifalash konstruktsiyasidan foydalanishlari mumkin: 

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

Orqa fonda bajariladigan vazifalar 

Ko'pincha qobiq seansida uning bajarilishi natijasini kutmaslik uchun fonda ma'lum bir buyruqni bajarish kerak bo'ladi. Windows PowerShell-da bu holat uchun bir nechta cmdlet mavjud:

Start-Job — fon vazifasini ishga tushirish;
Stop-Job - fon vazifasini to'xtatish;
Get-Job — fon vazifalari roʻyxatini koʻrish;
Receive-Job — fon topshirig‘ining natijasini ko‘rish;
Remove-Job — fon vazifasini oʻchirish;
Wait-Job — fon vazifasini konsolga qaytarish.

Fon vazifasini boshlash uchun biz Start-Job cmdletidan foydalanamiz va jingalak qavslar ichida buyruq yoki buyruqlar to'plamini belgilaymiz:

Start-Job {Get-Service}

Windows PowerShell nima va u nima bilan iste'mol qilinadi? 1-qism: Asosiy xususiyatlar
Windows PowerShell-dagi fon vazifalarini ularning nomlarini bilish orqali boshqarish mumkin. Birinchidan, ularni qanday ko'rsatishni bilib olaylik:

Get-Job

Windows PowerShell nima va u nima bilan iste'mol qilinadi? 1-qism: Asosiy xususiyatlar
Endi Job1 ishining natijasini ko'rsatamiz:

Receive-Job Job1 | more

Windows PowerShell nima va u nima bilan iste'mol qilinadi? 1-qism: Asosiy xususiyatlar
Bu juda oddiy.

Buyruqni masofadan turib bajarish

Windows PowerShell sizga buyruqlar va skriptlarni nafaqat mahalliy, balki uzoq kompyuterda va hatto butun mashinalar guruhida ham ishlatish imkonini beradi. Buning bir necha yo'li mavjud:

  • Ko'pgina cmdletlar parametrga ega -ComputerName, lekin bu tarzda, masalan, konveyerni yaratish mumkin bo'lmaydi;
  • Cmdlet Enter-PSSession masofaviy mashinada interaktiv seans yaratish imkonini beradi; 
  • Cmdlet yordamida Invoke-Command Bir yoki bir nechta masofaviy kompyuterlarda buyruqlar yoki skriptlarni ishga tushirishingiz mumkin.

PowerShell versiyalari

2006-yilda birinchi chiqarilganidan beri PowerShell juda ko'p o'zgardi. Asbob turli apparat platformalarida (x86, x86-64, Itanium, ARM) ishlaydigan ko'plab tizimlar uchun mavjud: 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 va OS X. Oxirgi versiya 6.2 10-yil 2018-yanvarda chiqarilgan. Oldingi versiyalar uchun yozilgan skriptlar keyingi versiyalarda ishlash ehtimoli yuqori, ammo teskari uzatishda muammolar paydo bo'lishi mumkin, chunki rivojlanish yillari davomida PowerShell-da ko'plab yangi cmdletlar paydo bo'ldi. Siz $PSVersionTable o'rnatilgan o'zgaruvchining PSVersion xususiyatidan foydalanib, kompyuteringizda o'rnatilgan buyruq qobig'ining versiyasini bilib olishingiz mumkin:

$PSVersionTable.PSVersion

Windows PowerShell nima va u nima bilan iste'mol qilinadi? 1-qism: Asosiy xususiyatlar
Siz shuningdek cmdlet dan foydalanishingiz mumkin:

Get-Variable -Name PSVersionTable –ValueOnly

Windows PowerShell nima va u nima bilan iste'mol qilinadi? 1-qism: Asosiy xususiyatlar
Xuddi shu narsani Get-Host cmdlet yordamida amalga oshirish mumkin. Aslida, ko'plab variantlar mavjud, ammo ulardan foydalanish uchun siz PowerShell dasturlash tilini o'rganishingiz kerak, biz buni qilamiz. keyingi maqola

natijalar 

Microsoft skriptlarni ishlab chiqish uchun qulay integratsiyalashgan muhitga ega chinakam kuchli buyruqlar qobig'ini yaratishga muvaffaq bo'ldi. Unix dunyosida bizga tanish bo'lgan vositalardan ajralib turadigan narsa uning Windows oilasi operatsion tizimlari, shuningdek, ular uchun dasturiy ta'minot va .NET Core platformasi bilan chuqur integratsiyalashganligidir. PowerShell-ni ob'ektga yo'naltirilgan qobiq deb atash mumkin, chunki cmdletlar va foydalanuvchi tomonidan belgilangan funktsiyalar ob'ektlarni yoki ob'ektlar massivlarini qaytaradi va ularni kirish sifatida qabul qilishi mumkin. Bizning fikrimizcha, barcha Windows server ma'murlari ushbu vositaga ega bo'lishi kerak: vaqt o'tdi, ular buyruq satrisiz ishlay olishdi. Kengaytirilgan konsol qobig'i ayniqsa kerak Windows Server Core bilan ishlaydigan arzon VPS, lekin bu butunlay boshqacha hikoya.

Windows PowerShell nima va u nima bilan iste'mol qilinadi? 1-qism: Asosiy xususiyatlar

So'rovda faqat ro'yxatdan o'tgan foydalanuvchilar ishtirok etishlari mumkin. tizimga kirishiltimos.

Seriyaning keyingi maqolalarida birinchi navbatda qanday mavzular muhokama qilinishi kerak?

  • 53,2%PowerShell123 da dasturlash

  • 42,4%PowerShell98 funktsiyalari va modullari

  • 22,1%O'z skriptlaringizni qanday imzolash mumkin?51

  • 12,1%Provayderlar (provayderlar) orqali omborlar bilan ishlash28

  • 57,6%PowerShell133 yordamida kompyuter boshqaruvini avtomatlashtirish

  • 30,7%Dasturiy ta'minotni boshqarish va PowerShell bajariladigan fayllarni uchinchi tomon mahsulotlariga joylashtirish71

231 foydalanuvchi ovoz berdi. 37 nafar foydalanuvchi betaraf qoldi.

Manba: www.habr.com

a Izoh qo'shish