Zde je návod, jak vytěžit maximum z prostředí Windows PowerShell povolením zásad spouštění skriptů.
iPowerShell ve výchozím nastavení umožňuje spouštět příkazy (cmdlety) prostřednictvím své konzoly. Chcete-li spustit skript, můžete vytvořit soubor poznámkového bloku s kódem skriptu, uložit jej s příponou .ps1 a spustit jej prostřednictvím konzoly PowerShell. Skript můžete také přímo vložit do konzoly a spustit jej.
Pokud však skript spouštíte přes PowerShell poprvé, narazíte na chybu „spuštění skriptu je zakázáno“. Ve výchozím nastavení je spouštění skriptů v PowerShellu zakázáno jako bezpečnostní opatření, aby se zabránilo spouštění škodlivých skriptů ve vašem systému. Zde vám ukážeme dva způsoby, jak povolit zásady provádění skriptu v prostředí Windows PowerShell.
Jak zkontrolovat stávající zásady provádění
Chcete-li získat aktuální zásady provádění, můžete použít rutinu PowerShell. Znát své aktuální zásady provádění je nezbytné, abyste věděli, zda potřebujete změnu zásad nebo ne.
Chcete-li získat aktuální zásady provádění pro aktuálního uživatele:
- Otevřete Windows PowerShell jako správce.
- Do konzoly PowerShell zadejte následující příkaz a stiskněte Enter:
dostat-prováděcí politika
- Protože jste při provádění skriptu narazili na chybu, pravděpodobně se zobrazí návrat Omezený jako vaše aktuální zásady provádění.
- Pokud potřebujete zobrazit zásady provádění pro všechny podporované rozsahy:
dostat-executionpolicy -list
Chcete-li spouštět místní skripty bez chyby, budete muset změnit zásadu provádění na RemoteSigned. Zásady spouštění můžete změnit v aplikaci Nastavení a PowerShell.
Jak povolit zásady spouštění prostředí PowerShell pomocí aplikace Nastavení
Zásadu spouštění PowerShellu můžete změnit a nastavit na RemoteSigned pomocí aplikace Nastavení. Jediné, co musíte udělat, je vyladit nastavení PowerShellu v sekci pro vývojáře, abyste změnili zásady spouštění a povolili spouštění skriptů PowerShellu.
Chcete-li změnit zásady provádění pomocí Nastavení:
- lis Win + I otevřít Settings.
- Otevři Ochrana osobních údajů a zabezpečení kartu v levém podokně.
- Dále klikněte na Pro vývojáře.
- Kliknutím rozbalíte PowerShell sekce.
- Přepněte přepínač na změnit zásady spouštění tak, aby se místní skripty PowerShellu spouštěly bez podepisování – vyžadovat podepisování pro vzdálené skripty.
- Po dokončení otevřete PowerShell a zadejte get exekuční politika, a stiskněte Vstupte. Zásady provádění pro aktuálního uživatele jsou nyní nastaveny na RemoteSigned.
- Pokud potřebujete zakázat zásady provádění, přepněte přepínač PowerShell a nastavte jej na Vypnuto.
Jak povolit spouštění skriptů v PowerShellu pomocí PowerShellu
Můžete použít a cmdlet prostředí PowerShell pro nastavení zásady provádění na RemoteSigned. Rozhraní příkazového řádku usnadňuje rychlou změnu zásad provádění bez použití aplikace Nastavení.
Aplikace Nastavení může také povolit nebo zakázat zásady provádění RemoteSigned. Zatímco PowerShell vám umožňuje nastavit i další zásady a rozsahy.
Chcete-li změnit zásady provádění pomocí PowerShellu:
- Otevřete PowerShell jako správce.
- V okně PowerShell zadejte následující příkaz a stiskněte Vstupte:
Soubor-ExecutionPolicy RemoteSigned
- Pokud budete vyzváni, stiskněte A pro potvrzení akce. Tím se nastaví RemoteSigned zásady provádění pro všechny uživatele. Pokud chcete nastavit zásady provádění pro Současný uživatel použijte pouze parametr Rozsah následovaný uživatelským jménem.
- Například pro nastavení RemoteSigned prováděcí politika pro Současný uživatel, použijte následující příkaz:
Soubor-ExecutionPolicy RemoteSgined -Rozsah Současný uživatel
- Nahradit Současný uživatel ve výše uvedeném příkazu s ostatními uživateli (rozsah) podle vašeho požadavku.
Jak odebrat zásady spouštění skriptů pomocí PowerShellu
Pokud chcete zakázat spouštění skriptu, nastavte zásady spouštění na Nedefinováno pomocí the Set_ExecutionPolicy cmdlet. Toto je výchozí stav a brání PowerShellu ve spouštění jakýchkoli skriptů.
Chcete-li zakázat provádění skriptu pomocí PowerShellu:
- Otevřete PowerShell se zvýšeným oprávněním.
- Dále zadejte následující příkaz a stisknutím klávesy Enter zakažte provádění skriptu pro všechny uživatele:
Soubor-Politika provádění nedefinováno
- Výše uvedený příkaz nastaví výchozí zásady provádění (nedefinováno) pro všechny uživatele. Pokud chcete zakázat provádění skriptu pro určitý rozsah, použijte následující příkaz:
Soubor-Politika provádění nedefinováno -Rozsah CurrentUser
- Výše uvedený příkaz zakáže provádění skriptu pro Současný uživatel.
Pochopení zásad provádění a rozsahů
Jednoduše řečeno, zásada provádění PowerShellu je zásada, která řídí, jak PowerShell spouští konfigurační soubory a skripty. Zamýšleným účelem je zabránit uživatelům v náhodném spouštění škodlivých skriptů. Sedm zásad provádění PowerShellu je Výchozí, Omezené, Vzdáleně podepsané, Vše podepsané, Bez omezení, Obejití a Nedefinováno.
Níže uvedená tabulka stručně vysvětluje všechny zásady provádění PowerShellu:
Zásady provádění |
Vynucení |
Výchozí |
Nastaví výchozí zásadu spouštění jako Omezené na klientovi Windows a RemoteSigned na Windows Server. |
Vše podepsáno |
Umožňuje provádění skriptů podepsaných vydavatelem. |
Bypass |
Neomezené provádění skriptů pro větší aplikace. |
RemoteSigned |
Umožňuje spuštění lokálně zapsaného skriptu. Vyžaduje digitální podpisy pro skripty stažené z internetu. |
Omezený |
Nepovoluje spouštění skriptů, ale pouze jednotlivé příkazy PowerShellu. |
Nedefinováno |
Nastaví zásady provádění na Omezeno pro klienty Windows a RemoteSigned pro Windows Server. |
Neomezený |
Povolit spuštění nepodepsaného skriptu s upozorněním na skripty stažené z internetu. |
Rozsah zásad provádění
V PowerShellu můžete nastavit zásady provádění pro konkrétní obor. Existuje pět rozsahů zásad provádění MachinePolicy, UserPolicy, Process, CurrentUser, a LocalMachine.
Níže uvedená tabulka stručně vysvětluje všechny rozsahy zásad provádění:
Rozsah zásad provádění |
Vynucení |
Uživatelské zásady |
Konfigurováno zásadami skupiny pro aktuálního uživatele. |
Zásady stroje |
Konfigurováno zásadami skupiny pro všechny uživatele. |
CurrenUser |
Nakonfigurováno pro aktuálního uživatele a uloženo v podklíči registru HKEY_CURRENT_MACHINE. |
LocalMachine |
Nakonfigurováno pro všechny uživatele a uloženo v podklíči registru HKEY_CURRENT_MACHINE. |
Proces |
Ovlivňuje aktuální relaci PowerShellu a automaticky se odstraní, když je relace uzavřena. |
Přidat nebo odebrat zásady provádění skriptů PowerShell v systému Windows
Spouštění skriptu v prostředí PowerShell je ve výchozím nastavení pro klienty Windows zakázáno a pro server Windows je nastaveno na RemoteSigned. Pokročilí uživatelé však mohou změnit zásady provádění tak, aby spouštěly místní, podepsané a nepodepsané skripty PowerShellu.
Případně můžete obejít zásady provádění PowerShellu vložením skriptu do konzoly PowerShellu nebo ECHO skriptu do standardního vstupu PowerShellu. To je užitečné, pokud chcete spouštět skripty bez změny zásad provádění.