Geek School: Naučte sa, ako automatizovať Windows s PowerShell

Obsah:

Geek School: Naučte sa, ako automatizovať Windows s PowerShell
Geek School: Naučte sa, ako automatizovať Windows s PowerShell

Video: Geek School: Naučte sa, ako automatizovať Windows s PowerShell

Video: Geek School: Naučte sa, ako automatizovať Windows s PowerShell
Video: iOS 17 - Everything New - YouTube 2024, Smieť
Anonim
V tomto vydaní Geek School vám pomôžeme pochopiť výkonný skriptovací jazyk PowerShell, ktorý je postavený priamo do systému Windows a je mimoriadne užitočný v prostredí IT.
V tomto vydaní Geek School vám pomôžeme pochopiť výkonný skriptovací jazyk PowerShell, ktorý je postavený priamo do systému Windows a je mimoriadne užitočný v prostredí IT.

Zatiaľ čo táto séria nie je štruktúrovaná okolo skúšky, učenie PowerShell je jednou z najdôležitejších vecí, ktoré môžete spraviť ako sieťový administrátor, takže ak je jedna vec, ktorú sa chcete naučiť pomôcť v IT kariére, to je všetko. Navyše je to veľa zábavy.

úvod

PowerShell je najvýkonnejší nástroj na automatizáciu, ktorý spoločnosť Microsoft ponúka, ako aj shell a skriptovací jazyk.

Upozorňujeme, že táto séria je založená na systéme PowerShell 3, ktorý je dodávaný so systémom Windows 8 a Server 2012. Ak používate systém Windows 7, pred pokračovaním si prevezmite aktualizáciu PowerShell 3.

Zoznámte sa s konzolou a ISE

Existujú dva spôsoby interakcie s PowerShellom mimo škatule, Konzola a Integrované skriptovacie prostredie - známe tiež ako ISE. ISE sa výrazne zlepšila od odpornej verzie dodávanej s PowerShell 2 a môže sa otvoriť stlačením klávesovej skratky Win + R, aby sa spustila schránka spustenia, potom sa zadali príkazy powerhell_ise a stlačte enter.

Ako vidíte, ISE má rozdelené zobrazenie, takže môžete rýchlo skriptovať, zatiaľ čo výsledok môžete vidieť v dolnej polovici ISE. Spodná polovica ISE, kde sú vytlačené výsledky vášho skriptu, môže byť tiež použitá ako výzva REPL - podobne ako príkazový riadok. V3 ISE nakoniec pridal podporu pre intellisense v tabuľke skriptu, ako aj v interaktívnej konzole.
Ako vidíte, ISE má rozdelené zobrazenie, takže môžete rýchlo skriptovať, zatiaľ čo výsledok môžete vidieť v dolnej polovici ISE. Spodná polovica ISE, kde sú vytlačené výsledky vášho skriptu, môže byť tiež použitá ako výzva REPL - podobne ako príkazový riadok. V3 ISE nakoniec pridal podporu pre intellisense v tabuľke skriptu, ako aj v interaktívnej konzole.
Image
Image
Prípadne môžete komunikovať s PowerShell pomocou PowerShell Console, čo budem používať pre väčšinu týchto sérií. Konzola PowerShell sa správa podobne ako príkazový riadok - jednoducho zadáte príkazy a vypliesie výsledky. Ak chcete otvoriť konzolu Windows PowerShell Console, znova stlačte klávesovú skratku Win + R, aby ste otvorili počiatočnú schránku a zadali príkazy a potom stlačte kláves enter.
Prípadne môžete komunikovať s PowerShell pomocou PowerShell Console, čo budem používať pre väčšinu týchto sérií. Konzola PowerShell sa správa podobne ako príkazový riadok - jednoducho zadáte príkazy a vypliesie výsledky. Ak chcete otvoriť konzolu Windows PowerShell Console, znova stlačte klávesovú skratku Win + R, aby ste otvorili počiatočnú schránku a zadali príkazy a potom stlačte kláves enter.
REPL takéto výzvy sú úžasné pre okamžité uspokojenie: zadáte príkaz a získate výsledky. Zatiaľ čo konzola neponúka intellisense, ponúka niečo nazývané dokončenie karty, ktoré funguje úplne rovnako - jednoducho začnite písať príkaz a stlačte kartu na prechádzanie možných zápasov.
REPL takéto výzvy sú úžasné pre okamžité uspokojenie: zadáte príkaz a získate výsledky. Zatiaľ čo konzola neponúka intellisense, ponúka niečo nazývané dokončenie karty, ktoré funguje úplne rovnako - jednoducho začnite písať príkaz a stlačte kartu na prechádzanie možných zápasov.
Image
Image
Image
Image

Pomocou systému pomoci

