O zásadách spouštění

Krátký popis

Popisuje zásady spouštění prostředí PowerShell a vysvětluje, jak je spravovat.

Dlouhý popis

Zásady spouštění PowerShellu jsou bezpečnostní funkce, která řídí podmínky, za kterých PowerShell načítá konfigurační soubory a spouští skripty. Tato funkce pomáhá zabránit spuštění škodlivých skriptů.

Na počítači s Windows můžete nastavit zásady spouštění pro místní počítač, aktuálního uživatele nebo konkrétní relace. K nastavení zásad spouštění pro počítače a uživatele můžete použít také nastavení Zásady skupiny.

Zásady spouštění pro místní počítač a aktuálního uživatele jsou uloženy v registru. V profilu PowerShellu nemusíte nastavovat zásady spouštění. Zásady spouštění pro konkrétní relaci jsou uloženy pouze v paměti a při zavření relace budou ztraceny.

Zásady spouštění nejsou systémem zabezpečení, který omezuje akce uživatelů. Například uživatelé můžou zásadu snadno obejít zadáním obsahu skriptu na příkazovém řádku, když nemůžou skript spustit. Místo toho zásady spouštění pomáhají uživatelům nastavit základní pravidla a zabránit jejich neúmyslnému narušování.

Zásady spouštění prostředí PowerShell

Zásady spouštění PowerShellu jsou následující:

AllSigned

  • Skripty lze spustit.
  • Vyžaduje, aby všechny skripty a konfigurační soubory byly podepsány důvěryhodným vydavatelem, včetně skriptů, které zapisujete do místního počítače.
  • Zobrazí výzvu před spuštěním skriptů od vydavatelů, které jste dosud neklasifikovani jako důvěryhodné nebo nedůvěryhodné.
  • Rizika, která běží podepsaná, ale škodlivá, skripty.

Nepoužívat

  • Nic není zablokované a nezobrazí se žádná upozornění ani výzvy.
  • Tato zásada spuštění je navržena pro konfigurace, ve kterých je skript prostředí PowerShell integrován do větší aplikace, nebo pro konfigurace, ve kterých je prostředí PowerShell základem pro program, který má svůj vlastní model zabezpečení.

Výchozí

  • Nastaví výchozí zásady spouštění.
  • Omezení pro klienty se systémem Windows.
  • RemoteSigned pro servery Windows.

RemoteSigned

  • Výchozí zásada spouštění pro počítače se systémem Windows Server.
  • Skripty lze spustit.
  • Vyžaduje digitální podpis od důvěryhodného vydavatele na skriptech a konfiguračních souborech, které se stahují z Internetu, který obsahuje e-maily a programy pro zasílání rychlých zpráv.
  • Nevyžaduje digitální podpisy pro skripty, které jsou napsané v místním počítači a nestahují se z Internetu.
  • Spustí skripty stažené z Internetu a nikoli podepsané, pokud jsou odblokované skripty, například pomocí Unblock-File rutiny.
  • Rizika, která spouštějí nepodepsané skripty z jiných zdrojů než z Internetu a jsou podepsána, ale jsou škodlivá.

S omezeným přístupem

  • Výchozí zásada spouštění pro klientské počítače se systémem Windows.
  • Povoluje jednotlivé příkazy, ale nepovoluje skripty.
  • Zabraňuje spuštění všech souborů skriptu, včetně formátování a konfiguračních souborů ( .ps1xml ), souborů skriptu modulu () .psm1 a profilů PowerShellu ( .ps1 ).

Nedefinované

  • V aktuálním oboru není nastavena žádná zásada spouštění.
  • Pokud nejsou definoványzásady spouštění ve všech oborech, je platná zásada spouštění omezená, což je výchozí zásada spouštění.

Neomezené

  • Výchozí zásady spouštění pro počítače s jiným systémem než Windows a nelze je změnit.
  • Lze spustit nepodepsané skripty. Existuje riziko spuštění škodlivých skriptů.
  • Před spuštěním skriptů a konfiguračních souborů, které se nepoužívají v zóně místního intranetu, uživatele varuje.

Poznámka

V systémech, které nerozlišují cesty Universal Naming Convention (UNC) od cest k Internetu, nemusí mít skripty identifikované cestou UNC oprávnění ke spuštění se zásadami spouštění RemoteSigned .

Rozsah zásad provádění

