Rulați scripturi și setați politica de execuție în Windows PowerShell
Înainte de a începe modificarea scripturilor Windows PowerShell sau crearea propriilor scripturi, trebuie să știți cum să rulați un script Windows PowerShell. Este posibil să fiți familiarizați cu ideea de a face dublu clic pe un fișier executabil sau de a-l selecta și apoi de a selecta Enter pentru a-l rula, dar acest proces nu funcționează pentru scripturile Windows PowerShell.
Una dintre problemele cu multe limbaje de scripting este că rularea scripturilor din greșeală este prea ușoară. Utilizatorii pot rula accidental un script făcând dublu clic pe el sau selectându-l și apoi selectând Enter. Această acțiune este deosebit de problematică atunci când extensia de fișier este ascunsă, iar malware-ul este inclus ca atașament de e-mail. De exemplu, un fișier atașat numit receipt.txt.vbs s-ar afișa ca receipt.txt și utilizatorii l-ar rula accidental, crezând că este un simplu fișier text. Această setare nu este o problemă pentru scripturile Windows PowerShell din cauza acțiunilor necesare pentru a rula un script.
Integrare cu File Explorer
Pentru a face scripturile Windows PowerShell mai sigure, extensia de fișier .ps1 este asociată cu Notepad. Prin urmare, atunci când faceți dublu clic pe un fișier .ps1 sau îl selectați și apoi selectați Enter, acesta se deschide în Notepad. Această setare înseamnă că utilizatorii nu pot fi păcăliți să ruleze un script Windows PowerShell făcând dublu clic pe el sau selectându-l și apoi selectând Enter.
Când faceți clic dreapta pe un script Windows PowerShell sau activați meniul contextual al acestuia, aveți trei opțiuni:
- Deschis. Această opțiune deschide scriptul în Notepad.
- Rulați cu PowerShell. Această opțiune rulează scriptul, dar solicitarea Windows PowerShell nu rămâne deschisă la finalizarea scriptului.
- Editare. Această opțiune deschide scriptul în Windows PowerShell ISE.
În majoritatea cazurilor, doriți ca solicitarea Windows PowerShell să rămână deschisă atunci când rulați un script. Pentru a efectua această activitate, rulați scriptul dintr-o solicitare Windows PowerShell care este deja deschisă.
Rularea scripturilor la promptul PowerShell
Când rulați un fișier executabil la un prompt de comandă, puteți introduce numele acestuia pentru a-l rula în directorul curent. De exemplu, când directorul curent este C:\app, puteți introduce app.exe pentru a rula C:\app\app.exe. Nu puteți utiliza acest proces pentru a rula scripturi Windows PowerShell, deoarece nu caută în directorul curent.
Pentru a rula un script Windows PowerShell la promptul Windows PowerShell, puteți utiliza următoarele metode:
- Introduceți calea completă către script; de exemplu, C:\Scripts\MyScript.ps1.
- Introduceți o cale relativă către script; de exemplu, \Scripts\MyScript.ps1.
- Faceți referire la directorul curent; de exemplu, .\MyScript.ps1.
Politica de execuție a scripturilor
Puteți controla dacă scripturile Windows PowerShell pot fi rulate pe computere Windows. Efectuați această activitate setând politica de execuție pe computer. Politica de execuție implicită pe un computer variază în funcție de versiunea sistemului de operare. Pentru a fi sigur de configurația curentă, puteți utiliza cmdletul Get-ExecutionPolicy .
Opțiunile pentru politica de execuție sunt:
- Restricționat. Nu este permisă rularea scripturilor.
- ToțiSemnat. Scripturile pot fi rulate numai dacă sunt semnate digital.
- De la distanțăSemnat. Scripturile care sunt descărcate pot fi rulate numai dacă sunt semnate digital.
- Nerestricționat. Toate scripturile pot fi rulate, dar se afișează o solicitare de confirmare atunci când rulați scripturi nesemnate care sunt descărcate.
- Ocolire. Toate scripturile sunt rulate fără solicitări.
Notă
Setarea politicii de execuție a scripturilor oferă o plasă de siguranță care poate împiedica rularea accidentală a scripturilor care nu sunt de încredere. Cu toate acestea, politica de execuție poate fi oricând suprascrisă.
Puteți seta politica de execuție pe un computer utilizând cmdletul Set-ExecutionPolicy . Cu toate acestea, această setare este dificil de gestionat pe multe computere. Atunci când configurați politica de execuție pentru multe computere, puteți utiliza setarea Configurare computer\Politici\Șabloane administrative\Componente Windows\Windows PowerShell\Activare politică de grup de execuție a scripturilor pentru a înlocui setarea locală.
Puteți înlocui politica de execuție pentru o instanță Windows PowerShell individuală. Această setare este utilă dacă politica de firmă necesită ca politica de execuție să fie setată ca Restricționat, dar trebuie să rulați scripturi ocazional. Pentru a înlocui politica de execuție, rulați PowerShell.exe cu parametrul -ExecutionPolicy .
Powershell.exe -ExecutionPolicy ByPass
Dacă ați modificat un script descărcat de pe internet, scriptul are în continuare atributele care îl identifică ca fișier descărcat. Pentru a elimina această stare dintr-un script, utilizați cmdletul Deblocare-fișier.