Powershell: ako pracovať s programom, vytvárať, spúšťať a upravovať skripty. Písanie a spúšťanie skriptov. Otestujte si prieskum vášho počítača pomocou prostredia PowerShell

  • 09.05.2019

V tomto článku budeme uvažovať o takejto technológii od spoločnosti Microsoft ako Windows PowerShell , povieme si o tom, čo je PowerShell, čo sú to cmdlets a pipeline, ako písať skripty a moduly a dotkneme sa aj ďalších nemenej dôležitých a užitočné funkcie Windows PowerShell.

Čo prispelo k vzniku prostredia Windows PowerShell?

Pred príchodom PowerShellu existovali ( a existovať) nasledujúce nástroje na automatizáciu a správu služieb: Windows príkazový riadok a Windows Script Host. Ale tieto technológie majú nevýhody.

o príkazový riadok Windows má schopnosť vykonávať niektoré administratívne úlohy a schopnosť napísať akčný algoritmus, uložiť ho ako skript (bat-file), pričom môžete použiť niektoré programovacie prvky, napríklad použiť premenné, podmienené štruktúry a dokonca aj niečo ako slučky. .

Väčšina softvérové ​​produkty má konzolové rozhranie, t.j. môžeme ovládať program pomocou príkazového riadku, pričom šetríme zdroje z dôvodu nedostatku nákladov na grafické rozhranie. Microsoft pre serverový operačný systém Windows Server dokonca vydáva edície bez GUI ( Server Core, Windows Server 2016 má dokonca aj Nano Server), ale to všetko nestačí, keďže možnosti príkazového riadku sú obmedzené, t.j. napíš nejaké komplexná logika niečo zautomatizovať nebudeme a ak áno, tak na to budeme potrebovať čas a znalosti.

Nevýhodou príkazového riadku je tiež to, že na úplnú správu servera používame rôzne konzolové nástroje softvérových produktov, a preto je použitie príkazového riadka na administráciu naozaj náročné, z hľadiska toho, že všetky tieto utility majú odlišná syntax, parametre, spôsoby použitia a za účelom vykonávania typických úloh, t.j. každý deň, musíte to všetko mať na pamäti a na vykonávanie neštandardných úloh si najprv musíte prečítať pomocníka alebo dokumentáciu.

Technológia Windows Script Host vám umožňuje vykonávať všetky administratívne úlohy, ktoré robí príkazový riadok, vrátane ich automatizácie písaním WSH skriptov, no tu už môžeme využívať plnohodnotné programovacie jazyky ​​( VBScript a JScript), t.j. môžete implementovať komplexnú logiku a algoritmy. Okrem toho s pomocou WSH spravujeme softvérové ​​produkty cez objektové rozhranie, iné Windows slová Script Host je oveľa viac chladič' než príkazový riadok. Ani táto technológia sa však nestala tým ideálnym nástrojom na správu a automatizáciu tejto správy pre systémových administrátorov, keďže Windows Script Host vyžadoval znalosť vyššie uvedených programovacích jazykov, čo je pre systémových administrátorov vlastne nadbytočné. Administrátori potrebujú iba jednoduchý administračný nástroj s možnosťou naprogramovať niektoré akcie a ponoriť sa do nich objektové modely nechcú softvérové ​​produkty v programovacích jazykoch VBScript a JScript.

Výsledkom bolo, že Microsoft potreboval vyvinúť administračný nástroj pre systémových administrátorov, ktorý by na 100 percent uspokojil všetky potreby systémových administrátorov, pokiaľ ide o možnosti správy a automatizácie, ako aj o pohodlie a jednoduchosť používania, a tak sa zrodil Windows PowerShell. .

Čo je Windows PowerShell?

Windows PowerShell je skriptovací jazyk a príkazový shell Windows určený na správu a konfiguráciu operačných systémov Windows. PowerShell je založený na CRL a .NET Framework a na rozdiel od príkazového riadka, ktorý prijíma a vracia text, Windows PowerShell pracuje s objektmi. Každý objekt v PowerShell má vlastnosti a metódy, ktoré môžete použiť na manipuláciu s týmito objektmi.

V prostredí Windows PowerShell vyvinula spoločnosť Microsoft koncept cmdlet ( cmdlets), čo je systém pomenovávania príkazov " Sloveso Podstatné meno». Tento systém umožňuje správcom systému rýchlo sa naučiť a zjednodušiť prácu s PowerShell.

Pomocou prostredia Windows PowerShell môžete:

  • Získajte prístup k systému súborov;
  • spravovať register;
  • spravovať služby;
  • riadiť procesy;
  • Nastavte operačný systém;
  • Inštalácia softvéru;
  • Inštalácia rolí a komponentov servera;
  • Správa a konfigurácia serverových rolí a komponentov;
  • Píšte a používajte skripty na automatizáciu správy a správy;
  • Vykonajte ďalšie úlohy správcu systému.

Windows PowerShell obsahuje mnoho bežne používaných pomôcok a príkazov, ktoré možno spustiť z príkazového riadku, ako napríklad ipconfig, ping a iné. Robí sa to s cieľom uľahčiť prechod správcov systému z príkazového riadka na PowerShell.

Pre pohodlie má veľa často používaných príkazov a pomôcok v PowerShell synonymá ( alias), napríklad cls je synonymom pre cmdlet Clear-Host, dir je synonymom pre Get-ChildItem ( úplný zoznam synonymá je možné zobraziť spustením cmdlet Get-Alias ​​​​).

Na zjednodušenie hľadania požadovaného príkazu v PowerShell existuje špeciálny cmdlet Get-Command, pomocou ktorého môžete vyhľadávať podľa slovesa aj podstatného mena. Všetky príkazy v prostredí Windows PowerShell sú zoskupené do modulov ( napríklad Hyper-V, NetTCPIP), čo tiež uľahčuje nájdenie správneho príkazu.

Po požadovaný príkaz nájdené, môžete vidieť návod na prácu s týmto príkazom, t.j. help, na tento účel existuje špeciálny cmdlet Get-Help, napríklad nasledujúci príkaz zobrazí pomoc pre cmdlet Get-Command:

Get-Help Get-Command

Pomoc v prostredí Windows PowerShell môže byť krátka, podrobná ( parameter -Podrobné), dokončiť ( - Úplná možnosť) a tiež môžete zobraziť iba príklady ( parameter - Príklady). Nasledujúci príkaz zobrazí iba príklady použitia cmdlet Get-Command:

Get-Help Get-Command -Príklady

PowerShell Help je aktualizovateľný, t.j. môže byť aktualizovaný pomocou príkazu Update-Help.

Verzie prostredia Windows PowerShell

Prvá verzia PowerShell 1.0 sa objavila 14. novembra 2006 a bola vydaná ako samostatná distribúcia, ktorú bolo možné nainštalovať na nasledujúce verzie operačných systémov Windows: Windows XP servisný balík 2, Windows Server 2003 Service Pack 1 a Windows Vista.