V predchádzajúcich verziách programu PowerShell boli pri inštalácii systému Windows zahrnuté súbory s nápovedou. Bolo to dobré riešenie z väčšej časti, ale zanechalo nás významný problém. Keď pomocný tím PowerShell musel prestať pracovať na súboroch s nápovedou, vývojári PowerShell boli stále zaneprázdnení kódovaním a vykonávaním zmien. To znamená, že pri dodaní PowerShell sú súbory s pomocníkmi nesprávne, pretože neobsahovali novšie zmeny, ktoré boli vykonané v kóde. Ak chcete vyriešiť tento problém, PowerShell 3 prichádza bez súborov s pomocníkom a obsahuje aktualizovateľný systém pomoci. To znamená, že predtým, ako urobíte čokoľvek, budete chcieť stiahnuť najnovšie súbory nápovedy. Môžete to urobiť otvorením konzoly PowerShell a spustením:

Update-Help

Image
Image
Blahoželáme vám k spusteniu vášho prvého príkazu PowerShell! Pravdou je, že príkaz Update-Help má oveľa viac možností, ako jednoducho len spustiť, a vidieť ich budeme chcieť zobraziť pomoc pre príkaz. Ak chcete zobraziť pomoc pre príkaz, jednoducho prejdite názov príkazu, ktorý chcete pomôcť, s parametrom Name príkazu Get-Help, napríklad:
Blahoželáme vám k spusteniu vášho prvého príkazu PowerShell! Pravdou je, že príkaz Update-Help má oveľa viac možností, ako jednoducho len spustiť, a vidieť ich budeme chcieť zobraziť pomoc pre príkaz. Ak chcete zobraziť pomoc pre príkaz, jednoducho prejdite názov príkazu, ktorý chcete pomôcť, s parametrom Name príkazu Get-Help, napríklad:

Get-Help –Name Update-Help

Pravdepodobne sa zaujímate, ako interpretovať celý tento text, mám na mysli, prečo sú v sekcii syntaxe dve veľa informácií a prečo existuje tak veľa zátvorov na celom mieste? Najprv je to prvé: dôvod, prečo sú dve sekcie informácií v sekcii syntaxe, je to, že predstavujú rôzne spôsoby spustenia príkazu. Tieto sú technicky nazývané sady parametrov a môžete ich použiť iba jeden (nie je možné kombinovať parametre z rôznych sád). Na horeuvedenej snímke obrazovky vidíte, že horná sada parametrov má parameter SourcePath, zatiaľ čo v dolnej časti nie je. Dôvodom je, že by ste použili hornú sadu parametrov (ten, ktorý obsahuje SourcePath), ak by ste aktualizovali súbory s pomocou z iného počítača v sieti, ktorá ich už stiahla, zatiaľ čo by ste nemuseli určovať zdrojovú cestu, ak ste chcel len chytiť najnovšie súbory od spoločnosti Microsoft.
Pravdepodobne sa zaujímate, ako interpretovať celý tento text, mám na mysli, prečo sú v sekcii syntaxe dve veľa informácií a prečo existuje tak veľa zátvorov na celom mieste? Najprv je to prvé: dôvod, prečo sú dve sekcie informácií v sekcii syntaxe, je to, že predstavujú rôzne spôsoby spustenia príkazu. Tieto sú technicky nazývané sady parametrov a môžete ich použiť iba jeden (nie je možné kombinovať parametre z rôznych sád). Na horeuvedenej snímke obrazovky vidíte, že horná sada parametrov má parameter SourcePath, zatiaľ čo v dolnej časti nie je. Dôvodom je, že by ste použili hornú sadu parametrov (ten, ktorý obsahuje SourcePath), ak by ste aktualizovali súbory s pomocou z iného počítača v sieti, ktorá ich už stiahla, zatiaľ čo by ste nemuseli určovať zdrojovú cestu, ak ste chcel len chytiť najnovšie súbory od spoločnosti Microsoft.

Ak chcete odpovedať na druhú otázku, existuje určitá syntax, ktorá pomáha súborom a je tu:

  • Hranaté zátvorky okolo názvu parametra a jeho typu znamená, že ide o voliteľný parameter a príkaz bude bez neho fungovať bez problémov.
  • Hranaté zátvorky okolo názvu parametra znamenajú, že parametre sú polohové parametre.
  • Vec napravo od parametra v zaoblených zátvorkách vám povie typ dát, ktorý očakáva parameter.

Zatiaľ čo by ste sa mali naučiť čítať syntax súboru pomocníka, ak si niekedy nie ste istý o určitom parametri, pridajte -Full na koniec príkazu get help a prejdite nadol do časti parametrov, kde vám povie o niečom trochu viac parameter.

Get-Help –Name Update-Help –Full

Posledná vec, ktorú potrebujete vedieť o systéme pomoci, je, ako ju môžete použiť na objavovanie príkazov, čo je v skutočnosti veľmi jednoduché. Vidíte, PowerShell akceptuje zástupné znaky takmer kdekoľvek, takže ich použitie spolu s príkazom Get-Help vám umožňuje ľahko nájsť príkazy. Napríklad hľadám príkazy, ktoré sa zaoberajú službami Windows:
Posledná vec, ktorú potrebujete vedieť o systéme pomoci, je, ako ju môžete použiť na objavovanie príkazov, čo je v skutočnosti veľmi jednoduché. Vidíte, PowerShell akceptuje zástupné znaky takmer kdekoľvek, takže ich použitie spolu s príkazom Get-Help vám umožňuje ľahko nájsť príkazy. Napríklad hľadám príkazy, ktoré sa zaoberajú službami Windows:

Get-Help –Name *service*

Iste, všetky tieto informácie nemusia byť vhodné pre netopierov, ale verte mi, vezmite si čas a naučte sa používať systém pomoci. Prichádza to prakticky po celý čas, dokonca aj pre pokročilých scenárov, ktorí to robí už celé roky.
Iste, všetky tieto informácie nemusia byť vhodné pre netopierov, ale verte mi, vezmite si čas a naučte sa používať systém pomoci. Prichádza to prakticky po celý čas, dokonca aj pre pokročilých scenárov, ktorí to robí už celé roky.

zabezpečenia

Toto by nebolo správnym úvodom bez uvedenia bezpečnosti. Najväčšou obavou pre tím PowerShell je, že PowerShell sa stáva najnovším a najväčším bodom útoku pre skriptári. Zaviedli niekoľko bezpečnostných opatrení, aby sa ubezpečili, že sa to nestane, a tak sa na ne pozrieme.

Najzákladnejšia forma ochrany pochádza zo skutočnosti, že rozšírenie súboru PS1 (rozšírenie použité na označenie skriptu PowerShell) nie je zaregistrované u hostiteľa PowerShell, ktorý je skutočne zaregistrovaný v programe Poznámkový blok. To znamená, že ak dvakrát kliknete na súbor, otvorí sa s poznámkovým blokom namiesto spustenia.

Po druhé, nemôžete spustiť skripty z shell jednoduchým zadaním názvu skriptu, musíte zadať úplnú cestu k skriptu. Takže ak by ste chceli spustiť skript na C jednotke, musíte zadať:

C:

unme.ps1

Alebo ak ste už v koreňovej jednotke C, môžete použiť nasledovné:

unme.ps1

Napokon PowerShell má niečo, čo sa nazýva Vykonávacie pravidlá, ktoré vás zabraňujú spustiť akýkoľvek starý skript. V skutočnosti nemôžete spustiť žiadne skripty a je potrebné zmeniť pravidlá vykonávania, ak chcete, aby boli spustené. Existujú 4 pozoruhodné vykonávacie pravidlá:

  • obmedzený: Toto je predvolená konfigurácia v systéme PowerShell. Toto nastavenie znamená, že žiadny skript nemôže bežať bez ohľadu na jeho podpis. Jediná vec, ktorú je možné v aplikácii PowerShell spustiť s týmto nastavením, je individuálny príkaz.
  • AllSigned: Toto nastavenie umožňuje skripty spustiť v PowerShell. Skript musí mať priradený digitálny podpis od dôveryhodného vydavateľa. Pred spustením skriptov od dôveryhodných vydavateľov sa zobrazí výzva.
  • RemoteSigned: Toto nastavenie umožňuje spustenie skriptov, ale vyžaduje, aby skriptové a konfiguračné súbory stiahnuté z Internetu mali pridružený digitálny podpis od dôveryhodného vydavateľa. Skripty spustené z lokálneho počítača nemusia byť podpísané. Pred spustením skriptu nie sú žiadne výzvy.
  • neobmedzený: Toto povoľuje spustenie nesignovaných skriptov vrátane všetkých skriptov a konfiguračných súborov stiahnutých z Internetu. Zahŕňa to súbory z aplikácií Outlook a Messenger. Rizikom je spustenie skriptov bez akéhokoľvek podpisu alebo zabezpečenia. Opätovne sme sa rozhodli, že toto nastavenie nikdy nepoužívate.

Ak chcete zistiť, aké sú vaše aktuálne pravidlá vykonávania, otvorte konzolu PowerShell a zadajte:

Get-ExecutionPolicy

Pre tento kurz a pre väčšinu ostatných okolností je politika RemoteSigned najlepšia, preto postupujte ďalej a zmeňte svoje pravidlá pomocou nasledujúceho.
Pre tento kurz a pre väčšinu ostatných okolností je politika RemoteSigned najlepšia, preto postupujte ďalej a zmeňte svoje pravidlá pomocou nasledujúceho.

Poznámka: Toto bude potrebné vykonať z vyvýšenej konzoly PowerShell.

Set-ExecutionPolicy RemoteSigned

To je všetko pre túto chvíľu ľudia, uvidíme sa zajtra za niečo viac PowerShell zábavy.
To je všetko pre túto chvíľu ľudia, uvidíme sa zajtra za niečo viac PowerShell zábavy.

Odmietnutie zodpovednosti: Správnym výrazom pre príkaz PowerShell je cmdlet a odteraz použijeme túto správnu terminológiu. Považovalo sa za vhodnejšie ich nazvať príkazmi pre tento úvod.

Ak máte nejaké otázky, môžete ma napísať @taybgibb, alebo zanechať komentár.

Odporúča: