Iată cum să profitați la maximum de Windows PowerShell activând Politica de execuție a scripturilor.
iPowerShell, în mod implicit, vă permite să rulați comenzi (cmdleturi) prin consola sa. Pentru a executa un script, puteți crea un fișier notepad cu codul de script, îl puteți salva cu o extensie de fișier .ps1 și îl puteți executa prin consola PowerShell. De asemenea, puteți lipi direct scriptul pe consolă pentru execuție.
Cu toate acestea, dacă este prima dată când executați un script prin PowerShell, veți întâlni eroarea „scriptul de rulare este dezactivat”. În mod implicit, execuția scripturilor pe PowerShell este dezactivată ca măsură de securitate pentru a preveni rularea scripturilor rău intenționate pe sistemul dumneavoastră. Aici vă arătăm cele două moduri de a activa politica de execuție a scriptului pe Windows PowerShell.
Cum să vă verificați politica de execuție existentă
Puteți utiliza un cmdlet PowerShell pentru a obține politica de execuție curentă. Cunoașterea politicii actuale de execuție este necesară pentru a ști dacă aveți nevoie sau nu de o schimbare a politicii.
Pentru a obține politica de execuție curentă pentru utilizatorul actual:
- Deschideți Windows PowerShell ca administrator.
- Tastați următoarea comandă în consola PowerShell și apăsați Enter:
obține-politica de execuție
- Deoarece ați întâmpinat o eroare la executarea scriptului, probabil că returnarea va apărea Restricţionat ca politică curentă de execuție.
- Dacă trebuie să vedeți politica de execuție pentru toate domeniile acceptate:
obține-executionpolicy -list
Va trebui să modificați politica de execuție la RemoteSigned pentru a rula scripturi locale fără eroare. Puteți modifica politica de execuție din aplicația Setări și PowerShell.
Cum să activați politica de execuție PowerShell utilizând aplicația Setări
Puteți modifica și seta politica de execuție PowerShell la RemoteSigned folosind aplicația Setări. Tot ce trebuie să faceți este să modificați setările PowerShell din secțiunea pentru dezvoltatori pentru a modifica politica de execuție pentru a activa execuția scriptului PowerShell.
Pentru a modifica politica de execuție utilizând Setări:
- presa Câștigă + eu a deschide Settinguri.
- Deschide Confidențialitate și securitate fila din panoul din stânga.
- Apoi, faceți clic pe Pentru dezvoltatori.
- Faceți clic pentru a extinde PowerShell secțiune.
- Comutați comutatorul la modificați politica de execuție pentru a permite scripturilor locale PowerShell să ruleze fără semnare - Necesită semnarea pentru scripturile la distanță.
- După ce ați terminat, deschideți PowerShell, tastați get politica de executie, și apăsați introduce. Politica de execuție pentru utilizatorul actual este acum setată la Semnat la distanță.
- Dacă trebuie să dezactivați politica de execuție, comutați comutatorul PowerShell și setați-l la Oprit.
Cum să permiteți rularea scripturilor în PowerShell folosind PowerShell
Puteți folosi a cmdlet PowerShell pentru a seta politica de execuție la RemoteSigned. Interfața de linie de comandă facilitează modificarea rapidă a politicii de execuție fără a utiliza aplicația Setări.
De asemenea, aplicația Setări poate activa sau dezactiva numai politica de execuție RemoteSigned. În timp ce PowerShell vă permite să setați și alte politici și domenii.
Pentru a modifica politica de execuție folosind PowerShell:
- Deschideți PowerShell ca administrator.
- În fereastra PowerShell, tastați următoarea comandă și apăsați introduce:
A stabilit-ExecutionPolicy RemoteSigned
- Dacă vi se solicită, apăsați A pentru a confirma acțiunea. Aceasta va seta Semnat la distanță politica de execuție pentru toți utilizatorii. Dacă doriți să setați politica de execuție pentru Utilizator curent numai, utilizați parametrul Scope urmat de numele de utilizator.
- De exemplu, pentru a seta Semnat la distanță politica de executie pt Utilizator curent, utilizați următoarea comandă:
A stabilit-ExecutionPolicy RemoteSgined -Domeniul de aplicare Utilizator curent
- A inlocui Utilizator curent în comanda de mai sus cu alți utilizatori (Scope), conform cerințelor dvs.
Cum să eliminați politica de execuție a scripturilor folosind PowerShell
Dacă doriți să dezactivați execuția scriptului, setați politica de execuție la Nedefinit folosind the Set_ExecutionPolicy cmdlet. Aceasta este o stare implicită și împiedică PowerShell să execute scripturi.
Pentru a dezactiva execuția scriptului folosind PowerShell:
- Deschideți PowerShell cu permisiuni ridicate.
- Apoi, tastați următoarea comandă și apăsați Enter pentru a dezactiva execuția scriptului pentru toți utilizatorii:
A stabilit-ExecutionPolicy nedefinit
- Comanda de mai sus va seta politica de execuție implicită (nedefinită) pentru toți utilizatorii. Dacă doriți să dezactivați execuția scriptului pentru un anumit domeniu de aplicare, utilizați următoarea comandă:
A stabilit-ExecutionPolicy nedefinit -Scope CurrentUser
- Comanda de mai sus va dezactiva execuția scriptului pentru Utilizator curent.
Înțelegerea politicilor și domeniilor de execuție
Mai simplu spus, politica de execuție a PowerShell este o politică care controlează modul în care PowerShell execută fișierele de configurare și scripturile. Scopul propus este de a preveni utilizatorii să execute accidental scripturi rău intenționate. Cele șapte politici de execuție PowerShell sunt Implicit, Restricted, RemoteSigned, AllSigned, Unrestricted, Bypass și Undefined.
Tabelul de mai jos explică pe scurt toate politicile de execuție PowerShell:
Politica de execuție |
Executarea |
Mod implicit |
Setează politica de execuție implicită ca Restricted pe Windows Client și RemoteSigned pe Windows Server. |
Toate semnate |
Permite executarea de scripturi semnate de editor. |
Bypass |
Execuția nerestricționată a scripturilor pentru aplicații mai mari. |
Semnat la distanță |
Permite executarea de scripturi scrise local. Necesită semnături digitale pentru scripturile descărcate de pe internet. |
Restricţionat |
Nu permite executarea de scripturi, ci doar comenzi individuale PowerShell. |
Nedefinit |
Setează politica de execuție la Restricted pentru clienții Windows și RemoteSigned pentru Windows Server. |
Nerestricționat |
Permiteți execuția de scripturi nesemnate cu un avertisment pentru scripturile descărcate de pe internet. |
Domeniul de aplicare al politicii de execuție
Puteți seta politica de execuție pentru un anumit domeniu în PowerShell. Cele cinci domenii ale politicii de execuție sunt MachinePolicy, UserPolicy, Process, CurrentUser, și LocalMachine.
Tabelul de mai jos explică pe scurt toate domeniile politicii de execuție:
Domeniul de aplicare al politicii de execuție |
Executarea |
Politica utilizatorului |
Configurat de o politică de grup pentru utilizatorul curent. |
Politica mașinii |
Configurat printr-o politică de grup pentru toți utilizatorii. |
CurrenUser |
Configurat pentru utilizatorul curent și stocat în subcheia de registry HKEY_CURRENT_MACHINE. |
LocalMachine |
Configurat pentru toți utilizatorii și stocat în subcheia de registry HKEY_CURRENT_MACHINE. |
Proces |
Afectează sesiunea curentă PowerShell și este ștearsă automat când sesiunea este închisă. |
Adăugați sau eliminați politica de execuție a scripturilor PowerShell pe Windows
Execuția scriptului pe PowerShell este dezactivată în mod implicit pentru clienții Windows și setată la RemoteSigned pentru serverul Windows. Cu toate acestea, utilizatorii puternici pot schimba politicile de execuție pentru a rula scripturi PowerShell locale, semnate și nesemnate.
Alternativ, puteți ocoli politica de execuție PowerShell prin lipirea scriptului într-o consolă PowerShell sau ECHO scriptul în intrarea standard PowerShell. Acest lucru este util dacă doriți să executați scripturi fără a modifica politica de execuție.