V systéme Windows Server 2008 bol PowerShell 1.0 dodaný ako súčasť, ktorá sa tiež musela nainštalovať.

Počnúc Windows 7 a Windows Server 2008 R2 sa PowerShell dodáva ako integrálna súčasť systému ( tie. predinštalovaný, nie je potrebné ho inštalovať). Nižšie je uvedená tabuľka zhody medzi verziou PowerShell a verziou operačného systému Windows ( tie. ktorá verzia PowerShell je predvolene nainštalovaná v ktorej Verzie systému Windows ):

Verzia PowerShell Verzie systému Windows
PowerShell 2.0 Windows 7, Windows Server 2008 R2
PowerShell 3.0 Windows 8, Windows Server 2012
PowerShell 4.0 Windows 8.1, Windows Server 2012 R2
PowerShell 5.0 Windows 10, Windows Server 2016

S každou novou verziou PowerShell sa stáva viac a viac mocný nástroj administrácie, pre porovnanie, v prvom PowerShell bolo okolo 130 cmdletov a v PowerShell 5.0 je ich už viac ako 600!

Objavte aktuálna verzia PowerShell môže použiť vlastnosť PSVersion vstavanej premennej $PSVersionTable, napríklad spustite nasledujúci príkaz:

$PSVersionTable.PSVersion

Alebo spustite cmdlet

Get-Variable -Name PSVersionTable -ValueOnly

kde hodnota PSVersion bude verzia prostredia PowerShell.

Jazyk PowerShell

PowerShell je objektovo orientovaný skriptovací programovací jazyk. Používa sa na písanie príkazov na ovládanie všetkých komponentov operačného systému Windows Shell Windows PowerShell a na písanie skriptov na automatizáciu administratívnych úloh v prostredí Windows PowerShell Integrated Scripting Environment (ISE). Aj keď bol jazyk PowerShell vytvorený pre administratívne úlohy, je to plnohodnotný skriptovací programovací jazyk, pretože má programovacie konštrukcie, ktoré sú prítomné v každom programovacom jazyku, ako sú: podmienky, cykly, spracovanie chýb, práca s premennými, objektmi, poliami .

Jazyk PowerShell má jednotnú syntax pre písanie príkazov a štruktúru pomenovania pre tieto príkazy podľa princípu „ Sloveso Podstatné meno", čo robí daný jazyk intuitívne pre programátorov aj správcov systému.

Prostredie Windows PowerShell

Prostredie Windows PowerShell je spúšťacie prostredie pre príkazy a skripty napísané v jazyku PowerShell. Tento shell má rovnaké funkcie ako príkazový riadok, ako napríklad: ukladanie histórie vykonávania príkazov, nastavenie vzhľad shelly, ukončovanie príkazov kombináciou kláves Ctrl+C a mnoho ďalších funkcií, ktoré nie sú v príkazovom riadku, napríklad taká úžasná funkcia ako " zvýraznenie syntaxe» ( sa objavil v PowerShell 5.0).

Shell PowerShell môžete spustiť niekoľkými spôsobmi, napríklad:

  • Z príkazového riadku zadaním PowerShell;
  • Cez dialógové okno Bežať» ( klávesová skratka Win+R), tiež zadaním PowerShell;
  • V systéme Windows 7 - Štart -> Všetky programy -> Príslušenstvo -> Windows PowerShell -> Windows PowerShell;
  • V systéme Windows 8.1 alebo Windows Server 2012 R2 - Štart-> Všetky programy -> Systémové nástroje -> Windows PowerShell;
  • V systéme Windows 10 alebo Windows Server 2016 - Štart->Všetky programy-> Windows adresár PowerShell ( v skupine W) -> Windows PowerShell.

Príklad spustenia prostredia PowerShell v systéme Windows Server 2016

Snímka obrazovky PowerShell v systéme Windows Server 2016

Rutiny v prostredí PowerShell

Cmdlet (cmdlet) - toto príkaz windows PowerShell, pomocou ktorého môžete interagovať s objektmi operačného systému a spravovať ich. Tieto príkazy sú súčasťou jazyka PowerShell. Cmdlety sú postavené na princípe " Sloveso Podstatné meno“, oddelené pomlčkou (-); inými slovami, najprv naznačíme, čo robiť, a cez pomlčku – nad čím. Napríklad cmdlet Get-Help, kde Get je sloveso s významom „ Prijať"a Pomoc je podstatné meno" Pomoc"v kontexte PowerShell" Zobraziť - Pomocník". Rutiny prostredia PowerShell vracajú výsledky ako objekty, čo je jeden z hlavných rozdielov oproti príkazom Reťazce systému Windows, kde príkazy vracajú na obrazovku iba text.

Okrem cmdletov na získavanie údajov (Get) existujú aj také typy cmdletov ako:

  • Pridať - pridanie údajov;
  • Jasné — jasné;
  • Povoliť - povoliť;
  • Zakázať - vypnúť;
  • Nový - vytvorte;
  • Odstrániť - odstrániť;
  • Set — sada;
  • Štart - beh;
  • Stop - stop;
  • Export – export;
  • Import - import;
  • A mnoho ďalších.

Úplný zoznam cmdlet v prostredí Windows PowerShell je možné zobraziť pomocou špeciálneho cmdlet Get-Command. Spustite ho napríklad s parametrom cmdlet -CommandType, výsledkom čoho je, že na obrazovke uvidíte zoznam cmdlet.

Get-Command -CommandType cmdlet

Ako ste už pochopili, cmdlet majú parametre, pomocou ktorých môžeme špecifikovať akcie cmdlet. Existujú povinné a voliteľné parametre, napríklad cmdlet Get-Command nemá žiadne požadované parametre.

Obrázok nižšie ukazuje spôsob, ako vyhľadať cmdlet podľa slovesa ( Parameter slovesa). IN tento prípad zobrazili sme zoznam cmdletov, ktoré môžu niečo reštartovať.

Príkaz

Get-Command -Sloves Reštart

Ak chcete vyhľadať cmdlet podľa podstatného mena, musíte použiť parameter Noun. Napríklad nižšie máme zoznam cmdletov, ktoré pracujú so službami.

Príkaz

Get-Command -Noun Service

Ak ste nenašli požadovaný cmdlet podľa celé meno masku môžete použiť vo formáte *Text*.

Pipeline v PowerShell

Jeden z hlavných Funkcie systému Windows PowerShell je schopnosť používať kanál pri vykonávaní príkazov.

Dopravník- ide o prenos výsledku práce cmdletu cez zvislú čiaru (|) do iného cmdletu. Zároveň, ako si pamätáte, cmdlety v PowerShell pracujú s objektmi a vracajú objekty, objekty sa tiež prenášajú pozdĺž potrubia.

