Windows PowerShell nədir və nə ilə yeyilir? Hissə 1: Əsas Xüsusiyyətlər

Tarixən, Unix sistemlərində komanda xətti utilitləri Windows-dan daha yaxşı inkişaf etmişdir, lakin yeni həll yolu ilə vəziyyət dəyişdi.

Windows PowerShell sistem administratorlarına əksər rutin tapşırıqları avtomatlaşdırmağa imkan verir. Bununla siz parametrləri dəyişdirə, xidmətləri dayandıra və işə sala, həmçinin quraşdırılmış proqramların əksəriyyətində texniki xidmət göstərə bilərsiniz. Mavi pəncərəni başqa bir əmr tərcüməçisi kimi qəbul etmək düzgün olmazdı. Bu yanaşma Microsoft-un təklif etdiyi yeniliklərin mahiyyətini əks etdirmir. Əslində, Windows PowerShell-in imkanları daha genişdir: qısa məqalələr silsiləsində biz Microsoft həllinin daha çox tanış olduğumuz alətlərdən nə ilə fərqləndiyini anlamağa çalışacağıq.

Windows PowerShell nədir və nə ilə yeyilir? Hissə 1: Əsas Xüsusiyyətlər

Əsas xüsusiyyətlər 

Əlbəttə ki, Windows PowerShell ilk növbədə .NET Framework və daha sonra .NET Core üzərində qurulmuş skript qabığıdır. Mətn məlumatlarını qəbul edən və qaytaran qabıqlardan fərqli olaraq, Windows PowerShell xassələri və metodları olan .NET sinifləri ilə işləyir. PowerShell sizə ümumi əmrləri yerinə yetirməyə imkan verir və həmçinin COM, WMI və ADSI obyektlərinə giriş imkanı verir. O, daxil olmaq üçün fayl sistemi və ya Windows reyestri kimi müxtəlif yaddaşlardan istifadə edir. provayderlər. Müxtəlif əməliyyatları həyata keçirmək üçün PowerShell icra edilə bilən komponentlərini digər proqramlara daxil etmək imkanını qeyd etmək lazımdır, o cümlədən. qrafik interfeys vasitəsilə. Bunun əksi də doğrudur: bir çox Windows proqramları PowerShell vasitəsilə idarəetmə interfeyslərinə girişi təmin edir. 

Windows PowerShell sizə imkan verir:

  • Əməliyyat sistemi parametrlərini dəyişdirin;
  • Xidmətləri və prosesləri idarə etmək;
  • Server rollarını və komponentlərini konfiqurasiya etmək;
  • Proqram təminatı quraşdırmaq;
  • Quraşdırılmış proqram təminatını xüsusi interfeyslər vasitəsilə idarə etmək;
  • Üçüncü tərəf proqramlarına icra edilə bilən komponentləri yerləşdirmək;
  • İdarəetmə tapşırıqlarını avtomatlaşdırmaq üçün skriptlər yaradın;
  • Fayl sistemi, Windows reyestri, sertifikat mağazası və s. ilə işləmək.

Shell və inkişaf mühiti

Windows PowerShell iki formada mövcuddur: komanda qabığı olan konsol emulyatoruna əlavə olaraq İnteqrasiya edilmiş Skript Mühiti (ISE) mövcuddur. Komanda xətti interfeysinə daxil olmaq üçün sadəcə Windows menyusundan müvafiq qısayolu seçin və ya Run menyusundan powershell.exe proqramını işə salın. Ekranda antediluvian cmd.exe-dən imkanları nəzərəçarpacaq dərəcədə fərqli olan mavi bir pəncərə görünəcək. Unix sistemləri üçün komanda qabıqlarının istifadəçilərinə tanış olan avtomatik tamamlama və digər funksiyalar mövcuddur.

Windows PowerShell nədir və nə ilə yeyilir? Hissə 1: Əsas Xüsusiyyətlər

Qabıqla işləmək üçün bəzi klaviatura qısa yollarını yadda saxlamalısınız:

  • Yuxarı və aşağı oxlar əvvəllər yazılmış əmrləri təkrarlamaq üçün tarixçəni sürüşdürür;
  • Sətirin sonundakı sağ ox əvvəlki əmr simvolunu simvola görə yenidən yazır;
  • Ctrl+Home yazılmış mətni kursor mövqeyindən sətrin əvvəlinə qədər silir;
  • Ctrl+End kursordan sətrin sonuna qədər mətni silir.

