Lansarea powershell din cmd. Rularea scripturilor PowerShell într-un program

În administrație este întotdeauna loc de creativitate. Vrei să faci ceva automatizare? sarcină de rutină? Vă rog! Trebuie să verificați în mod regulat ceva pentru activitate? Nici o problemă! Doriți să procesați un raport uriaș și să afișați numai date relevante? E posibil și asta. Toate acestea și multe alte sarcini sunt cel mai bine rezolvate folosind scripturi, iar PowerShell este alegerea optimă în cazul Windows.

Ce este PowerShell și de ce este bun?

Utilizatorii UNIX și Linux, și la un moment dat și macOS, sunt obișnuiți să aibă întotdeauna Bash la îndemână - puțin demodat, dar universal și Unealtă puternică, cu care poți face lucruri uimitoare în doar câteva rânduri. Înregistrați un script nou în cron - și ați terminat, rulează deja pe computer sau server și face în liniște ceva util.

Revenind la Windows (și uneori nu te poți descurca fără el), înțelegi că scripturile .bat, deși bune, nu te salvează întotdeauna: capacitățile lor sunt foarte limitate. Și dacă tot credeți că PowerShell este un lucru necunoscut pentru care trebuie să preluați și să configurați ceva, atunci nu vă grăbiți să trageți concluzii - dacă vă uitați la el, nu este deloc rău.

Windows PowerShell este un instrument de automatizare extensibil, open-source, care constă dintr-un shell ( Linie de comanda) Și limbaj de scripting. A fost afișat pentru prima dată în 2003 (numit atunci Monad). PowerShell 2.0 a fost lansat cu Windows 7 și Windows Server 2008 R2 și de atunci a fost o caracteristică standard în Windows. A fost inclus chiar și în Windows XP SP3. PowerShell este construit pe deasupra și integrat cu .NET Framework. PowerShell poate accesa COM, WMI și ADSI și, bineînțeles, execută și comenzi de consolă.

În general, posh are legături puternice cu produse Microsoft, fie Director activ sau server de mail Schimb valutar. Acest lucru vă permite să le accesați prin consolă și să emiteți comenzi fără a vă conecta la echipamentul serverului.

Dacă nu erați interesat de PowerShell înainte, atunci cel mai probabil aveți a doua versiune. Recomand să faceți upgrade la cel puțin al treilea - conține mult mai multe funcții și sfaturi utile. Fără a intra în detalii, PowerShell 2.0 include aproximativ o duzină de module și aproximativ 350 de comenzi, iar PowerShell 3.0 are deja aproximativ 2.300 de cmdlet-uri din peste 70 de module. „Hackerul” a scris și despre cum diferă cea mai nouă versiune PowerShell 5 de Windows 10.

Alegerea unui mediu de dezvoltare și a instrumentelor

Acum să ne dăm seama unde este cel mai convenabil să scriem cod. Puteți, desigur, și în Notepad, Notepad++ sau Sublime. Dar, în acest caz, aceasta nu este cea mai înțeleaptă alegere a editorului. Cel mai bine este să începeți să vă familiarizați cu PowerShell înarmat cu .


Acesta nu este nici măcar un editor, ci un mediu de dezvoltare aproape complet. Există o caracteristică IntelliSense care vă permite să vizualizați o listă de cmdlet-uri și parametrii acestora, variabilele, utilitățile și multe altele. Fragmentele sunt acceptate, este posibil să extindeți setul de funcții prin diverse suplimente. Fereastra Comenzi este, de asemenea, foarte utilă. În el puteți compune comenzi în modul vizual: selectați un modul, găsiți cmdlet-ul dorit și setați parametrii necesari acestuia. Comanda rezultată poate fi copiată în consolă sau executată imediat. În general, un fel de designer pentru admin. Și, desigur, există evidențierea sintaxei, un depanator și multe altele.

Cu toate acestea, PowerShell ISE are și concurenți demni. Unul din ei - .

