Tu je návod, ako vyťažiť maximum z prostredia Windows PowerShell povolením politiky vykonávania skriptov.
iPowerShell v predvolenom nastavení umožňuje spúšťať príkazy (cmdlets) prostredníctvom svojej konzoly. Ak chcete spustiť skript, môžete vytvoriť súbor poznámkového bloku s kódom skriptu, uložiť ho s príponou .ps1 a spustiť ho cez konzolu PowerShell. Skript môžete tiež priamo prilepiť do konzoly na vykonanie.
Ak však skript spúšťate cez PowerShell prvýkrát, narazíte na chybu „spustený skript je zakázaný“. V predvolenom nastavení je spúšťanie skriptov v prostredí PowerShell zakázané ako bezpečnostné opatrenie, aby sa zabránilo spusteniu škodlivých skriptov vo vašom systéme. Tu vám ukážeme dva spôsoby, ako povoliť politiku vykonávania skriptu v prostredí Windows PowerShell.
Ako skontrolovať existujúce pravidlá vykonávania
Ak chcete získať aktuálnu politiku vykonávania, môžete použiť rutinu cmdlet PowerShell. Poznať svoju aktuálnu politiku vykonávania je nevyhnutné, aby ste vedeli, či potrebujete zmenu politiky alebo nie.
Ak chcete získať aktuálnu politiku vykonávania pre aktuálneho používateľa:
- Otvorte Windows PowerShell ako správca.
- Do konzoly PowerShell zadajte nasledujúci príkaz a stlačte Enter:
dostať- politika vykonávania
- Keďže ste pri vykonávaní skriptu narazili na chybu, pravdepodobne sa zobrazí návrat Obmedzené ako sú vaše aktuálne pravidlá vykonávania.
- Ak potrebujete zobraziť politiku vykonávania pre všetky podporované rozsahy:
dostať-executionpolicy -list
Ak chcete spustiť lokálne skripty bez chyby, musíte zmeniť politiku vykonávania na RemoteSigned. Zásady vykonávania môžete zmeniť v aplikácii Nastavenia a v prostredí PowerShell.
Ako povoliť politiku vykonávania prostredia PowerShell pomocou aplikácie Nastavenia
Pomocou aplikácie Nastavenia môžete zmeniť a nastaviť politiku spúšťania prostredia PowerShell na RemoteSigned. Jediné, čo musíte urobiť, je upraviť nastavenia PowerShell v sekcii pre vývojárov, aby ste zmenili politiku spúšťania, aby ste umožnili spúšťanie skriptov PowerShell.
Ak chcete zmeniť politiku vykonávania pomocou nastavení:
- Stlačte tlačidlo Win + I otvoriť Settings.
- Otvor Ochrana osobných údajov a bezpečnosť na ľavej table.
- Ďalej kliknite na Pre vývojárov.
- Kliknutím rozbalíte PowerShell oddiele.
- Prepnite prepínač na zmeniť politiku vykonávania tak, aby umožňovala spúšťanie lokálnych skriptov PowerShell bez podpisu – vyžadovať podpisovanie pre vzdialené skripty.
- Po dokončení otvorte PowerShell, zadajte get pravidlá vykonávania, a stlačte Zadajte. Politika vykonávania pre aktuálneho používateľa je teraz nastavená na RemoteSigned.
- Ak potrebujete zakázať politiku spustenia, prepnite prepínač PowerShell a nastavte ho na Vypnuté.
Ako povoliť spustenie skriptov v PowerShell pomocou PowerShell
Môžete použiť a cmdlet prostredia PowerShell nastaviť politiku vykonávania na RemoteSigned. Rozhranie príkazového riadka uľahčuje rýchlu zmenu zásad vykonávania bez použitia aplikácie Nastavenia.
Aplikácia Nastavenia môže tiež povoliť alebo zakázať politiku vykonávania RemoteSigned. Zatiaľ čo PowerShell vám umožňuje nastaviť aj iné politiky a rozsahy.
Ak chcete zmeniť politiku vykonávania pomocou prostredia PowerShell:
- Otvorte PowerShell ako správca.
- V okne PowerShell zadajte nasledujúci príkaz a stlačte Zadajte:
Set-ExecutionPolicy RemoteSigned
- Ak sa zobrazí výzva, stlačte A na potvrdenie akcie. Tým sa nastaví RemoteSigned pravidlá vykonávania pre všetkých používateľov. Ak chcete nastaviť politiku vykonávania pre Súčasný užívateľ použite iba parameter Rozsah, za ktorým nasleduje používateľské meno.
- Napríklad, ak chcete nastaviť RemoteSigned vykonávacia politika pre Súčasný užívateľ, použite nasledujúci príkaz:
Set-ExecutionPolicy RemoteSgined -Rozsah Súčasný užívateľ
- Nahradiť Súčasný užívateľ vo vyššie uvedenom príkaze s ostatnými používateľmi (rozsah) podľa vašej požiadavky.
Ako odstrániť politiku vykonávania skriptov pomocou prostredia PowerShell
Ak chcete zakázať vykonávanie skriptu, nastavte politiku vykonávania na Nedefinované pomocou the Set_ExecutionPolicy cmdlet. Toto je predvolený stav a bráni PowerShellu vykonávať akékoľvek skripty.
Ak chcete zakázať vykonávanie skriptu pomocou prostredia PowerShell:
- Otvorte PowerShell so zvýšeným povolením.
- Potom zadajte nasledujúci príkaz a stlačením klávesu Enter zakážte vykonávanie skriptu pre všetkých používateľov:
Set-ExecutionPolicy nedefinované
- Vyššie uvedený príkaz nastaví predvolenú politiku vykonávania (nedefinovanú) pre všetkých používateľov. Ak chcete zakázať vykonávanie skriptu pre konkrétny rozsah, použite nasledujúci príkaz:
Set-ExecutionPolicy nedefinované -Rozsah CurrentUser
- Vyššie uvedený príkaz zakáže vykonávanie skriptu pre Súčasný užívateľ.
Pochopenie vykonávacích zásad a rozsahov
Jednoducho povedané, politika vykonávania PowerShell je zásada, ktorá riadi, ako PowerShell spúšťa konfiguračné súbory a skripty. Účelom je zabrániť používateľom v náhodnom spúšťaní škodlivých skriptov. Sedem zásad vykonávania prostredia PowerShell je Predvolené, Obmedzené, Vzdialené podpísané, Všetky podpísané, Neobmedzené, Obídené a Nedefinované.
Nasledujúca tabuľka stručne vysvetľuje všetky zásady vykonávania prostredia PowerShell:
Zásady vykonávania |
Presadzovanie |
Predvolené |
Nastaví predvolenú politiku spustenia ako Restricted on Windows Client a RemoteSigned na Windows Server. |
Všetko podpísané |
Umožňuje spúšťanie skriptov podpísaných vydavateľom. |
Obchvat |
Neobmedzené vykonávanie skriptov pre väčšie aplikácie. |
RemoteSigned |
Umožňuje spúšťanie lokálne napísaného skriptu. Vyžaduje digitálne podpisy pre skripty stiahnuté z internetu. |
Obmedzené |
Nepovoľuje spustenie skriptu, ale iba jednotlivé príkazy PowerShell. |
Nedefinované |
Nastaví politiku vykonávania na možnosť Obmedzené pre klientov Windows a RemoteSigned pre Windows Server. |
Neobmedzené |
Povoliť spustenie nepodpísaného skriptu s upozornením na skripty stiahnuté z internetu. |
Rozsah vykonávacej politiky
V PowerShell môžete nastaviť politiku vykonávania pre konkrétny rozsah. Existuje päť rozsahov politiky vykonávania MachinePolicy, UserPolicy, Process, CurrentUser, a LocalMachine.
Nasledujúca tabuľka stručne vysvetľuje všetky rozsahy politiky vykonávania:
Rozsah vykonávacej politiky |
Presadzovanie |
Používateľské zásady |
Konfigurované skupinovou politikou pre aktuálneho používateľa. |
Zásady stroja |
Konfigurované skupinovou politikou pre všetkých používateľov. |
CurrenUser |
Nakonfigurované pre aktuálneho používateľa a uložené v podkľúči databázy Registry HKEY_CURRENT_MACHINE. |
LocalMachine |
Nakonfigurované pre všetkých používateľov a uložené v podkľúči databázy Registry HKEY_CURRENT_MACHINE. |
Proces |
Ovplyvňuje aktuálnu reláciu PowerShell a automaticky sa odstráni, keď sa relácia zatvorí. |
Pridajte alebo odstráňte politiku vykonávania skriptov PowerShell v systéme Windows
Spúšťanie skriptu v prostredí PowerShell je predvolene zakázané pre klientov Windows a nastavené na RemoteSigned pre Windows server. Pokročilí používatelia však môžu zmeniť pravidlá vykonávania tak, aby spúšťali lokálne, podpísané a nepodpísané skripty PowerShell.
Prípadne môžete obísť politiku vykonávania prostredia PowerShell vložením skriptu do konzoly PowerShell alebo ECHO skriptu do štandardného vstupu prostredia PowerShell. Je to užitočné, ak chcete spúšťať skripty bez zmeny politiky vykonávania.