F7 daxil edilmiş əmrlərin olduğu pəncərəni göstərir və onlardan birini seçməyə imkan verir. Konsol həmçinin siçan ilə mətn seçimi, kopyala-yapışdırmaq, kursorun yerləşdirilməsi, silmə, geriyə - bizim bəyəndiyimiz hər şeylə işləyir.

Windows PowerShell nədir və nə ilə yeyilir? Hissə 1: Əsas Xüsusiyyətlər
Windows PowerShell ISE, sekmeli və sintaksislə vurğulanmış kod redaktoru, komanda qurucusu, daxili sazlayıcı və digər proqramlaşdırma zövqləri ilə tam inkişaf mühitidir. İnkişaf mühiti redaktorunda komanda adından sonra defis yazsanız, növün göstərildiyi açılan siyahıda bütün mövcud variantları əldə edəcəksiniz. Siz PowerShell ISE-ni sistem menyusundan qısayol vasitəsilə və ya powershell_ise.exe icra edilə bilən faylından istifadə edərək işə sala bilərsiniz.

Windows PowerShell nədir və nə ilə yeyilir? Hissə 1: Əsas Xüsusiyyətlər

Cmdletlər 

Windows PowerShell-də sözdə. cmdletlər. Bunlar müxtəlif funksionallığı təmin edən ixtisaslaşmış .NET sinifləridir. Onlar Fəaliyyət-Obyekt (yaxud istəsəniz, Feil-İsim) adlanır və defislə ayrılmış keçid təbii dil cümlələrində predikata və mövzuya bənzəyir. Məsələn, Get-Help sözün əsl mənasında "Get-Help" və ya PowerShell kontekstində: "Show-Help" deməkdir. Əslində, bu, Unix sistemlərində man əmrinin analoqudur və PowerShell-də təlimatlar bu şəkildə tələb edilməlidir, nəinki --help və ya /? düyməsi ilə cmdletlərə zəng etməklə. Onlayn PowerShell sənədləri haqqında unutmayın: Microsoft bunu olduqca təfərrüatlıdır.

Get-ə əlavə olaraq, cmdletlər hərəkətləri ifadə etmək üçün digər fellərdən istifadə edirlər (və yalnız fellərdən deyil, ciddi şəkildə desək). Aşağıdakı siyahıda bəzi nümunələr veririk:

Add - əlavə etmək;
Clear - aydın;
Enable - işə sal;
Disable - söndürmək;
New - yaratmaq;
Remove - silmək;
Set - soruşmaq;
Start - qaçmaq;
Stop - dayanmaq;
Export - ixrac;
Import - idxal.

Sistem, istifadəçi və isteğe bağlı cmdletlər var: icra nəticəsində onların hamısı obyekti və ya obyektlər massivini qaytarır. Onlar hərflərə həssas deyillər, yəni. komanda tərcüməçisinin nöqteyi-nəzərindən Get-Help və get-help arasında heç bir fərq yoxdur. ';' simvolu ayırmaq üçün istifadə olunur, lakin onu yalnız bir sətirdə bir neçə cmdlet yerinə yetirdikdə qoymaq məcburidir. 

Windows PowerShell cmdletləri modullara (NetTCPIP, Hyper-V və s.) qruplaşdırılıb və obyekt və fəaliyyət üzrə axtarış etmək üçün Get-Command cmdleti var. Bunun üçün yardım göstərə bilərsiniz:

Get-Help Get-Command

Windows PowerShell nədir və nə ilə yeyilir? Hissə 1: Əsas Xüsusiyyətlər

Varsayılan olaraq, əmr qısa yardım göstərir, lakin lazım olduqda parametrlər (arqumentlər) cmdletlərə ötürülür. Onların köməyi ilə siz, məsələn, ətraflı (parametr - Ətraflı) və ya tam (parametr -Tam) yardım əldə edə, həmçinin nümunələri göstərə bilərsiniz (parametr -Nümunələr):