Můžete nastavit, aby zásady spouštění byly platné pouze v určitém rozsahu.

Platné hodnoty pro obor jsou MachinePolicy, UserPolicy, Process, CurrentUsera LocalMachine. LocalMachine je výchozí hodnota při nastavování zásady spouštění.

Hodnoty oboru jsou uvedeny v pořadí podle priority. Zásada, která má přednost, je platná v aktuální relaci, a to i v případě, že byla na nižší úrovni přednost nastavena přísnější zásada.

Další informace najdete v tématu Set-ExecutionPolicy.

MachinePolicy

Nastaveno Zásady skupiny pro všechny uživatele počítače.

UserPolicy

Nastaveno Zásady skupiny pro aktuálního uživatele počítače.

Proces

Rozsah procesu ovlivňuje pouze aktuální relaci prostředí PowerShell. Zásady spouštění jsou uloženy v proměnné prostředí $env:PSExecutionPolicyPreference , nikoli v registru. Při zavření relace PowerShellu se proměnná a hodnota odstraní.

CurrentUser

Zásada spouštění má vliv pouze na aktuálního uživatele. Je uložený v podklíči registru HKEY_CURRENT_USER .

LocalMachine

Zásady spouštění mají vliv na všechny uživatele v aktuálním počítači. Je uložený v podklíči registru HKEY_LOCAL_MACHINE .

Správa zásad spouštění pomocí PowerShellu

Pokud chcete získat platnou zásadu spouštění pro aktuální relaci PowerShellu, použijte Get-ExecutionPolicy rutinu.

Následující příkaz získá efektivní zásadu spouštění:

Get-ExecutionPolicy

Chcete-li získat všechny zásady spouštění, které mají vliv na aktuální relaci, a zobrazit je v pořadí podle priority:

Get-ExecutionPolicy -List

Výsledek bude vypadat podobně jako následující ukázkový výstup:

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser    RemoteSigned
 LocalMachine       AllSigned

V tomto případě jsou efektivní zásady spouštění RemoteSigned , protože zásady spouštění pro aktuálního uživatele mají přednost před nastavenými zásadami spouštění pro místní počítač.

Pro získání sady zásad spouštění pro určitý rozsah použijte parametr Scope Get-ExecutionPolicy .

Například následující příkaz získá zásady spouštění pro obor CurrentUser :

Get-ExecutionPolicy -Scope CurrentUser

Změna zásad spouštění

Chcete-li změnit zásady spouštění prostředí PowerShell v počítači s Windows, použijte Set-ExecutionPolicy rutinu. Tato změna se projeví okamžitě. Nemusíte restartovat PowerShell.

Pokud jste nastavili zásady spouštění pro obory LocalMachine nebo CurrentUser, bude změna uložena v registru a zůstane účinná, dokud je znovu nezměníte.

Pokud jste pro obor procesu nastavili zásady spouštění, neuloží se do registru. Zásady spouštění jsou zachovány, dokud nebude ukončen aktuální proces a všechny podřízené procesy.

Poznámka

V systému Windows Vista a novějších verzích systému Windows můžete spustit příkazy, které mění zásady spouštění pro místní počítač, LocalMachine rozsah a spustit PowerShell s možností Spustit jako správce .

Změna zásad spouštění:

Set-ExecutionPolicy -ExecutionPolicy <PolicyName>

Příklad:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

Nastavení zásad spouštění v konkrétním oboru:

Set-ExecutionPolicy -ExecutionPolicy <PolicyName> -Scope <scope>

Příklad:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Příkaz pro změnu zásady spouštění může být úspěšný, ale stále nemění platné zásady spouštění.

Například příkaz, který nastaví zásady spouštění pro místní počítač, může být úspěšný, ale musí být přepsán zásadami spouštění pro aktuálního uživatele.

Odeberte zásady spouštění.

Chcete-li odebrat zásady spouštění pro určitý rozsah, nastavte zásady spouštění na nedefinované.

Chcete-li například odebrat zásady spouštění pro všechny uživatele místního počítače:

Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope LocalMachine

Odebrání zásad spouštění pro obor:

Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope CurrentUser

Pokud v žádném oboru nejsou nastavené žádné zásady spouštění, jsou platné zásady spouštění omezené, což je výchozí nastavení pro klienty Windows.

Nastavení jiné zásady pro jednu relaci