PowerGUI este o extensie vizuală a PowerShell. Vă este ușor să vă construiți propriile scripturi înainte de a selecta cmdleturile de care aveți nevoie. Luați ceea ce aveți nevoie pentru a rezolva problema și glisați și plasați părți ale codului până când obțineți un script. Una dintre principalele caracteristici ale PowerGUI este Power Pack-urile, scripturi gata făcute publicate de comunitatea de utilizatori și puse la dispoziție pentru acces gratuit. Există comenzi simple precum adăugarea de utilizatori și unele complexe - de exemplu, gestionarea comutatoarelor și a mașinilor virtuale. Toate pot fi completate si modificate cu usurinta in functie de necesitati.


Companiile Sapien sunt un mediu mai avansat, care este conceput pentru dezvoltarea comună a unui proiect o cantitate mare participanții. Dacă ați lucrat vreodată cu Visual Studio, cred că veți observa asemănările. Unele caracteristici utile ale PowerShell Studio includ panoul Panglică, suport pentru depanare la distanță și funcții de compilare care vă permit să includeți scripturi în fișierele executabile. Există sprijin versiuni diferite PowerShell.


Merită menționat și Script Browser pentru Windows PowerShell ISE. Acesta nu este un mediu de dezvoltare, ci un instrument foarte interesant dezvoltat de Microsoft. Script Browser oferă acces la o bază de date de scripturi gata făcute care pot fi folosite ca mostre pentru scrierea propriului cod. Acest lucru poate analiza și codul pe care îl scrieți și vă poate sugera cum să-l îmbunătățiți.


Câteva trucuri utile

După ce ați dat seama de editor, puteți începe să scrieți cod. PowerShell nu este un limbaj complicat și cred că o vei înțelege rapid. Comenzile de aici se numesc cmdlet-uri și fiecare dintre ele constă din două părți. Mai întâi vine acțiunea, de exemplu Get, Set, Add, Invoke, Remove. Apoi indică spre ce vizează acțiunea: Service, VM, AzureAccount, DHCPServerSetting. Fiecare parte este separată de cealaltă printr-o cratimă. Se dovedește, de exemplu, obține-proces. Aceasta, apropo, comandă utilă, care afișează o listă de procese. Să zicem, dacă scrii

obține - procesează BadTh *

vom vedea ceva de genul asta:

Se ocupă de NPM (K ) PM (K ) WS (K ) VM (M ) CPU (e) Id ProcessName

------------------------

28 4 - 210844 - 201128 - 163 25,67 2792 BadThread

Acum puteți încheia procesul de înghețare:

Îl puteți vizualiza recursiv, deși cu o logică puțin mai complexă:

De asemenea, puteți face

Apropo, pentru fiecare câmp din fereastra de opțiuni cont sau un computer pe care îl puteți accesa și citi datele. În acest fel puteți face secțiuni întregi. Iată, de exemplu, o interogare bazată pe date despre numere de telefon:

Obține - AdUser - Filtrare * - Proprietăți OfficePhone | FT OfficePhone, UserPrincipalName

PowerShell vs bat

Uneori, o problemă poate fi rezolvată fie folosind metoda de modă veche, fie folosind Ajutor PowerShell. Recomand să nu fii leneș și să folosești PS, fie și pur și simplu pentru că astfel îl vei învăța mai repede și îl vei putea folosi în situații mai complexe. În plus, îi vei aprecia treptat sintaxa - mai elegantă și mai consistentă. Iată câteva exemple despre cum au fost făcute lucrurile înainte și cum pot fi făcute folosind PowerShell.

Următoarea linie de comandă va reporni computerul cu o întârziere de zece secunde:

Iată cum puteți reporni serviciul dnscache (sau oricare altul) prin bat:

sc stop dnscache

sc începe dnscache

Rularea unui program din PowerShell

Sarcina de a rula orice fișier executabil (program sau utilitar de linie de comandă) din PowerShell apare destul de des. PowerShell oferă mai multe opțiuni pentru aceasta. în diverse moduri, pe care o vom lua în considerare mai târziu în acest articol. Să începem cu cel mai simplu...

