Vysvetlenie politiky PowerShell ExecutionPolicy

15. septembra 2020 2424 Názory politika vykonávania powershell

Prehľadávať témy príspevkov





Čo je PowerShell ExecutionPolicy?

ExecutionPolicy v PowerShell je bezpečnostná funkcia, ktorá riadi, ako PowerShell načítava konfiguračné súbory a spúšťa skripty. Funkcie ExecutionPolicy pomáhajú zabrániť spúšťaniu škodlivých skriptov v prostredí PowerShell.



Môžete nastaviť politiku vykonávania pre počítač, používateľa alebo reláciu. The Set-ExecutionPolicy cmdlet možno použiť na nastavenie ExecutionPolicy. Príkaz PowerShell.exe má tiež parameter ExecutionPolicy, ktorý môžete použiť na nastavenie Powershell ExecutionPolicy.



V tejto príručke sa dozviete o rôznych typoch zásad vykonávania prostredia PowerShell. Dozviete sa tiež, ako používať príkazy Set-ExecutionPolicy a PowerShell.exe -ExecutionPolicy.



došlo k príliš veľkému počtu zlyhaní prihlásenia

Dostupné pravidlá vykonávania

Táto časť vysvetľuje rôzne ExecutionPolicy, ktoré môžete nastaviť v PowerShell, a čo vám každá umožní robiť.



Obmedzené

  • Toto je predvolená politika vykonávania v systéme Windows 8, Server 2012 a novších.
  • Zabraňuje spusteniu konfiguračných súborov PowerShell (.ps1xml), súborov skriptov modulov (.psm1) a profilov Windows PowerShell (.ps1)
  • Umožňuje jednotlivé príkazy prostredia PowerShell, ale zakazuje skripty

Všetko podpísané

Keď nastavíte AllSigned ExecutionPolicy, PowerShell:

  • Spustí všetky skripty
  • Vyžaduje, aby bol skript pred povolením na spustenie podpísaný dôveryhodným vydavateľom. To zahŕňa skripty napísané na lokálnom počítači
  • Výzvy na potvrdenie pred spustením skriptu od vydavateľa, o ktorom ste nepotvrdili, že je dôveryhodný
  • Môže spúšťať podpísané, ale škodlivé kódy

RemoteSigned

RemoteSigned ExecutionPolicy:



  • Umožňuje spustenie skriptov
  • Vyžaduje, aby všetky skripty stiahnuté z internetu boli digitálne podpísané vydavateľom, ktorého ste označili ako dôveryhodného. To zahŕňa skripty prijaté prostredníctvom e-mailu a platforiem na odosielanie okamžitých správ.
  • Nebude vyžadovať digitálne podpisovanie skriptov napísaných na lokálnom počítači
  • Môže povoliť spúšťanie škodlivých skriptov z iných zdrojov

Neobmedzené

  • Umožňuje spustenie nepriradených skriptov
  • Upozorní vás pred spustením skriptu z internetu
  • Riziká spustenia škodlivých kódov alebo skriptov

Obchvat

S obídením ExecutionPolicy:



  • Nie je blokovaný žiadny skript. Neponúka tiež upozornenia.

Nedefinované

  • Znamená to, že nie je definovaná žiadna ExecutionPolicy
  • Efektívne ExecutionPolicy je obmedzené (predvolené)

Rozsah a priorita ExecutionPolicy

Politiku vykonávania prostredia PowerShell môžete použiť na:

LocalMcachine : Ovplyvňuje iba aktuálnych používateľov. Toto má najmenšiu prednosť

Súčasný užívateľ : Zásady vykonávania ovplyvňujú iba aktuálneho používateľa. Má prednosť pred LocalMcachine ale má nižšiu prednosť pred Proces .

Proces : Platí len pre aktuálnu reláciu. Má najvyššiu prioritu.

Ako získať aktuálnu politiku PowerShell ExecutionPolicy

Ak chcete zobraziť aktuálnu politiku PowerShell ExecutionPolicy, spustite príkaz nižšie:

|_+_| Ako nastaviť politiku vykonávania pomocou Set-ExecutionPolicy

Ak chcete zobraziť sadu ExecutionPolicy pre všetky rozsahy, použite tento príkaz:

|_+_| Ako nastaviť politiku vykonávania pomocou Set-ExecutionPolicy

Môžete tiež získať Zásady vykonávania na základe rozsahu. Tu je niekoľko vzorových príkazov:

|_+_|

Ako nastaviť PowerShell ExecutionPolicy

Ako som už spomenul v úvode, ExecutionPolicy môžete nastaviť pomocou cmdlet Set-ExecutionPolicy. Môžete tiež použiť príkaz PowerShell.exe -ExecutionPolicy.

Ako nastaviť politiku vykonávania pomocou Set-ExecutionPolicy

Syntax rutiny cmdlet Set-ExecutionPolicy je:

|_+_|