Pomocí parametru ExecutionPolicy powershell.exe můžete nastavit zásady spouštění pro novou relaci prostředí PowerShell. Zásada má vliv jenom na aktuální relaci a podřízené relace.

Chcete-li nastavit zásady spouštění pro novou relaci, spusťte PowerShell v příkazovém řádku, například cmd.exe nebo z prostředí PowerShell, a pak pomocí parametru ExecutionPolicy powershell.exe nastavte zásady spouštění.

Příklad:

powershell.exe -ExecutionPolicy AllSigned

Zásady spouštění, které jste nastavili, nejsou uloženy v registru. Místo toho je uložen v $env:PSExecutionPolicyPreference proměnné prostředí. Tato proměnná se odstraní, když zavřete relaci, ve které je zásada nastavená. Tuto zásadu nemůžete změnit úpravou hodnoty proměnné.

V průběhu relace mají zásady spouštění nastavené pro relaci přednost před zásadami spouštění nastavenými v registru pro místní počítač nebo aktuálního uživatele. Nemá ale přednost před zásadami spouštění nastavenými pomocí Zásady skupiny.

Použití Zásady skupiny ke správě zásad spouštění

Pomocí nastavení zapnout Zásady skupiny spuštění skriptu můžete spravovat zásady spouštění počítačů ve vašem podniku. Nastavení Zásady skupiny Přepisuje zásady spouštění nastavené v PowerShellu ve všech oborech.

Nastavení zásad spouštění skriptů pro zapnutí skriptu je následující:

  • Zakážete-li příkaz zapnout provádění skriptu, skripty nebudou spuštěny. Toto je ekvivalent zásady spouštění s omezeným přístupem .

  • Pokud povolíte zapnout provádění skriptu, můžete vybrat zásady spouštění. Nastavení Zásady skupiny jsou shodná s následujícími nastaveními zásad spouštění:

    Zásady skupiny Zásady spouštění
    Povolení všech skriptů Neomezené
    Povolení místních skriptů a vzdálených podepsaných skriptů RemoteSigned
    Povolí jenom podepsané skripty. AllSigned
  • Pokud není nakonfigurováno spuštění skriptu , nemá žádný vliv. Sada zásad spouštění nastavená v PowerShellu je účinná.

Soubory PowerShellExecutionPolicy. adm a PowerShellExecutionPolicy. admx přidávají zásady spouštění skriptů do konfigurace počítače a do uzlů konfigurace uživatele v editoru Zásady skupiny v následujících cestách.

Pro systémy Windows XP a Windows Server 2003:

Windows \ prostředí PowerShell pro správu

Pro systém Windows Vista a novější verze systému Windows:

Šablony pro správu pro správu Templates\Classic
Prostředí Windows Windows \ PowerShell

Zásady nastavené v uzlu Konfigurace počítače mají přednost před zásadami nastavenými v uzlu Konfigurace uživatele.

Další informace najdete v tématu about_Group_Policy_Settings.

Priorita zásad spouštění

Při určování efektivních zásad spouštění pro relaci vyhodnocuje PowerShell zásady spouštění v následujícím pořadí podle priority:

  • Zásady skupiny: MachinePolicy
  • Zásady skupiny: UserPolicy
  • Zásady spouštění: proces (nebo powershell.exe -ExecutionPolicy )
  • Zásady spouštění: CurrentUser
  • Zásady spouštění: LocalMachine

Správa podepsaných a nepodepsaných skriptů

Pokud jsou zásady spouštění prostředí PowerShell RemoteSigned, PowerShell nebude spouštět nepodepsané skripty stažené z Internetu, který obsahuje e-maily a programy pro zasílání rychlých zpráv.

Skript můžete podepsat nebo se rozhodnout spustit nepodepsaný skript bez změny zásad spouštění.

Počínaje PowerShellem 3,0 můžete použít parametr Stream Get-Item rutiny k detekci souborů, které jsou blokované, protože byly stažené z Internetu. Pomocí Unblock-File rutiny odblokujte skripty, abyste je mohli spouštět v prostředí PowerShell.

Další informace najdete v tématu about_signing, Get-Itema Unblock-File.

Viz také

about_Environment_Variables

about_Group_Policy_Settings

about_Signing

Get-ExecutionPolicy

Get – Item

PowerShell.exe Help příkazového řádku

Set-ExecutionPolicy

Odblokovat soubor