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

Tarixan, Unix tizimlaridagi buyruq satri yordamchi dasturlari avvalgilariga qaraganda ko'proq rivojlangan Windowsammo, yangi yechim paydo bo'lishi bilan vaziyat o'zgardi.

Windows PowerShell tizim administratorlariga ko'pgina odatiy vazifalarni avtomatlashtirish imkonini beradi. Undan sozlamalarni o'zgartirish, xizmatlarni to'xtatish va ishga tushirish hamda o'rnatilgan ilovalarning ko'pchiligini qo'llab-quvvatlash uchun foydalanish mumkin. Moviy oynani shunchaki buyruqlar tarjimoni sifatida ko'rib chiqish chalg'ituvchi bo'lar edi. Bu yondashuv Microsoft innovatsiyalarining mohiyatini aks ettirmaydi. Aslida, imkoniyatlar Windows PowerShell ancha kengroq: ushbu qisqa maqolalar turkumida biz Microsoft yechimi biz ko'proq tanish bo'lgan vositalardan qanday farq qilishini tushunishga harakat qilamiz.

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

Asosiy xususiyatlar 

Shubhasiz Windows PowerShell asosan skript tiliga ega buyruq qobig'i bo'lib, dastlab .NET Framework va keyinchalik .NET Core asosida yaratilgan. Matn ma'lumotlarini qabul qiladigan va qaytaradigan qobiqlardan farqli o'laroq, Windows PowerShell xususiyatlar va usullarga ega bo'lgan .NET sinflari bilan ishlaydi. PowerShell sizga oddiy buyruqlarni bajarish imkonini beradi va shuningdek, COM, WMI va ADSI obyektlariga kirish imkonini beradi. U fayl tizimi va registr kabi turli xil saqlash resurslaridan foydalanadi. Windows, ularga provayderlar deb ataladiganlar orqali kirish mumkin. PowerShell bajariladigan komponentlarini boshqa ilovalarga turli operatsiyalarni bajarish uchun, jumladan, grafik interfeys orqali joylashtirish imkoniyatini ta'kidlash kerak. Buning aksi ham to'g'ri: ko'plab ilovalar uchun Windows PowerShell orqali ularning 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, registr bilan ishlash Windows, sertifikat saqlash va boshqalar.

Shell va rivojlanish muhiti

U erda Windows PowerShell ikki shaklda mavjud: konsol emulyatori va buyruq qobig'idan tashqari, Integrated Scripting Environment (ISE) ham mavjud. Buyruq satri interfeysiga kirish uchun shunchaki menyudan tegishli yorliqni tanlang. Windows Yoki "Ishga tushirish" menyusidan powershell.exe faylini ishga tushiring. Qadimgi cmd.exe faylidan sezilarli darajada farq qiluvchi ko'k oyna paydo bo'ladi. Unda avtomatik yakunlash va Unix buyruq shelllari foydalanuvchilariga tanish bo'lgan boshqa funksiyalar mavjud.

nima Windows PowerShell va u bilan nima iste'mol qilish kerak? 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.

nima Windows PowerShell va u bilan nima iste'mol qilish kerak? 1-qism: Asosiy xususiyatlar
Windows PowerShell ISE - bu sintaksisni ajratib ko'rsatishga ega yorliqli kod muharriri, buyruq dizayneri, o'rnatilgan nosozliklarni tuzatuvchi va boshqa dasturlash imkoniyatlariga ega to'liq ishlab chiqish muhiti. Agar siz IDE muharririda buyruq nomidan keyin defis yozsangiz, barcha mavjud parametrlarning ochiladigan ro'yxatini va ularning turini ko'rasiz. Siz PowerShell ISE ni tizim menyusidagi yorliq orqali yoki powershell_ise.exe bajariladigan faylini ishga tushirish orqali ishga tushirishingiz mumkin.

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

Cmdletlar 