Get-Help Get-Command -Examples

Windows PowerShell-də kömək Update-Help cmdleti ilə yenilənir. Komanda xətti çox uzun olarsa, cmdlet arqumentləri '`' xidmət simvolunu yazaraq və Enter düyməsini sıxmaqla növbəti birinə köçürülə bilər - sadəcə bir sətirdə əmr yazmağı bitirmək və digərində davam etmək işləməyəcək.

Budur ümumi cmdletlərin bəzi nümunələri: 

Get-Process - sistemdə işləyən prosesləri göstərmək;
Get-Service — xidmətləri və onların statusunu göstərmək;
Get-Content — faylın məzmununu göstərin.

Tez-tez istifadə olunan cmdletlər və xarici yardım proqramları üçün Windows PowerShell-in qısa sinonimləri var - ləqəblər (ingilis dilindən. Alias). Məsələn, dir Get-ChildItem üçün ləqəbdir. Sinonimlər siyahısına Unix sistemlərindən (ls, ps və s.) əmrlərin analoqları da daxildir və Get-Help cmdlet yardım əmri ilə çağırılır. Sinonimlərin tam siyahısına Get-Alias ​​cmdletindən istifadə etməklə baxmaq olar:

Windows PowerShell nədir və nə ilə yeyilir? Hissə 1: Əsas Xüsusiyyətlər

PowerShell Skriptləri, Funksiyaları, Modulları və Dili

Windows PowerShell skriptləri .ps1 uzantılı düz mətn faylları kimi saxlanılır. Onları iki dəfə klikləməklə işə sala bilməzsiniz: kontekst menyusunu çağırmaq üçün sağ klikləməlisiniz və "PowerShell-də işə salın" maddəsini seçin. Konsoldan ya skriptin tam yolunu göstərməli, ya da müvafiq qovluğa gedib fayl adını yazmalı olacaqsınız. Skriptlərin işlədilməsi də sistem siyasəti ilə məhdudlaşır və cari parametrləri yoxlamaq üçün aşağıdakı dəyərlərdən birini qaytaracaq Get-ExecutionPolicy cmdletindən istifadə edə bilərsiniz:

Restricted — skriptlərin işə salınması qeyri-aktivdir (standart olaraq);
AllSigned - yalnız etibarlı tərtibatçı tərəfindən imzalanmış skriptlərin işə salınmasına icazə verilir;
RemoteSigned - İmzalanmış və öz skriptlərini işlətməyə icazə verilir;
Unrestricted - istənilən skripti işlətməyə icazə verilir.

İdarəçinin iki seçimi var. Ən təhlükəsiz skriptlərin imzalanmasını nəzərdə tutur, lakin bu, olduqca ciddi bir sehrdir - gələcək məqalələrdə bununla məşğul olacağıq. İndi gəlin ən az müqavimət yolunu tutaq və siyasəti dəyişdirək:

Set-ExecutionPolicy RemoteSigned

Windows PowerShell nədir və nə ilə yeyilir? Hissə 1: Əsas Xüsusiyyətlər
Bunu etmək üçün PowerShell-i administrator kimi işə salmaq lazımdır, baxmayaraq ki, cari istifadəçi üçün siyasəti xüsusi parametrlə dəyişə bilərsiniz.

Skriptlər obyekt yönümlü proqramlaşdırma dilində yazılır, əmrləri əvvəllər müzakirə edilmiş cmdletlərlə eyni prinsipə uyğun olaraq adlandırılır: "Action-Object" ("Fil-İsim"). Onun əsas məqsədi inzibati tapşırıqları avtomatlaşdırmaqdır, lakin bu, bütün lazımi konstruksiyaları olan tam hüquqlu şərh edilmiş dildir: şərti keçid, döngələr, dəyişənlər, massivlər, obyektlər, səhvlərin idarə edilməsi və s. İstənilən mətn redaktoru skript üçün uyğundur, lakin ən yaxşısı Windows PowerShell ISE-ni işə salmaqdır.