Lansare directă

Cel mai simplu mod de a rula un executabil în PowerShell este să navigați la directorul cu fișierul și să îl rulați direct. De exemplu, să luăm un program simplu care afișează un salut și să-l executăm cu comanda:

Set-Location ″C:\Program Files″
.\Bună ziua.exe

Vă rugăm să rețineți că, chiar dacă vă aflați în directorul dorit, trebuie să specificați calea relativă către fișierul executabil. Excepție fac fișierele din directoarele enumerate în variabilă de mediu(cale). De exemplu, diverse programe și utilitare încorporate (notepad, calc, ping etc.) aflate în directorul Windows\System32 pot fi lansate fără a specifica calea.

Operator &

Dacă trebuie să specificați calea completă către fișierul executabil, puteți utiliza operatorul & (operator de apel). Vă permite să executați un șir de text între ghilimele ca o singură comandă. De exemplu:

& ′C:\Program Files\Hello.exe′

Deoarece operatorul & nu analizează comanda transmisă, nu poate interpreta parametrii acesteia. Prin urmare, parametrii/argumentele suplimentari sunt de asemenea trecuți ca text, între ghilimele. Ca exemplu, să luăm programul anterior și să-l modificăm ușor, astfel încât să accepte textul dorit ca argument:

& ′C:\Program Files\Hello.exe′ ′Salut, lume′

Dacă doriți, puteți specifica mai multe argumente separate prin virgule:

& ′C:\Program Files\Hello.exe′ ′Bună ziua,′, ′ lume′

Pentru comoditate, comanda și argumentele pot fi plasate în variabile:

$exe = ′C:\Program Files\Hello.exe′
$arg1 = „Bună ziua”
$arg2 = „lume”
& $exe $arg1 $arg2

Ei bine, dacă există o mulțime de argumente, atunci acestea pot fi combinate folosind următoarea construcție:

$exe = ′C:\Program Files\Hello.exe′
$allargs = @(′Bună,′,′lume′)
& $exe $allargs

Invocare-Expresie

Cmdletul Invoke-Expression funcționează aproape în același mod ca și operatorul & - ia un șir de text și îl execută ca o comandă. De exemplu:

Invoke-Expression -Comandă ′C:\Windows\Hello.exe′

Cu toate acestea, are un mare dezavantaj, și anume incapacitatea de a lucra cu spații. De exemplu, următoarea comandă va provoca o eroare:

Invoke-Expression -Comandă ′C:\Program Files\Hello.exe′

Această caracteristică face utilizarea cmdlet-ului extrem de incomod. Deși, dacă este necesar, astfel de erori pot fi evitate folosind ghilimele suplimentare, de exemplu ca aceasta:

Invoke-Expression -Comandă ″C:\′Fișiere de program’\Hello.exe″

Start-Proces

Pornește cmdletul Start-Process fișierul specificat ca proces folosind metoda start Clasa .NET Proces. De exemplu:

Start-Process -FilePath ′C:\Program Files\Hello.exe′

În mod implicit, procesul rulează într-o fereastră separată, care se închide când procesul este finalizat. Puteți modifica acest comportament folosind parametrii, astfel încât următoarea comandă va rula în fereastra curentă:

Start-Process -FilePath ′C:\Program Files\Hello.exe′ -NoNewWindow -Wait

Start-Process vă permite, de asemenea, să transmiteți argumente suplimentare procesului:

Start-Process -FilePath ′C:\Program Files\Hello.exe′ -ArgumentList ′Hello, world′ -NoNewWindow -Wait

În mod implicit, cmdletul nu returnează nimic, dar puteți utiliza parametrul -PassThru pentru a-l forța să returneze un obiect de proces. Este foarte convenabil să plasați acest obiect într-o variabilă:

$process = Start-Process -FilePath ′C:\Program Files\Hello.exe′ -Wait -PassThru

din care puteți afla apoi multe lucruri utile, cum ar fi starea:

$process.HasExited

$process.ExitTime

sau cod de execuție:

$proces.ExitCode

.NET

În principiu, clasa .NET Process poate fi utilizată direct, fără cmdletul Start-Process. De exemplu, puteți începe procesul cu comanda:

::Start(′C:\Program Files\Hello.exe′)

Această metodă este destul de incomodă și greoaie (după părerea mea), dar puțin mai flexibilă în utilizare. De exemplu, să rulăm programul nostru în fereastra curentă, să îi transmitem argumente și să luăm rezultatul execuției:

$process = New-Object -TypeName System.Diagnostics.Process
$process.StartInfo.FileName = ″C:\Program Files\Hello.exe″
$process.StartInfo.Arguments = ″Bună ziua, lume″
$process.StartInfo.RedirectStandardOutput = $true
$process.StartInfo.UseShellExecute = $false
$process.Start()
$process.WaitForExit()

$process.StandatdOutput.ReadToEnd()

WMI

Puteți face aproape orice cu WMI, inclusiv rularea unui program. Metoda este destul de potrivită pentru asta Crea Clasa WMI Win32_Process. Această metodă începe un proces pe local sau computer la distanță prin RPC. De exemplu, pentru a rula un program calculator local poți folosi această comandă:

()″Win32_Process″).Creare(′C:\Program Files\Hello.exe′)

Și pentru a executa pe un computer la distanță, comanda va arăta astfel:

()″\\remotecomputer\root\cimv2:Win32_Process″).Creează(′C:\Program Files\Hello.exe′)

Alternativ, puteți utiliza cmdletul Invoke-WmiMethod:

Invoke-WmiMethod -Class Win32_Process -Name Create -ArgumentList ″C:\Program Files\Hello.exe″

Sau folosind cmdletul Invoke-CimMethod:

Invoke-CimMethod -ClassName Win32_Process -MethodName Creare -Argumente @(CommandLine=″C:\Program Files\Hello.exe″)

WMI rulează procesul într-o fereastră separată și returnează un obiect care conține ID-ul procesului (ProcessID) și rezultatul execuției (ReturnValue). ReturnValue poate lua următoarele valori:

0 — Finalizare cu succes
2 -Acces interzis
3 — Privilegiul insuficient
8 — Eșec necunoscut
9 — Calea nu a fost găsită
21 - Parametru invalid

Invocare-Comandă

Cmdletul Invoke-Command poate executa comenzi pe un computer local sau la distanță folosind WinRM. De exemplu, pentru a rula programul nostru pe computerul local folosim comanda:

Invoke-Command -ScriptBlock (″C:\′Fișiere de program′\Hello.exe″)

Dacă este necesar, puteți transmite argumente programului:

Invoke-Command -ScriptBlock (C:\′Program Files′\Hello.exe ″Hello,world″)

Vă rugăm să rețineți că Invoke-Command nu este foarte prietenos cu spațiile, așa că pentru a evita erorile trebuie să fiți creativ cu ghilimele. Cu toate acestea, astfel de probleme pot fi evitate, de exemplu, prin combinarea utilizării cmdlet-ului cu operatorul &:

Invoke-Command -ScriptBlock (& ​​′C:\Program Files\Hello.exe′)

Invoke-Command este folosit în principal pentru telecomandă, principalul său avantaj este capacitatea de a rula simultan pe mai multe computere. De exemplu:

Invoke-Command -ScriptBlock (″C:\′Program Files′\Hello.exe″) -ComputerName SRV1,SRV2,SRV3

$scriptblock = (″C:\′Fișiere de program′\Hello.exe″)
$Computer = @(′SRV1′,′SRV2′,′SRV3′)
Invoke-Command -ScriptBlock $scriptblock -ComputerName $Computer

În mod implicit, cmdletul returnează rezultatul execuției programului și, dacă îl executați fundal(parametrul -AsJob), apoi returnează un obiect Job:

Invoke-Command -ScriptBlock (C:\′Fișiere de program′\Hello.exe) -ComputerName localhost -AsJob -JobName Bună ziua

Invocare-Articol

Cmdletul Invoke-Item este conceput pentru a aplica o acțiune implicită unui fișier. Deci, puteți rula fișierul executabil cu comanda:

Invoke-Item -Cale ″C:\Program Files\Hello.exe″

Cu toate acestea, cel mai convenabil este să utilizați Invoke-Item pentru a deschide un anumit tip de fișier. De exemplu, așa deschidem un fișier text:

Invoke-Item -Cale ″C:\Files\test.txt″

Și asta e tot fișiere textîn dosar:

Invoke-Item -Cale ″C:\Files\*.txt″

CMD

Ei bine, în concluzie, o altă modalitate de a lansa un program din PowerShell este utilizarea cmd shell. Metoda este destul de „indirectă”, dar funcționează totuși. Următoarea comandă pornește o nouă instanță a cmd, se execută în ea programul specificat, iese din cmd și returnează rezultatul:

cmd /c ″C:\Program Files\Hello.exe″

PoSh oferă o astfel de abundență de modalități de a lansa un program. Și fiecare dintre ele este bun pentru anumite situații.

Apropo, articolul a fost scris pe baza PowerShell: Deep Dive și cele mai bune practici. Recomand să-l citiți, există încă o mulțime de lucruri interesante acolo.

Există mai multe moduri diferite de a rula scriptul, principalele sunt mai jos:

  1. Lansați PowerShellși rulați scriptul în el (introduceți calea fișierului și numele fișierului, de exemplu, astfel: C:\Scripts\test.ps1, sau mergeți la folderul script cu comanda cd C:\Scripts și rulați-l cu comanda.\test.ps1) Shell-ul poate fi găsit și lansat în mai multe moduri. O modalitate este prin meniul Start. Pentru Windows 7 - trebuie să mergeți la „Toate programele” - „Accesorii” - „Windows PowerShell” și să lansați shell-ul „Windows PowerShell”. Pentru Windows 10 - trebuie să găsiți grupul cu litera „W” și în el veți găsi „Windows PowerShell”.
  2. Lansați „Windows PowerShell ISE” este un program - un mediu de dezvoltare care vă permite să editați și să depanați scripturi PowerShell, care este, de asemenea, disponibil implicit împreună cu PowerShell însuși. După ce l-ați lansat, trebuie doar să faceți clic pe butonul „Deschidere” sau să accesați meniul Fișier - Deschidere și să selectați scriptul dorit, apoi apăsați pe F5 sau pe butonul „Run Script”. Puteți găsi Windows PowerShell ISE în același loc cu shell-ul PowerShell - în meniul Start .
  3. Lansați linia de comandă standard si scrie in el:
    Powershell -fișier<имя_скрипта> (exemplu: powershell -file myscript.ps1)

Dacă nu ați mai rulat scripturi PowerShell înainte, probabil veți primi următorul mesaj: Nu se poate descărca fișierul<имя_скрипта>, deoarece execuția de script este interzisă pentru acest sistem. Tastați „get-help about_signing” pentru mai multe informații. Acest lucru se datorează faptului că din motive de securitate și pentru a preveni executarea accidentală cod rău intenționat, toate scripturile trebuie să fie semnate digital.

Cum se permite executarea unui script PowerShell nesemnat?

1. În PowerShell, înainte de a rula scriptul, rulați comanda pentru a permite executarea de scripturi nesemnate pentru sesiunea curentă de shell:

Set-ExecutionPolicy RemoteSigned -Scope Process

2. La pornire din linia de comandă standard utilizați parametrul -executionpolicy, adică rulați scriptul astfel:

<имя_скрипта>

Ambele metode stabilesc politica doar pentru sesiunea curentă, în timp ce politica de securitate pentru executarea scripturilor PowerShell scrise în registry nu va fi modificată și va rămâne aceeași. Dacă doriți să schimbați politica de securitate a execuției scripturilor la „permanentă”, atunci utilizați această metodă:

3. Permite lansarea pentru totdeauna: Lansați PowerShell ca administrator, apoi executați comanda:

Set-ExecutionPolicy RemoteSigned

Notă: Dacă scriptul a fost descărcat de pe Internet, atunci pentru a evita o solicitare de confirmare a lansării, trebuie să utilizați Bypass în loc de RemoteSigned - oprire completă orice cereri și avertismente.

Cum să rulezi un script PowerShell în fundal?

Pentru a face acest lucru, trebuie doar să utilizați parametrul de lansare -WindowStyle, care poate lua următoarele valori: Normal, Minimizat, Maximizat și Ascuns. Astfel, pentru a rula un script nesemnat în fundal, trebuie să rulați comanda:

powershell -executionpolicy RemoteSigned -WindowStyle Hidden -fișier<имя_скрипта>

De asemenea, puteți adăuga -NonInteractive dacă doriți, astfel încât scriptul să nu pună întrebări. Astfel, scriptul va fi executat neobservat de utilizator. Aveți grijă când utilizați această metodă.

Rularea unui script PowerShell cu parametri

Lansarea efectivă ar trebui făcută ca și cum ați lansa un program obișnuit sau un fișier bat cu parametri. De exemplu, pentru a rula un script cu parametri din linia de comandă, puteți scrie următoarea comandă:

powershell -executionpolicy RemoteSigned -fișier<имя_скрипта>param1 param2 "un alt parametru de text"

În scriptul însuși puteți obține acești parametri astfel:

Param ($var1, $var2, $var3) echo $var1, $var2, $var3

În PowerShell ISE, puteți rula un script cu parametri în același mod folosind panoul de comandă.

Cum să rulați un script PowerShell folosind o comandă rapidă?

Această sarcină poate fi îndeplinită în două moduri:

  1. Creați un fișier bat/cmd în care să scrieți o comandă pentru a rula scriptul (ați citit parametrii de mai sus)
  2. Creați o comandă rapidă către PowerShell, care poate fi găsită în folderul c:\Windows\System32\WindowsPowerShell\v<версия>\ și în proprietățile comenzii rapide din câmpul „Obiect”, adăugați parametrii necesari.

Astfel, de exemplu, pentru a rula un script powershell atunci când utilizatorul se conectează, puteți pur și simplu să creați o comandă rapidă așa cum este descris la punctul 2 și să o plasați la pornire. De asemenea, crearea unei comenzi rapide folosind una dintre metodele de mai sus vă va permite să rulați cu ușurință scriptul ca administrator sau ca orice alt utilizator ca program obișnuit.

Limbajul de scripting PowerShell - destul de Unealtă puternică pentru a rezolva diverse probleme, dar poate fi folosit nu numai pentru lucruri bune, ci și pentru rău, așa că folosește-l cu înțelepciune;)

Salutare tuturor, astăzi vreau să vă spun cum să rulați un script PowerShell în Windows. Imaginați-vă o situație: ați scris un script care simplifică foarte mult afișarea informațiilor în Active Directory, deschideți snap-in-ul Powershell, introduceți calea către scriptul dvs., apăsați enter și obțineți o eroare.

Nu se poate descărca fișierul<путь к вашему файлу>, deoarece execuția de script este interzisă pentru acest sistem. Tastați „get-help about_signing” pentru mai multe informații.

Să vedem cum se rezolvă.

PowerShell are o serie de moduri de execuție care determină ce tip de cod este permis să ruleze. Toate acestea sunt controlate de o cheie de registry care se află în HKLM. Sunt 4 mod diferit executii:

Limitat(Restricționat): politica de execuție implicită nu permite rularea scripturilor și permite rularea doar comenzilor interactive.