Pomocou potrubia môžete vykonávať zložité úlohy jednoduchým a pohodlným spôsobom bez toho, aby ste museli písať zložité algoritmy a skripty.

Zistime napríklad názov najväčšieho súboru v adresári C:\Windows\System32 ( jednoduchý príklad potrubia).

Príkaz

Get-ChildItem -Cesta "C:\Windows\System32" -Súbor | Triediť-Dĺžka objektu -Zostupne | Vyberte objekt - prvý 1

  • Get-ChildItem - cmdlet na získanie objektov v zadanom adresári;
  • Sort-Object je cmdlet na triedenie objektov, v našom prípade triedime podľa veľkosti súboru ( dĺžka - zostupne);
  • Select-Object je cmdlet pre výber požadovaných vlastností objektu, v našom prípade zobrazujeme štandardné polia a len úplne prvý objekt, t.j. veľký súbor ( parameter - Prvý 1).

Všetky cmdlety sú od seba oddelené zvislou čiarou. Výsledok každého cmdletu sa odovzdá ako vstup do iného cmdletu, t.j. najprv získame všetky objekty v zadanom adresári, potom zoradíme výsledok a nakoniec vyberieme úplne prvý objekt.

Vykonávanie úloh na pozadí

Windows PowerShell má schopnosť spúšťať úlohy na pozadí, je to mechanizmus, pomocou ktorého môžete spustiť príkaz ( napríklad, ktorého dokončenie trvá dlho) v pozadie, t.j. po spustení sa vrátite do aktuálna relácia a môžete pokračovať v práci bez čakania na dokončenie príkazu. Táto príležitosť Budete ho potrebovať, keď potrebujete spustiť príkaz, ktorého práca zaberá dosť dlho a ako viete, počas tejto doby je relácia prostredia PowerShell zablokovaná, kým sa príkaz nedokončí a vy musíte pokračovať v práci.

Môžete spravovať všetky úlohy, ktoré sú spustené na pozadí, napríklad zobraziť zoznam úloh, zastaviť úlohu, odstrániť úlohu a samozrejme zobraziť výsledok úlohy.

Windows PowerShell poskytuje nasledujúce rutiny cmdlet na prácu s úlohami na pozadí:

  • Start-Job - spustenie úlohy na pozadí;
  • Stop-Job – zastavenie úlohy na pozadí
  • Get-Job - zobrazenie zoznamu úloh na pozadí;
  • Receive-Job - zobrazenie výsledku úlohy na pozadí;
  • Remove-Job - odstránenie úlohy na pozadí;
  • Wait-Job – presuňte úlohu na pozadí do popredia, aby ste počkali na jej dokončenie.

Ak chcete spustiť na pozadí, musíte napísať príkaz Start-Job a in kučeravé zátvorky() príkaz alebo skupina príkazov, ktoré sa majú vykonať na pozadí.

Spustite napríklad nejakú úlohu ( zobraziť zoznam služieb) na pozadí, potom sa pozrite na zoznam úloh na pozadí a zobrazte výsledok našej úlohy ( tie. servisný zoznam).

Spustenie úlohy na pozadí

Start-Job (Get-Service)

Pozeráme sa na zoznam úloh spustených na pozadí

Zobrazenie výsledku úlohy Úloha1

Prijať úlohu Job1

Ako vidíte, máme úlohu so stavom " Dokončené“, t.j. už je to dokončené len Get-Service funguje rýchlo).

Aby bolo možné zobraziť výsledok úlohy na pozadí, t.j. Get-Service cmdlet, vykonali sme príkaz Receive-Job a odovzdali sme mu názov úlohy ( hodnotu can a id). V dôsledku toho sme zobrazili zoznam služieb.

Diaľkové ovládanie s PowerShell

Windows PowerShell je určený nielen na lokálne použitie, ale aj na vzdialené vykonávanie príkazov. Táto funkcia je potrebná na to, aby ste mohli zo svojho pracoviska spravovať vzdialené počítače, t.j. spustiť príkazy PowerShell.

Existuje niekoľko spôsobov diaľkového ovládania:

  • Pomocou parametra – Názov počítača (veľa tímov má). Inými slovami, ako parameter zadáte názov počítača, na ktorom chcete príkaz spustiť. Metóda má nevýhodu, že je obmedzená na vykonanie jedného príkazu;
  • Prostredníctvom relácií. Cmdlet Enter-PSSession (interaktívna relácia). Týmto spôsobom sa pripojíte k vzdialenému počítaču a všetky príkazy, ktoré zadáte do prostredia PowerShell, sa na vzdialenom počítači vykonajú rovnakým spôsobom, ako keby ste príkazy zadávali priamo na vzdialenom počítači. Metóda má tiež nevýhodu, že relácia je obmedzená na jeden počítač;
  • Pomocou cmdlet Invoke-Command. Cez túto metódu príkazy alebo skripty môžete spúšťať na jednom počítači alebo na viacerých.

Napríklad na pripojenie k vzdialenému počítaču ( v príklade nižšie ServerName) interaktívna relácia, spustite nasledujúci príkaz:

Zadajte názov servera PSSession

Skripty, funkcie a moduly v prostredí Windows PowerShell

Ak ste napísali nejaký algoritmus, pravdepodobne ho budete chcieť uložiť, aby ste ho mohli použiť v budúcnosti. Windows PowerShell má na tento účel mechanizmus skriptovania.

Podstata tohto mechanizmu je nasledovná, napíšete si sadu príkazov, ktoré potrebujete a uložíte ju ako skript – ide o jednoduchý textový súbor s príponou .PS1.

Potom, ak chcete spustiť tento skript, jednoducho ho spustíte v prostredí PowerShell. V tomto prípade musíte buď zadať úplnú cestu k súboru skriptu, alebo prejsť do adresára so skriptom a nazvať ho menom.

Dôležité!

V predvolenom nastavení je skriptovanie v systéme Windows zakázané! Ak chcete zobraziť politiku vykonávania skriptu, spustite cmdlet Get-ExecutionPolicy. V dôsledku toho vráti aktuálnu politiku, napríklad:

  • Obmedzené - blokuje vykonávanie akýchkoľvek skriptov ( predvolená hodnota);
  • AllSigned - je povolené vykonávanie skriptov, ktoré majú digitálny podpis;
  • RemoteSigned - vykonávanie lokálnych skriptov je povolené, všetky stiahnuté skripty musia byť digitálne podpísané;
  • Neobmedzené – spustenie akýchkoľvek skriptov je povolené ( neodporúča sa ako nebezpečné!).

Ak chcete povoliť spustenie skriptov, musíte použiť rutinu cmdlet. Set-ExecutionPolicy s jednou z vyššie uvedených možností.

Ak chcete napríklad povoliť vykonávanie lokálnych skriptov, spustite nasledujúci príkaz a potvrďte zmeny stlačením Y.

Set-ExecutionPolicy RemoteSigned

V skripte môžete zadať parametre, nastaviť ich ako povinné alebo nastaviť predvolenú hodnotu.

Windows PowerShell poskytuje mechanizmus na vytváranie vlastných funkcií, ktoré možno podobne ako vstavané cmdlety použiť v prostredí PowerShell.

Ak to chcete urobiť, musíte špecifikovať kľúčové slovo Funkcia a potom v zložených zátvorkách () napíšte algoritmus pre túto funkciu, t.j. inštrukčná sada ( napríklad nejaký bežne používaný postup: vytvorte používateľa s určité práva, vymazať určité adresáre atď). Potom je potrebné všetko uložiť do skriptu, ale iba s príponou .psm1, pretože tento súbor už bude modul.

To nie je všetko, tento súbor je potrebné umiestniť do adresára, kde PowerShell hľadá moduly. Existuje niekoľko adresárov špeciálny adresár v užívateľskom profile, adresár, kde je nainštalovaný PowerShell), je možné si ich pozrieť v premenné prostredia PowerShell. Ak to chcete urobiť, spustite nasledujúci príkaz

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

Po umiestnení modulu, ktorý ste napísali, do špeciálneho adresára, môžete pristupovať k svojim funkciám ako bežné príkazy PowerShell.

Integrované skriptovacie prostredie Windows PowerShell (ISE)

Aby bolo pohodlné písať skripty, funkcie a podľa toho aj moduly, spoločnosť Microsoft vyvinula špeciálny nástroj grafický program Integrované skriptovacie prostredie(ISE) - Integrované skriptovacie prostredie. Je veľmi pohodlné pracovať v tomto programe, okrem toho má výkonnú funkčnosť ( vytváranie mnohých kariet so skriptami, výstupná oblasť, vstavaný debugger a ďalšie).

Môžete to spustiť takto:

  • V systéme Windows 7 - Štart -> Všetky programy -> Príslušenstvo -> Windows PowerShell -> Windows PowerShell ISE;
  • V systéme Windows 10 alebo Windows Server 2016 - Štart-> Všetky programy -> Adresár Windows PowerShell ( v skupine W) -> Windows PowerShell ISE.

Poznámka! ISE nebude fungovať na systéme Windows Server nainštalovanom vo variante Server Core.

Snímka obrazovky integrovaného skriptovacieho prostredia PowerShell (ISE) v systéme Windows Server 2016

To je všetko, čo mám, dúfam, že materiál bol pre vás užitočný! Veľa štastia!

V administratíve je vždy priestor pre kreativitu. Chcete urobiť nejakú automatizáciu rutinná úloha? Prosím! Potrebujete pravidelne kontrolovať aktivitu? Žiaden problém! Chcete spracovať nejaký obrovský report a zobraziť len relevantné dáta? Je to tiež možné. Všetky tieto a ďalšie úlohy sa najlepšie vykonávajú pomocou skriptov a PowerShell je najlepšou voľbou v systéme Windows.

Čo je PowerShell a prečo je dobrý

Používatelia UNIX a Linuxu a v určitom okamihu dokonca aj macOS si zvykli na to, že Bash je vždy po ruke - trochu staromódny, ale univerzálny a mocný liek, s ktorým dokážete úžasné veci len s pár riadkami. Napíšete nový skript v crone - a máte hotovo, už beží na vašom počítači alebo na serveri a potichu robí niečo užitočné.

Keď sa vrátite do systému Windows (a niekedy sa bez neho nezaobídete), chápete, že hoci skripty .bat sú dobré, nie vždy uložia: ich možnosti sú veľmi obmedzené. A ak ste si stále mysleli, že PowerShell je neznáma mašinka, pre ktorú tam musíte niečo zdvihnúť a nakonfigurovať, potom sa neponáhľajte so závermi - keď sa na to pozriete, nie je to vôbec zlé.

Windows PowerShell je rozšíriteľný open source automatizačný nástroj, ktorý pozostáva z shellu (príkazového riadku) a skriptovacieho jazyka. Prvýkrát bol uvedený v roku 2003 (vtedy sa nazýval Monad). PowerShell 2.0 bol vydaný so systémom Windows 7 a Windows Server 2008 R2 a odvtedy je v systéme Windows. štandardný komponent. Dokonca bol súčasťou Windows XP SP3. PowerShell je postavený a integrovaný s .NET Framework. PowerShell má prístup k COM, WMI a ADSI a samozrejme vykonáva príkazy konzoly.

Vo všeobecnosti má „poshik“ silné väzby na produkty spoločnosti Microsoft, či Aktívny adresár alebo poštový server Výmena. To vám umožňuje pristupovať k nim prostredníctvom konzoly a zadávať príkazy bez pripojenia k modulu snap-in servera.

Ak ste sa predtým o PowerShell nezaujímali, s najväčšou pravdepodobnosťou máte druhú verziu. Odporúčam upgradovať aspoň na tretiu – obsahuje oveľa viac funkcií a užitočné čipy. Ak nejdete do detailov, tak PowerShell 2.0 obsahuje asi tucet modulov a asi 350 príkazov a PowerShell 3.0 už má asi 2300 cmdletov z viac ako 70 modulov. „Hacker“ písal aj o tom, ako sa líši najnovší PowerShell verzie 5 od Windowsu 10.

Výber vývojového prostredia a nástrojov

Teraz poďme zistiť, kde je najpohodlnejšie písať kód. Môžete, samozrejme, v programe Poznámkový blok, Poznámkový blok ++ alebo Sublime. Ale v tomto prípade to nie je najkompetentnejšia voľba redaktora. Najlepší spôsob, ako začať s PowerShell, je s pribaleným .


Toto ani nie je editor, ale takmer kompletné vývojové prostredie. K dispozícii je funkcia IntelliSense, ktorá vám umožňuje zobraziť zoznam cmdlet a ich parametre, premenné, nástroje a ďalšie. Podporované sú úryvky, sadu funkcií je možné rozširovať prostredníctvom rôznych doplnkov. Veľmi užitočné je aj okno Príkazy. V ňom môžete vytvárať príkazy vo vizuálnom režime: vyberiete modul, nájdete požadovaný cmdlet a nastavíte ho na požadované parametre. Výsledný príkaz je možné skopírovať do konzoly alebo okamžite spustiť na vykonanie. Vo všeobecnosti akýsi konštruktor pre správcu. A samozrejme nechýba zvýraznenie syntaxe, debugger a mnoho ďalšieho.

Má však aj PowerShell ISE dôstojných konkurentov. Jeden z nich - .

PowerGUI je vizuálne rozšírenie prostredia PowerShell. Uľahčuje vytváranie vlastných skriptov pred výberom potrebných cmdletov. Vezmete si, čo potrebujete na vyriešenie problému, a presúvate časti kódu, kým nezískate skript. Jednou z hlavných funkcií PowerGUI sú Power Packs, hotové skripty publikované komunitou používateľov a sprístupnené verejnosti. Existujú jednoduché príkazy, ako je pridávanie používateľov, aj zložité príkazy - napríklad správa prepínačov a virtuálnych strojov. Všetky sa dajú ľahko pridať a upraviť podľa potreby.