Parametrləri skriptə ötürə, onları tələb edə və standart dəyərlər təyin edə bilərsiniz. Bundan əlavə, Windows PowerShell, Funksiya konstruksiyasından və əyri mötərizələrdən istifadə edərək, cmdletlərlə eyni şəkildə funksiyalar yaratmağa və çağırmağa imkan verir. Funksiyaları olan skript modul adlanır və .psm1 genişlənməsinə malikdir. Modullar PowerShell mühit dəyişənlərində müəyyən edilmiş qovluqlarda saxlanmalıdır. Onlara aşağıdakı əmrlə baxa bilərsiniz:

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

Konveyerlər

Sonuncu misalda biz Unix shell istifadəçilərinə tanış olan konstruksiyadan istifadə etdik. Windows PowerShell-də şaquli çubuq həm də bir əmrin çıxışını digərinin girişinə ötürməyə imkan verir, lakin boru kəmərinin həyata keçirilməsində əhəmiyyətli fərq var: biz artıq bir sıra simvollar və ya bir növ simvollar haqqında danışmırıq. mətn. Daxili cmdletlər və ya istifadəçi tərəfindən müəyyən edilmiş funksiyalar obyektləri və ya obyektlərin massivlərini qaytarır və həmçinin onları giriş kimi qəbul edə bilər. Bourne qabığı və onun bir çox varisləri kimi, PowerShell də boru kəməri ilə mürəkkəb tapşırıqları asanlaşdırır.

Ən sadə boru kəməri nümunəsi belə görünür:

Get-Service | Sort-Object -property Status

Windows PowerShell nədir və nə ilə yeyilir? Hissə 1: Əsas Xüsusiyyətlər
Əvvəlcə Get-Service cmdleti yerinə yetirilir, sonra onun qəbul etdiyi bütün xidmətlər Status xassəsinə görə çeşidləmək üçün Sort-Object cmdletinə ötürülür. Boru kəmərinin əvvəlki hissəsinin nəticəsinin hansı arqumentə ötürülməsi onun növündən asılıdır - adətən bu, InputObject-dir. Bu məsələ PowerShell proqramlaşdırma dilinə həsr olunmuş məqalədə daha ətraflı müzakirə olunacaq. 

İstəyirsinizsə, zənciri davam etdirə və Sort-Object əməliyyatının nəticəsini başqa bir cmdletə ötürə bilərsiniz (onlar soldan sağa yerinə yetiriləcək). Yeri gəlmişkən, Windows istifadəçiləri bütün Unixoidlərə tanış olan səhifələşdirmə üçün konstruksiyaya da giriş əldə edə bilərlər: 

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

Arxa planda icra olunan tapşırıqlar 

Çox vaxt, shell sessiyasında onun icrasının nəticəsini gözləməmək üçün arxa planda müəyyən bir əmr yerinə yetirmək lazımdır. Windows PowerShell-də bu iş üçün bir neçə cmdlet var:

Start-Job - fon tapşırığını işə salmaq;
Stop-Job — fon tapşırığını dayandırın;
Get-Job — fon tapşırıqlarının siyahısına baxmaq;
Receive-Job — fon tapşırığının icrasının nəticəsini görmək;
Remove-Job — fon tapşırığını silmək;
Wait-Job - fon tapşırığını konsola geri köçürmək.

Fon tapşırığına başlamaq üçün biz Start-Job cmdletindən istifadə edirik və əyri mötərizələrdə əmr və ya əmrlər dəstini təyin edirik:

Start-Job {Get-Service}

Windows PowerShell nədir və nə ilə yeyilir? Hissə 1: Əsas Xüsusiyyətlər
Windows PowerShell-də fon tapşırıqları onların adlarını bilməklə idarə oluna bilər. Əvvəlcə onları necə göstərməyi öyrənək:

Get-Job

Windows PowerShell nədir və nə ilə yeyilir? Hissə 1: Əsas Xüsusiyyətlər
İndi İş 1-in nəticəsini göstərək:

Receive-Job Job1 | more

Windows PowerShell nədir və nə ilə yeyilir? Hissə 1: Əsas Xüsusiyyətlər
Hər şey olduqca sadədir.

Uzaqdan əmr icrası