Toate semnate(Toate semnate): Permite rularea tuturor scripturilor. Adevărat, toate scripturile și fișierele de configurare trebuie să fie semnate de un editor în care aveți încredere; Acest mod vă expune riscului de a rula scripturi semnate (dar rău intenționate) după ce primiți confirmarea încrederii în editor.

Șters semnat(Semnat de la distanță): scripturile locale funcționează fără semnătură. Toate scripturile descărcate trebuie să fie semnate digital.

Nelimitat(Nerestricționat): Toate scripturile și fișierele de configurare primite de la aplicațiile de comunicare, cum ar fi Microsoft Outlook, Internet Explorer, Outlook Express și Windows Messenger funcționează după ce confirmați că înțelegeți că fișierul provine de pe Internet; nici unul semnături digitale nu este necesar; Acest mod vă expune riscului de a rula scripturi rău intenționate nesemnate.

În mod implicit, PowerShell utilizează modul restricționat. În acest mod, PowerShell funcționează doar ca un shell interactiv. Nu permite rularea scripturilor și încarcă doar fișierele de configurare care sunt semnate de un editor în care aveți încredere.

Permiteți rularea scripturilor powershell

Pentru a rula scripturi pe care le creați singur, trebuie să permiteți rularea scripturilor nesigure folosind comanda Set-ExecutionPolicy semnat la distanțăși confirmare (Atenție!!! Pentru a rula această comandă, trebuie să rulați PowerShell cu drepturi de administrator). După aceasta, puteți rula din nou scriptul.

Când vi se cere, apăsați Y pentru a permite executarea scriptului. După aceste manipulări, veți putea rula scriptul.

PowerShell are o serie de moduri de execuție care determină ce tip de cod este permis să ruleze. Toate acestea sunt controlate de o cheie de registry care se află în HKLM. Există 4 moduri de execuție diferite:

Limitat(Restricționat): politica de execuție implicită nu permite rularea scripturilor și permite rularea doar comenzilor interactive.

Toate semnate(Toate semnate): Permite rularea tuturor scripturilor. Adevărat, toate scripturile și fișierele de configurare trebuie să fie semnate de un editor în care aveți încredere; Acest mod vă expune riscului de a rula scripturi semnate (dar rău intenționate) după ce primiți confirmarea încrederii în editor.

Șters semnat(Semnat de la distanță): scripturile locale funcționează fără semnătură. Toate scripturile descărcate trebuie să fie semnate digital.

Nelimitat(Nerestricționat): Toate scripturile și fișierele de configurare primite de la aplicații de comunicare precum Microsoft Outlook, Internet Explorer, Outlook Express și Windows Messenger funcționează după ce ați confirmat că înțelegeți că fișierul provine de pe Internet; nu sunt necesare semnături digitale; Acest mod vă expune riscului de a rula scripturi rău intenționate nesemnate.

În mod implicit, PowerShell utilizează modul restricționat. În acest mod, PowerShell funcționează doar ca un shell interactiv. Nu permite rularea scripturilor și încarcă doar fișierele de configurare care sunt semnate de un editor în care aveți încredere.

Dacă primiți o eroare roșie enervantă, în cele mai multe cazuri este pentru că încercați să rulați un script nesemnat. Cel mai într-un mod sigur Soluția la această problemă este să schimbați politica de execuție la nelimitat, să rulați scriptul și apoi să reveniți la politica limitată.

Pentru a schimba politica de execuție la nerestricționat, executați următoarea comandă în PowerShell administrativ:

Set-ExecutionPolicy Unrestricted

Veți vedea o cerere de confirmare. Apasa Enter.

Acum puteți rula scriptul descărcat. Cu toate acestea, vă expuneți un risc serios, așa că atunci când scriptul se termină de rulat, asigurați-vă că readuceți politica de execuție în modul restricționat. Puteți face acest lucru folosind următoarea comandă:

Set-ExecutionPolicy restricționat

Încă o dată veți vedea o cerere de confirmare. Apasa Enter.

Asta e tot! Multă baftă!

Acțiune