Sapien je pokročilejšie prostredie, ktoré je určené na spoločný vývoj jedného projektu veľkým počtom účastníkov. Ak ste sa niekedy zaoberali vizuálne štúdio potom si myslím, že môžete vidieť podobnosti. Užitočné funkcie PowerShell Studio zahŕňajú pás s nástrojmi, podporu pre vzdialené ladenie a funkcie kompilátora, ktoré vám umožňujú zahrnúť skripty do spustiteľné súbory. Existuje podpora pre rôzne verzie PowerShell.


Za zmienku stojí prehliadač skriptov pre Windows PowerShell ISE. Toto nie je vývojové prostredie, ale veľmi zaujímavý nástroj, vyvinutý spoločnosťou Microsoft. Prehliadač skriptov otvára prístup k databáze hotové skripty, ktoré môžete použiť ako vzorky na písanie vlastného kódu. A táto vec môže tiež analyzovať kód, ktorý napíšete, a navrhnúť, ako ho vylepšiť.


Niekoľko užitočných trikov

Po rokovaní s editorom môžete začať písať kód. PowerShell je jednoduchý jazyk a myslím, že rýchlo prídete na to, čo je čo. Príkazy sa tu nazývajú cmdlety a každý z nich pozostáva z dvoch častí. Ako prvá prichádza na rad akcia, napríklad Získať, Nastaviť, Pridať, Vyvolať, Odstrániť. Potom označuje, na čo je akcia zameraná: Služba, VM, AzureAccount, DHCPServerSetting. Každá časť je od druhej oddelená pomlčkou. Ukazuje sa napríklad get-process. Toto, mimochodom, užitočný príkaz, ktorý zobrazuje zoznam procesov. Povedzme, ak píšeme

get-process BadTh*

uvidíme niečo takéto:

Rukoväte NPM (K ) PM (K ) WS (K ) VM (M ) CPU (y) Id ProcessName

------------------------

28 4 - 210844 - 201128 - 163 25,67 2792 BadThread

Teraz môžete ukončiť proces zavesenia:

Môžete to zobraziť rekurzívne, aj keď s trochu zložitejšou logikou:

Môžete tiež urobiť

Mimochodom, do každého poľa v poli s možnosťou účtu alebo počítača je možné pristupovať a čítať údaje. Takto môžete robiť celé rezy. Tu je napríklad dopyt založený na údajoch o telefónnych číslach:

Získať - AdUser - Filter * - Vlastnosti OfficePhone | FT OfficePhone, používateľské meno

PowerShell vs

Niekedy je možné úlohu vyriešiť staromódnou metódou aj pomocou PowerShell. Odporúčam neleniť a používať PS, už len preto, že sa ho tak rýchlejšie naučíte a dokážete ho aplikovať vo viac ťažké situácie. Navyše postupne oceníte jeho syntax – elegantnejšiu a konzistentnejšiu. Tu je niekoľko príkladov toho, ako sa veci robili predtým a ako sa dajú robiť s PowerShell.

Nasledujúci príkazový riadok reštartuje počítač s oneskorením desiatich sekúnd:

Takto môžete reštartovať službu dnscache (alebo akúkoľvek inú) pomocou bat:

sc stop dnscache

sc spustiť dnscache

1. Písanie scenára

Skript PowerShell (bez ohľadu na verziu) je textový súbor s príponou *.ps1.

Tu je príklad jednoduchého skriptu Power Shell (súbor systemInfo.ps1 ):

# Získať objekt WMI pre operačný systém

Get-WmiObject Win32_OperatingSystem

Tento súbor je možné vytvárať a upravovať napr Manažér FAR.

Poznámkaten FAR Manager síce môže fungovať v konzole Power Shell, ale spúšťa skripty pod sebou v prostredí bežnej konzoly Windows cmd . To znamená, že FAR Manager možno použiť iba na vytváranie a úpravu skriptov PowerShell, ale nie na spustenie. Ale skôr, než budete frustrovaní, prečítajte si bod 3.

2. Spustite skript

Skript musí byť spustený z konzoly Power Shell, nie z bežného konzoly Windows. V konzole Power Shell musíte prejsť do adresára, kde sa nachádza skript (pomocou príkazov cd ), a potom spustite samotný skript, nezabudnite predpísať znaky pred ním".\" . Napríklad máme cestu k súboru skriptu d:\work\systemInfo.ps1 . Potom budú príkazy na spustenie vyzerať takto:

cd\

cd práca

.\systemInfo.ps1

alebo takto (stačí uviesť celú cestu k skriptu):

d:\work\systemInfo.ps1

S najväčšou pravdepodobnosťou sa pri spustení skriptu zobrazí nasledujúca chyba:

Nie je možné načítať súbor D:\work\systemInfo.ps1, pretože v tomto systéme nie je povolené skriptovanie. Ak chcete získať ďalšie informácie, napíšte „get-help about_signing“.

reťazec:1 znak: 18

CategoryInfo: NotSpecified: (:) , PSecurityException

FullyQualifiedErrorId: RuntimeException

Chyba sa objavuje v dôsledku skutočnosti, že v predvolenom nastavení má Power Shell povolenú politiku maximálneho zabezpečenia, ktorá vám umožňuje spúšťať príkazy PowerShell na príkazovom riadku, ale neumožňuje spúšťať skript s príkazmi PowerShell na rovnakom príkazovom riadku. .

Ak chcete povoliť spúšťanie skriptov PowerShell, musíte vytvoriť súbor *.bat, napríklad enableScript.bat s nasledujúcim obsahom:

powershell - Príkaz Set-ExecutionPolicy RemoteSigned

Tento súbor *.bat je možné spustiť v akejkoľvek konzole: dokonca aj v prostredí PowerShell, dokonca aj v obvyklom cmd . Po spustení tohto súboru sa skripty PowerShell začnú spúšťať v konzole PowerShell.

3. Spustenie skriptu PowerShell z bežnej konzoly Windows cmd

Skript PowerShell môžete spustiť aj z bežnej konzoly Windows. Ak to chcete urobiť, môžete použiť príkaz:

Powershell -Súbor ./systemInfo.ps1

Takto môžete spúšťať skripty priamo z FAR Manager a budú fungovať.

Je tu však mierna jemnosť. Parameter- Súbor strieľa iba na miestnych cestách, aj keď je cesta relatívna"./". Teda ak *.ps1 - súbor je na lokálnom disku C: alebo D: , potom bude tento hovor fungovať. Ak sa však pokúsite spustiť skript umiestnený na zdroji domény, skript sa nenájde. Možno to bude opravené v budúcich verziách PowerShell.