Ako príklad nastaviť Zásady vykonávania na RemoteSigned použite príkaz nižšie:

radič usb je v zlyhanom stave
|_+_|

Tu je výsledok príkazu.

Ako nastaviť politiku vykonávania pomocou Set-ExecutionPolicyPríkaz zlyhal, pretože som neotvoril PowerShell ako správca.

Tu je príkaz vykonaný ako správca:

Ako nastaviť politiku vykonávania pomocou PowerShell.exe -ExecutionPolicy

Ako môžete vidieť na obrázku, teraz sú nové pravidlá vykonávania RemoteSigned .

Z posledných 2 príkazov som bol vyzvaný na potvrdenie príkazu. Ak chcete obísť túto výzvu, zadajte -Sila parameter.

Príkaz sa teraz vykoná bez výzvy na potvrdenie.

všeobecný produktový kľúč systému Windows 8
The -Sila parameter je obzvlášť užitočný pri skriptovaní. Bez tohto parametra sa váš skript môže zastaviť.

Tento príkaz štandardne nastavuje politiku vykonávania pre LocalMachine rozsah. Ak to chcete potvrdiť, spustite príkaz nižšie:

|_+_|

Ak chcete nastaviť politiku vykonávania tak, aby sa vzťahovala na iný rozsah, použite – Rozsah parameter.

Príkaz nižšie nastavuje politiku vykonávania pre Súčasný užívateľ :

|_+_|

Ako môžete vidieť z výsledku, Súčasný užívateľ politika už nie je Nedefinované . Je teraz Obchvat , politika nastavená posledným príkazom.

Ako nastaviť ExecutionPolicy pomocou PowerShell.exe -ExecutionPolicy

Ak chcete obísť politiku vykonávania pre prihlásenú reláciu, môžete nastaviť politiku vykonávania pre aktuálny príkazový riadok. To sa dosiahne pomocou príkazu PowerShell.exe.

Predtým, ako uvediem príklady, tu sú aktuálne pravidlá vykonávania:

Aktuálna politika vykonávania je Obmedzené . Je to preto, že Proces rozsah má prednosť. Pre potvrdenie si pozrite výsledok nižšie:

Ak si spomenieš, Obmedzené zásada NEUMOŽŇUJE spúšťanie skriptov.

To znamená, že ak sa pokúsim spustiť skript, bude mi odmietnutý prístup. Obrázok nižšie zobrazuje sériu príkazov a ich výsledky. Pozrite si moje vysvetlenie pod obrázkom.

Prvý príkaz zobrazený na obrázku je:

|_+_|

Pokúsil som sa spustiť skript PowerShell. Potom som dostal chybovú správu nižšie:

Súbor C:PSschedule powershell exampleCreate-folders-from-text-file.ps1 nemožno načítať, pretože spúšťanie skriptov je v tomto systéme zakázané.

Dôvodom je, že súčasná politika vykonávania je Obmedzené . Nedovoľuje spúšťať žiadne skripty.

Späť na referenčný obrázok. V ďalšom riadku som spustil nasledujúci príkaz:

|_+_|

Účinne môžem nastaviť politiku dočasného spustenia pre príkazový riadok pomocou parametra -ExecutionPolicy príkazu powershell.exe. Ale dostal som rovnaké chybové hlásenie. Dôvodom je, že pred volaním skriptu musím nastaviť politiku vykonávania.

Potom som v ďalšom riadku vykonal tento príkaz:

domovské tlačidlo lg v10 nefunguje
|_+_|

Toto nastaví politiku vykonávania pre aktuálnu prihlásenú reláciu na Neobmedzené . Takže keď teraz spustím svoj skript PowerShell, spustil sa úspešne! Pozrite si referenčný obrázok vyššie.

Výsledky poslednej analýzy sú nasledovné: Powershell ExecutionPolicy môžete nastaviť pre aktuálnu reláciu pomocou Powershell.exe -ExecutionPolicy. Pred volaním skriptu však musíte najskôr spustiť príkaz.

Aby som potvrdil, že Powershell.exe nastavuje politiku iba pre aktuálnu reláciu, spustím príkaz uvedený nižšie z aktuálnej relácie:

|_+_|

Výsledkom je Neobmedzené pre Súčasný užívateľ rozsah. Ak sa odhlásim z aktuálnej relácie a znova sa prihlásim. Vráti sa späť na politiku nastavenú príkazom Set-ExecutionPolicy.

Záver

Dúfam, že sa mi podarilo zjednodušiť, ako získať a nastaviť zásady vykonávania prostredia PowerShell. Ak máte akékoľvek otázky alebo pripomienky, použite formulár na zanechanie odpovede na konci stránky.

Ďalšie užitočné príručky

  • Operátor PowerShell nie je rovnaký: aplikácie, príklady
  • Powershell For Loop Explained: Syntax a príklady

Ďalšie zdroje a referencie