Windows PowerShell əmrləri və skriptləri təkcə yerli kompüterdə deyil, həm də uzaq kompüterdə və hətta bütün maşınlar qrupunda işlətməyə imkan verir. Bunu etmək üçün bir neçə yol var:

  • Bir çox cmdletin parametri var -ComputerName, lakin bu şəkildə işləməyəcək, məsələn, konveyer yaratmaq;
  • Cmdlet Enter-PSSession uzaq maşında interaktiv seans yaratmağa imkan verir; 
  • Cmdlet istifadə edərək Invoke-Command əmrləri və ya skriptləri bir və ya bir neçə uzaq kompüterdə işlədə bilərsiniz.

PowerShell versiyaları

2006-cı ildə ilk buraxılışından bəri PowerShell çox dəyişdi. Alət müxtəlif aparat platformalarında (x86, x86-64, Itanium, ARM) işləyən bir çox sistemlər üçün mövcuddur: 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 və OS X. Ən son buraxılış 6.2 10 yanvar 2018-ci ildə buraxılıb. Əvvəlki versiyalar üçün yazılmış skriptlərin sonrakı versiyalarda işləmə ehtimalı daha yüksəkdir, lakin backporting problemli ola bilər, çünki PowerShell inkişaf illəri ərzində çoxlu sayda yeni cmdlet təqdim etmişdir. Siz $PSVersionTable daxili dəyişənin PSVersion xassəsindən istifadə edərək kompüterdə quraşdırılmış əmr qabığının versiyasını öyrənə bilərsiniz:

$PSVersionTable.PSVersion

Windows PowerShell nədir və nə ilə yeyilir? Hissə 1: Əsas Xüsusiyyətlər
Siz həmçinin cmdletdən istifadə edə bilərsiniz:

Get-Variable -Name PSVersionTable –ValueOnly

Windows PowerShell nədir və nə ilə yeyilir? Hissə 1: Əsas Xüsusiyyətlər
Eyni şey Get-Host cmdleti ilə edilir. Əslində, bir çox variant var, lakin onlardan istifadə etmək üçün PowerShell proqramlaşdırma dilini öyrənməlisiniz. növbəti məqalə

Nəticələri 

Microsoft, skriptlərin inkişafı üçün rahat inteqrasiya edilmiş mühitə malik həqiqətən güclü bir qabıq yaratmağı bacardı. O, Unix dünyasında bizə tanış olan alətlərdən Windows ailəsinin əməliyyat sistemləri, eləcə də onlar üçün proqram təminatı və .NET Core platforması ilə dərin inteqrasiyası ilə fərqlənir. PowerShell-i obyekt yönümlü qabıq adlandırmaq olar, çünki cmdletlər və istifadəçi tərəfindən müəyyən edilmiş funksiyalar obyektləri və ya obyekt massivlərini qaytarır və onları giriş kimi qəbul edə bilir. Düşünürük ki, Windows-dakı bütün server administratorları bu alətə sahib olmalıdırlar: komanda xətti olmadan edə bildikləri vaxt keçdi. Qabaqcıl konsol qabığına xüsusilə ehtiyac var Windows Server Core ilə işləyən ucuz VPS-imiz, amma bu tamamilə fərqli bir hekayədir.

Windows PowerShell nədir və nə ilə yeyilir? Hissə 1: Əsas Xüsusiyyətlər

Sorğuda yalnız qeydiyyatdan keçmiş istifadəçilər iştirak edə bilər. Daxil olunxahiş edirəm.

Serialın növbəti məqalələrində ilk olaraq hansı mövzulara toxunulmalıdır?

  • 53,2%PowerShell123-də proqramlaşdırma

  • 42,4%PowerShell98 Funksiyaları və Modulları

  • 22,1%Öz skriptlərinizi necə imzalamaq olar?51

  • 12,1%Provayderlər (provayderlər) vasitəsilə depolarla işləmək28

  • 57,6%PowerShell133 ilə Kompüter İdarəetməsinin avtomatlaşdırılması

  • 30,7%Proqram təminatının idarə edilməsi və PowerShell icraedicilərinin üçüncü tərəf məhsullarına daxil edilməsi71

231 istifadəçi səs verib. 37 istifadəçi bitərəf qalıb.

Mənbə: www.habr.com

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