Už sme videli, že je to celkom jednoduché a efektívny nástroj vykonávať každodenné úlohy. Je však kategoricky nemožné pochopiť skutočné schopnosti PowerShell z niekoľkých príkladov a povrchného štúdia, pretože pred určitý moment neostane vám pocit prehnanej ľahkosti. Je teda PowerShell dôležitý? nástroj Windows Alebo je to geek hračka? Poďme na to.

Stručná informácia

PowerShell bol oficiálne spustený v roku 2006 a mal nahradiť veľmi obmedzený príkazový interpret. riadky cmd. Toto bol už druhý pokus o nahradenie, vydaný pred 8 rokmi, Windows Script Host zlyhal kvôli nedostatku vstavanej dokumentácie a nedostatku integrácie shellu.

No, PowerShell zohľadnil väčšinu chýb svojich predchodcov, 3 roky od predstavenia bol dokončený do slušného vzhľadu a vo výsledku sa objavil pred armádou systémových administrátorov veľmi príjemným spôsobom.

Cmdlets v potrubí

PowerShell je založený na cmdletoch. Ak viete aspoň trochu po anglicky, už ste pochopili, že názov „cmdlets“ pochádza z veľavravného „cmdlet“. Ich štruktúra zahŕňa skutočný príkaz (sloveso) a predmet (podstatné meno). Napríklad: Get-Process, Sort-Object, Rename-Item a tak ďalej. Oddelenie, ako vidíte, sa vykonáva pomocou znamienka "-". existuje obmedzený zoznam cmdlety, ktoré systém štandardne používa, ale počnúc PowerShell 2.0 si môžete vytvoriť svoje vlastné cmdlety. Viac o tomto postupe si môžete prečítať na oficiálna stránka Microsoft. Mimochodom, aktuálna verzia 5.1 bola vydaná v auguste minulého roka.

Ďalším základným konceptom v PowerShell je Pipeline. Potrubie je postup na odovzdanie výstupu jedného cmdletu ako vstupu nasledujúceho. Určený dopravník "|" , ale v praxi vyzerá takýto záznam veľmi jednoducho:

GetProcess | Zoradiť CM

Ako môžete vidieť zo záznamu, do kódu na konci každého riadku vložte ";" nie je to potrebné, ale tento znak možno použiť na oddelenie cmdletov:

GetProcess; Získajte pomoc

Všetko je pohodlné a krásne.

No, hlavná vec v PowerShell sú, samozrejme, skripty. Ako v každom vysokoúrovňovom jazyku, ktorý rešpektuje seba samého, je možné pracovať s premennými, funkciami, podmienenými príkazmi, cyklami, výnimkami atď. výrazné obmedzenia vo funkčnosti nebudete cítiť.

Pohodlie a rýchlosť

Samozrejme, v snahe vyhovieť potrebám svojich zákazníkov a uľahčiť im život až do krajnosti, obrovský tím Microsoftu vytvoril produkt, ktorý je pohodlný a zrozumiteľný aj pre človeka, ktorý má ďaleko od programovania. Predstavte si na chvíľu, že ste správcom systému v kancelárii. Musíte skontrolovať, či zamestnanci nerobia na pracovisku nezmysly. Najjednoduchší spôsob, ako to urobiť, je nájsť a ukončiť „nesprávny“ proces na počítači v aktívnom adresári:

$proc = "Wrong_Proc"
$strCategory = "počítač"
$objDomain = New-Object System.DirectoryServices.DirectoryEntry
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = $objDomain
$objSearcher.Filter = ("(objectCategory=$strCategory)")
$colProplist = "meno"
foreach ($i v $colPropList)($objSearcher.PropertiesToLoad.Add($i))
$colResults = $objSearcher.FindAll()

Foreach($objResult v $colResults)
{
$objComputer = $objResult.Properties
$objComputer.name
if (Test-Connection -Count 2 -ComputerName $objComputer.name -Quiet)
{
$ps = Get-WmiObject Win32_Process -Filter "Name="$proc"" -ComputerName $objComputer.name

Foreach ($i v $ps)
{
$vysledok = $i.Ukoncit()
if ($result.ReturnValue -eq 0) ( "Úspech $comp")
else("Chyba $comp")
}
}
}

Wromg_Proc – názov hľadaného procesu, napríklad wmplayer.exe. Prvá časť skriptu je venovaná nájdeniu nášho počítača, druhá je v AD, druhá je vlastne práca s procesom. Napriek tomu, že vizuálne takýto záznam môže začiatočníka odpudzovať, v skutočnosti so znalosťou angličtiny kód ľahko dešifrujete.

Ale za pohodlie, ako je už dlho zvykom, musel Microsoft zaplatiť nemalú cenu. Medzi nevyhnutné obete patrí „chodiaca“ syntax so zjednodušeniami, ktorá začiatočníkom neumožňuje voľne čítať kód skúsenejších kolegov, a neopodstatnené voľnosti v dizajne vrátane zdrojového kódu. Ale to hlavné, čo treba obetovať, je rýchlosť. Kód spustený v PowerShell môže byť niekoľkonásobne pomalší ako linuxový ekvivalent bash. A ak to pri práci iba s vaším autom nie je príliš nápadné, potom pri servise desiatky a stovky vzdialené počítače strácate hodiny času namiesto desiatok minút.

Zbaliť bibliografiu

Neviem, či máte záujem o PowerShell ako výsledok tohto opusu, ale ak áno, hľadanie zvyšku informácií pre vás nebude ťažké. Na rozdiel od mnohých iných jazykov existuje veľa kvalitných informácií o PowerShell v ruskom segmente internetu pre ľudí akejkoľvek úrovne zručností.

V súčasnosti takmer všetci správcovia poznajú prostredie Windows PowerShell. Mnohí si ho stiahli, experimentovali s ním a riešili neštandardné úlohy, ktoré sa niekedy vykonávajú v príkazovom prostredí Windows cez cmd.exe. PowerShell je však oveľa viac než len príkazový shell podobný DOSu. Ide o príkazový riadok a skriptovacie prostredie so sídlom v spoločnosti Microsoft.NET Common Language Runtime (CLR) a .NET Framework. V prostredí PowerShell pracujete s objektmi .NET. Štruktúry priečinkov, ktoré vidíte, alebo služby, ku ktorým pristupujete, sú v podstate inštanciami objektov, ktoré predstavujú tieto priečinky a služby; toto je rozdiel medzi príslušným produktom a inými príkazovými shellmi, ktoré sú schopné spracovať iba texty. PowerShell je teda oveľa výkonnejší a efektívnejší ako tradičné príkazové shelly.

Pomôcť čitateľom využiť naplno tento nástroj, pripravil som sériu článkov vysvetľujúcich, ako to vyriešiť rôzne úlohy od PowerShell. V prvej „lekcii“ budem hovoriť o tom, ako začať používať PowerShell a ako ho vykonávať základné príkazy. Vysvetlím tiež, ako získať pomoc v PowerShell pri vytváraní týchto príkazov a ako používať aliasy v príkazoch.