В Windows PowerShell endi cmdletlar deb ataladigan xususiyatlarga ega. Bular turli xil funksiyalarni amalga oshiradigan ixtisoslashgan .NET sinflari. Ular Action-Object (yoki agar xohlasangiz, Fe'l-Noun) printsipi yordamida nomlanadi va defis bilan bog'langan juftlik tabiiy til jumlalaridagi predikat va sub'ektga o'xshaydi. Masalan, Get-Help so'zma-so'z "Get-Help" yoki PowerShell kontekstida "Show-Help" degan ma'noni anglatadi. Aslida, bu Unix tizimlaridagi man buyrug'ining ekvivalenti va PowerShell qo'llanmalariga --help yoki /? tugmasi bilan cmdletlarni chaqirish o'rniga shu tarzda kirish kerak. PowerShellning onlayn hujjatlari haqida unutmang: Microsoft juda batafsil hujjatga 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. 

Cmdletlar Windows PowerShell modullarga (NetTCPIP, Hyper-V va boshqalar) guruhlangan va Get-Command cmdlet obyektlar va amallarni qidirish uchun ishlatiladi. Siz unga yordamni quyidagicha ko'rsatishingiz mumkin:

Get-Help Get-Command

nima Windows PowerShell va u bilan nima iste'mol qilish kerak? 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

Yordam bering Windows PowerShell Update-Help cmdlet yordamida yangilanadi. Agar buyruq satri juda uzun bo'lib ketsa, cmdlet argumentlarini "`" belgisini terish va Enter tugmasini bosish orqali keyingi qatorga o'tkazish mumkin - shunchaki bir qatorda buyruqni yozib tugatib, boshqasida davom ettira olmaysiz.

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 yordamchi dasturlar uchun Windows PowerShell dasturida taxalluslar deb nomlangan qisqa sinonimlar mavjud. Masalan, dir - Get-ChildItem uchun taxallus. Sinonimlar ro'yxatiga Unixga o'xshash buyruqlar (ls, ps va boshqalar) ham kiradi va Get-Help cmdleti help buyrug'i tomonidan chaqiriladi. Sinonimlarning to'liq ro'yxatini Get-Alias ​​​​cmdleti yordamida ko'rish mumkin:

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

PowerShell skriptlari, funktsiyalari, modullari va tili

Skriptlar Windows PowerShell skriptlari .ps1 kengaytmasi bilan oddiy matnli fayllar sifatida saqlanadi. Ularni ikki marta bosish orqali ishga tushirib bo'lmaydi; kontekst menyusini ochish uchun sichqonchaning o'ng tugmachasini bosishingiz va "PowerShell bilan ishga tushirish" ni tanlashingiz kerak. Konsoldan skriptga to'liq yo'lni ko'rsatishingiz yoki tegishli katalogga o'tishingiz va fayl nomini kiritishingiz kerak bo'ladi. Skriptlarni ishga tushirish ham tizim siyosati bilan cheklangan. Joriy sozlamalarni tekshirish uchun siz 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

nima Windows PowerShell va u bilan nima iste'mol qilish kerak? 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 obyektga yo'naltirilgan dasturlash tilida yoziladi, uning buyruqlari avval muhokama qilingan cmdletlar bilan bir xil printsipga muvofiq nomlanadi: "Action-Object" ("Verb-Noun"). Uning asosiy maqsadi ma'muriy vazifalarni avtomatlashtirishdir, ammo u barcha kerakli konstruktsiyalarni o'z ichiga olgan to'liq talqin qilingan tildir: shartli shoxlar, sikllar, o'zgaruvchilar, massivlar, obyektlar, xatolarni qayta ishlash va boshqalar. Har qanday matn muharriri skriptlarni yozish uchun mos keladi, lekin uni ishga tushirish eng qulaydir. Windows PowerShell ISE.

Siz parametrlarni skriptga o'tkazishingiz, ularni majburiy qilishingiz va standart qiymatlarni ham o'rnatishingiz mumkin. Bundan tashqari, Windows PowerShell sizga Function konstruktsiyasi va jingalak qavslar yordamida cmdletlar kabi funksiyalarni yaratish va ularni chaqirish imkonini beradi. Funksiyalarni o'z ichiga olgan 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 qobiqlari foydalanuvchilariga tanish bo'lgan konstruktsiyadan foydalandik. Windows PowerShellning vertikal paneli sizga bitta buyruqning chiqishini boshqasining kirishiga o'tkazish imkonini beradi, ammo quvur liniyasini amalga oshirishda sezilarli farq bor: u endi belgilar yoki matnlar qatori emas. O'rnatilgan cmdletlar va foydalanuvchi tomonidan belgilangan funksiyalar obyektlarni yoki obyektlar massivlarini qaytaradi va ularni kirish sifatida ham qabul qilishi mumkin. Bourne qobig'i va uning ko'plab vorislari singari, PowerShell ham murakkab vazifalarni soddalashtirish uchun quvur liniyasidan foydalanadi.

Eng oddiy quvur liniyasi misoli quyidagicha ko'rinadi:

Get-Service | Sort-Object -property Status

nima Windows PowerShell va u bilan nima iste'mol qilish kerak? 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 uzaytirish mumkin va Sort-Object natijasini boshqa cmdletga o'tkazish mumkin (ular chapdan o'ngga bajariladi). Aytgancha, foydalanuvchilar Windows Barcha Unix foydalanuvchilariga tanish bo'lgan sahifalash tuzilishi ham mavjud: 

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

Orqa fonda bajariladigan vazifalar 

Ko'pincha qobiq sessiyasida uning bajarilish natijasini kutmaslik uchun ma'lum bir buyruqni fonda bajarish kerak bo'ladi. Windows PowerShell bu holat uchun bir nechta cmdletlarga ega:

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}

nima Windows PowerShell va u bilan nima iste'mol qilish kerak? 1-qism: Asosiy xususiyatlar
Fon vazifalari Windows PowerShell’ni ularning nomlarini bilish orqali boshqarish mumkin. Keling, ularni qanday ko‘rsatishni o‘rganishdan boshlaylik:

Get-Job

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

Receive-Job Job1 | more

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

Buyruqni masofadan turib bajarish

Windows PowerShell sizga buyruqlar va skriptlarni nafaqat mahalliy kompyuterda, balki masofaviy kompyuterlarda va hatto butun mashinalar guruhlarida ham bajarish 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

PowerShell 2006-yilda chiqarilganidan beri sezilarli darajada rivojlandi. U turli xil apparat platformalarida (x86, x86-64, Itanium, ARM) ishlaydigan keng turdagi tizimlar uchun mavjud: Windows xp, Windows Server 2003, Windows Ko'rinish, Windows Server 2008/2008R2, Windows 7, Windows 8, Windows 8.1, Windows RT, Windows RT 8.1, Windows Server 2012/2012R2, Windows 10, Windows Server 2016, GNU/Linux va OS X. Eng so'nggi versiya, 6.2, 2018-yil 10-yanvarda chiqarildi. Avvalgi versiyalar uchun yozilgan skriptlar keyingi versiyalarda ishlashi mumkin, ammo orqaga qaytarish muammoli bo'lishi mumkin, chunki PowerShell yillar davomida ko'plab yangi cmdletlarni qo'shdi. Kompyuteringizga o'rnatilgan buyruq qobig'ining versiyasini o'rnatilgan $PSVersionTable o'zgaruvchisining PSVersion xususiyatidan foydalanib bilib olishingiz mumkin:

$PSVersionTable.PSVersion

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

Get-Variable -Name PSVersionTable –ValueOnly

nima Windows PowerShell va u bilan nima iste'mol qilish kerak? 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 yaratdi. Uni biz Unix dunyosida o'rganib qolgan vositalardan ajratib turadigan narsa bu uning oilaning operatsion tizimlari bilan chuqur integratsiyasidir. Windows, shuningdek, ular uchun dasturiy ta'minot va .NET Core platformasi. PowerShellni obyektga yo'naltirilgan qobiq deb atash mumkin, chunki cmdletlar va foydalanuvchi tomonidan belgilangan funksiyalar obyektlarni yoki obyektlar massivlarini qaytaradi va ularni kirish sifatida qabul qilishi mumkin. Bizning fikrimizcha, ushbu vosita barcha server administratorlari uchun zaruriy vositadir. Windows: buyruq satrisiz ham qila oladigan vaqt o'tdi. Ayniqsa, rivojlangan konsol qobig'i zarur bizning arzon VPS boshqaruvi ostida Windows Server Core, lekin bu butunlay boshqacha hikoya.

nima Windows PowerShell va u bilan nima iste'mol qilish kerak? 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

DDoS himoyasi, VPS VDS serverlari bo'lgan saytlar uchun ishonchli hosting sotib oling 🔥 DDoS himoyasi, VPS VDS serverlari bilan ishonchli veb-sayt xostingini sotib oling | ProHoster