Prvé kroky

PowerShell sa momentálne nedodáva so systémom Windows, ale to sa zmení so systémom Windows Server 2008. Odkazy na zdroje, kde si môžete stiahnuť PowerShell a informácie o prostredí, sú dostupné na webovej stránke Windows PowerShell (www.microsoft.com/powershell). Pred stiahnutím prostredia PowerShell musíte mať vo svojom systéme nainštalované rozhranie .NET Framework 2.0. Proces inštalácie PowerShell je rýchly a jednoduchý. Musíte sa len uistiť, že verzia PowerShell, ktorú inštalujete, je kompatibilná s vaším operačným systémom. Microsoft vydáva verzie pre Windows Server 2008 beta 3, Windows Vista, Windows XP SP2 a Windows Server 2003. Pre tento článok som použil verziu PowerShell pre Windows XP.

Po dokončení inštalácie PowerShell môžete ihneď začať. Ak chcete spustiť PowerShell v ponuka Štart musíte vybrať Všetky programy a potom vybrať Windows PowerShell 1.0 a Windows PowerShell. Keď sa v príkazovom riadku zobrazí okno PowerShell, aktuálny pracovný priečinok(v mojom systéme je to adresár C). Teraz môžete začať písať a vykonávať príkazy PowerShell.

Práca s tímami

Vývojári PowerShellu vybavili tento shell špeciálnym skriptovacím jazykom vytvoreným podľa štandardu .NET Framework. Príkaz PowerShell cmdlet je podobný funkcii v tom, že vykonáva špecifickú úlohu, ako je načítanie obsahu priečinka alebo aktualizácia položky databázy Registry.

V prostredí PowerShell je zabudovaných viac ako 100 príkazov. Môže vytvárať dodatočné príkazy, ale mali by ste použiť štandardný jazyk .NET ako napr Visual Basic.NET alebo C#. Články PowerShell sa budú týkať iba vstavaných príkazov. Každá možnosť príkazu je kombináciou slovesa a podstatného mena; je to preto, že spoločnosť Microsoft chcela použiť jednotnú schému pomenovania, aby sa uľahčilo učenie a rozširovanie prostredia PowerShell. Sloveso označuje činnosť, ktorá sa má vykonať, a podstatné meno označuje typ objektu, na ktorý bude činnosť nasmerovaná. Napríklad príkaz Get-ChildItem načíta zoznam položiek v aktuálnom pracovnom adresári alebo kontajneri, ako je napríklad register. Ak chcete vykonať príkaz, musíte ho zadať do príkazového riadku Rad PowerShell a stlačte kláves enter. Výsledky sa zobrazia pod príkazovým riadkom. To je všetko, čo potrebujete vedieť o vykonávaní základných príkazov.

Pravdepodobne nie je vždy známe, či existuje príkaz na vyriešenie úlohy, ktorá sa má vykonať, a niekedy je ťažké udržať si v pamäti názov konkrétneho príkazu. Zoznam všetkých príkazov je možné zobraziť spustením príkazu Get-Command. Obrazovka 1 zobrazuje časť tohto zoznamu; tam môžete vidieť názvy príkazov a syntax, ale nie popis toho, čo presne príslušný príkaz robí. Na získanie týchto informácií môžete použiť príkaz Get-Help.

Príkazy na získanie pomoci

PowerShell sa dodáva so sadou súborov pomocníka, ku ktorým má používateľ prístup priamo z príkazového okna PowerShell pomocou príkazu Get-Help. Ak chcete získať pomocné informácie o konkrétnom príkaze, použite príkaz Get-Help s parametrom -name. Za týmto parametrom nasleduje názov príkazu, pre ktorý chcete získať informácie. Podobne ako možnosti príkazov procesora cmd.exe, možnosti príkazov PowerShell poskytujú informácie, ktoré príkazy potrebujú na vykonanie svojej úlohy. Ale na rozdiel od možností príkazu cmd.exe (ktoré môžu začínať spojovníkom, lomkou alebo žiadnym úvodným znakom), možnosti príkazu PowerShell vždy začínajú spojovníkom, čo ďalej potvrdzuje konzistentnosť schémy pomenovania prostredia PowerShell.

Teraz sa pozrime, ako to celé funguje. Pozrime sa na príklad. Jedna z typických úloh systémový administrátor je čítať textové súbory. Po prečítaní zoznamu príkazov poskytnutých príkazom Get-Command ste dospeli k záveru, že príkaz Get-Content môže vykonať túto úlohu, ale nie ste si istý. Ak chcete zobraziť pomocné informácie o príkaze Get-Content, spustite nasledujúci príkaz:

Get-Help -name Get-Content

Ako ukazuje obrázok 2, tento príkaz vracia popis príkazu a informácie o syntaxi. Príkaz vráti obsah prvku, ktorý v tomto prípade ukazuje na ľubovoľný typ súboru v systéme. V minulosti mohol správca použiť príkaz For na prácu s dávkovými súbormi alebo objektom File-SystemObject v Windows skripty Script Host (WSH), ale v prostredí PowerShell stačí spustiť príkaz Get-Content. Ak chcete získať podrobnejšie informácie o syntaxi, musíte do príkazu pridať voľbu -full.

Get-Help -name Get-Content -full

Všimnite si, že voľba -full nemá zodpovedajúcu hodnotu. Parametre tohto typu sa nazývajú parametre prepínača, pretože sa zdá, že prepínajú správanie príkazov.

Obrázok 3 zobrazuje niektoré informácie vrátené týmto príkazom. Správca bude musieť posunúť okno na svojom počítači alebo zmeniť jeho veľkosť, aby bolo možné zobraziť celý obsah. Časť PARAMETERS obsahuje informácie potrebné na zahrnutie parametrov do príkazu. Všimnite si dve dôležité kategórie informácií pre každý parameter: Požadované a Pozícia.

Informácie v kategórii Required udávajú, či je parameter povinný alebo voliteľný. Keď je požadovaná premenná nastavená na hodnotu true, parameter musí byť zahrnutý v príkaze. Ak je požadovaná premenná nastavená na hodnotu false, tento parameter je voliteľný.

Hodnota kategórie Pozícia vám umožňuje posúdiť, či by mal byť parameter pomenovaný alebo sa naň dá odkazovať podľa jeho pozície. Keď je premenná Pozícia nastavená na názov, z toho vyplýva, že pri odkaze na tento parameter musíte zadať jej názov. Keď je hodnota premennej pozície vyjadrená ako číslo, na parameter možno odkazovať jeho názvom alebo jednoducho priradiť hodnotu parametra na jeho správnej pozícii.

Napríklad, ako ukazuje obrázok 3, príkaz Get-Content vyžaduje zadanie parametra -path. Hodnotu tohto parametra však možno zadať na prvej pozícii bez zadania názvu parametra, ako v nasledujúcom príklade:

Get-Content c:sample.txt

Ak hodnota parametra obsahuje medzery, hodnota musí byť uzavretá v úvodzovkách.

V sekcii PARAMETRE za každým názvom parametra nasledujú informácie v hranatých zátvorkách (). Táto informácia označuje typ údajov, ktorý by mala byť hodnota parametra. Ako ukazuje obrázok 3, hodnota parametra -path musí byť reťazec. Ak za reťazcom slov nasleduje skupina zátvoriek (), znamená to, že ako hodnotu parametra možno použiť pole reťazcov.

V prípade použitia parametrov prepínača, ktoré nenadobúdajú hodnoty, budú dáta typu read. S týmto typom údajov je napríklad definovaný parameter -force príkazu Get-Content. Tento parameter odstraňuje obmedzenia, ktoré by mohli brániť vykonaniu príkazu. Zrušenie nastane iba vtedy, keď je parameter zahrnutý v príkaze.

Ďalšou funkciou PowerShell, ktorú treba poznamenať a ktorá súvisí s parametrami, je automatické dokončovanie zadaním kombinácie „názov parametra“. Používateľ musí zadať iba toľko písmen, aby vytvoril názov parametra, aby ho bolo možné odlíšiť od ostatných parametrov. Áno, tým

Get-Content c:sample.txt -force

je ekvivalentné príkazu

Get-Content c:sample.txt -fo

Okrem informácií o parametroch potrebných na zostavenie príkazov obsahuje súbor pomoci pre príkaz Get-Content príklady, ktoré ilustrujú použitie príkazu, užitočné tipy v časti Poznámky a zdroje pre ďalšie informácie. Je pekné poznamenať, že pre všetky príkazy sú k dispozícii súbory pomocníka - dokonca existujú súbory pomocníka pre všeobecné koncepty.

Pomoc s konceptmi

PowerShell sa dodáva so sadou súborov pomocníka, ktoré poskytujú prehľady rôznych konceptov. Každý súbor začína znakmi "about_" a končí názvom sekcie. Zobraziť abecedný zoznamčasti o spustení príkazu

Ak chcete zobraziť informácie o konkrétnej téme, jednoducho ich musíte zahrnúť do hodnoty parametra celé meno témy. Napríklad, ak si chcete prečítať súbor o riadení toku údajov, musíte vykonať príkaz

Získajte pomoc o_ovládaní_toku

Obrázok 4 zobrazuje niektoré údaje, ktoré je možné získať ako výsledok. Ako vidíme, súbor obsahuje prehľad krokov zapojených do implementácie riadenia toku údajov v skriptoch PowerShell.

Používanie aliasov

Niektoré názvy príkazov môžu byť dosť dlhé, čo môže byť nepríjemné, ak musíte príkazy písať z klávesnice znova a znova. Našťastie vývojári PowerShell poskytli možnosť používať aliasy na odkazovanie na príkazy. Alias ​​je alternatívny názov, ktorý je zvyčajne oveľa kratší ako skutočný názov príkazu. PowerShell obsahuje množstvo vstavaných aliasov, okrem toho si používatelia môžu vytvárať svoje vlastné aliasy.

Ak chcete zobraziť aliasy dostupné v aktuálnej relácii, spustite príkaz Get-Alias ​​​​. Aktuálna relácia sa týka aktuálneho pripojenia k procesoru PowerShell. Keď sa PowerShell spustí, používateľ spustí novú reláciu; táto relácia pokračuje, kým používateľ nezatvorí PowerShell a neukončí pripojenie. Okrem všetkých vstavaných aliasov a ich priradených príkazov, Get-Alias ​​​​zobrazuje všetky aliasy vytvorené počas aktuálnej relácie, ako aj aliasy nastavené v profiloch, čo sú používateľom definované konfiguračné nastavenia, ktoré sa načítajú do prostredia PowerShell pri každom shell je spustený. Na profily sa pozrieme v jednom z nasledujúcich článkov.

Ak chcete vidieť aliasy spojené s konkrétnym príkazom, presnejšie definujte príkaz Get-Alias ​​​​. Ak chcete napríklad zobraziť aliasy spojené s Get-ChildItem, spustite príkaz

Získať alias |
Where-Object($_.definícia `
--zhoda "Get-ChildItem")

Tento príkaz obsahuje niekoľko prvkov, ktorým sa budem podrobne venovať v nasledujúcich lekciách. Zatiaľ všetko, čo potrebujete vedieť, je, že výstup príkazu Get-Alias ​​​​je smerovaný do príkazu Where-Object, ktorý odfiltruje všetky výsledky, ktoré sa nezhodujú s Get-ChildItem. Ak chcete vidieť aliasy priradené k inému príkazu, nahraďte názov Get-ChildItem názvom tohto príkazu.

Ako ukazuje obrázok 5, PowerShell obsahuje tri aliasy na volanie príkazu Get-ChildItem, gci, ls a dir. Ktorýkoľvek z nich možno použiť namiesto názvu príkazu. Každý z nasledujúcich štyroch príkazov teda uvádza obsah adresára C:Windows:

Get-ChildItem c:windows
adresár c: windows
ls c:windows
gci c: windows

Ak chcete vytvoriť alias v rámci aktuálnej relácie, použite príkaz Set-Alias ​​​​. Ak chcete napríklad vytvoriť alias cnt na prístup k obsahu Get-Content, spustite príkaz

Set-Alias ​​​​cnt Get-Content

Potom, kedykoľvek potrebujete spustiť príkaz Get-Content, môžete použiť alias cnt. Tento alias je možné používať, kým sa relácia neskončí (to znamená, kým sa nezatvorí prostredie PowerShell). Všimnite si, že pri definovaní aliasu nie je možné zahrnúť parametre; možno použiť iba názov príkazu. Ak chcete definovať odkaz na príkaz a jeho parametre, musíte vytvoriť špeciálnu funkciu.

vyhliadky

Takže v prvej lekcii som vám predstavil základné komponenty potrebné na to, aby ste mohli začať skúmať a používať príkazy PowerShell, ktoré pozostávajú z jedného alebo viacerých príkazov. V nasledujúcich článkoch vám ukážem, ako tieto príkazy používať, ako aj vytvárať skripty, ktoré vám umožnia používať všetky dostupné v Schopnosti PowerShell. Zatiaľ stačí začať pracovať s príkazmi. Pomocou súboru pomocníka PowerShell môžete vytvárať príkazy a učiť sa jednotlivé koncepty. Experimentujte s rôzne parametre a naučiť sa vytvárať a používať aliasy. Nebude to dlho trvať a budete pripravení používať PowerShell vo svojich každodenných úlohách.

Robert Sheldon ([e-mail chránený]) je technickým konzultantom a autorom mnohých technologických kníh. Microsoft Windows a databázy