PowerShell nu este o eroare semnată digital declanșează adesea în timp ce utilizatorii rulează scripturi PowerShell. În general, se întâmplă din cauza valorilor stabilite pentru politica de execuție PowerShell.
ca parte a serviciilor noastre de gestionare a serverului, ne ajutăm clienții să remedieze în mod regulat erorile legate de windows.
să discutăm astăzi cauzele posibile și remedierile pentru această eroare.
ce este PowerShell nu este semnat digital eroare?
în timp ce încearcă să ruleze un script PowerShell care nu a fost semnat de trusted Publisher, utilizatorii văd adesea o eroare de securitate „PowerShell nu este semnat digital” așa cum se arată mai jos:
această eroare de securitate poate apărea atunci când avem o politică de execuție PowerShell AllSigned sau RemoteSigned.
acum, să discutăm acum câteva metode posibile pentru a remedia această eroare.
cum se remediază PowerShell nu este o eroare semnată digital?
există câteva metode posibile pentru a remedia această eroare. Să aruncăm o privire la fiecare dintre ele unul câte unul.
Verificați și modificați Politica de execuție
primul pas aici este să verificați Politica de execuție. Putem rula cmdlet Get-ExecutionPolicy pentru a obține Politica de execuție. Parametrul listă din cmdletul Get-ExecutionPolicy ne indică politica pentru fiecare domeniu.
PS C:\> Get-ExecutionPolicy -list
odată ce avem o idee despre politicile de execuție, cea mai ușoară, dar nesigură metodă de a scăpa de acest mesaj de eroare este de a schimba ExecutionPolicy la nerestricționat.
Mai departe, putem schimba Politica de execuție folosind cmdletul SetExecutionPolicy. Următoarea comandă setează Politica de execuție fără restricții:
PS C:> Set-ExecutionPolicy unrestricted.
Apăsați Y pentru a confirma modificarea atunci când vi se solicită.
se actualizează apoi modificarea politicii în registru și rămâne în acest fel până când vom schimba din nou
Bypass curent PowerShell sesiune
pentru a schimba temporar Politica de execuție, putem folosi Set-ExecutionPolicy cmdlet cu setarea ByPass.
Set-ExecutionPolicy -Scope Process -ExecutionPolicy ByPass
această comandă simplă de mai sus va seta politica de execuție pentru a ocoli sesiunea curentă PowerShell. Odată ce închidem această sesiune PowerShell, aceasta pierde aceste setări.
valori acceptabile pentru ExecutionPolicy parametru
mai jos este detaliul valorilor acceptabile pentru-ExecutionPolicy parametru:
- restricționat. Nu încarcă fișiere de configurare sau nu execută scripturi. Restricționat este politica de execuție implicită.
- AllSigned. Necesită un editor de încredere pentru a semna toate scripturile și fișierele de configurare, inclusiv scripturile pe care le scriem pe computerul local.
- RemoteSigned. Necesită un editor de încredere pentru a semna toate scripturile și fișierele de configurare descărcate de pe Internet.
- fără restricții. Încarcă toate fișierele de configurare și rulează toate scripturile. Solicită permisiunea dacă rulăm un script nesemnat descărcat de pe Internet.
- Bypass. Nu va bloca nimic și nu există avertismente sau solicitări.
- nedefinit. Elimină Politica de execuție atribuită în prezent din domeniul de aplicare curent. Acest parametru nu va elimina o politică de execuție setată într-un domeniu de politică de grup.
domeniul de aplicare implicit pentru comanda Set-ExecutionPolicy este LocalMachine. De asemenea, putem specifica domeniul de aplicare al politicii prin adăugarea parametrului-domeniul de aplicare. De exemplu, unele dintre domeniile pe care le putem seta includ:
- Process: Politica de execuție afectează numai procesul PowerShell curent.
- CurrentUser: Politica de execuție afectează numai utilizatorul curent.
- LocalMachine: Politica de execuție afectează toți utilizatorii computerului.
Mai mult, pentru a elimina o politică de execuție dintr-un anumit domeniu, setați Politica de execuție pentru acel domeniu la nedefinit.
Deblocați fișierul descărcat
pentru politica RemoteSignedExecution, semnați toate scripturile și fișierele de configurare descărcate de pe Internet sau din e-mailuri de către un editor de încredere.
dacă avem încredere că conținutul scriptului este sigur, atunci îl putem debloca pentru a rula în sesiune folosind cmdletul Deblocare-fișier:
PS C:> Unblock-File -Path C:Downloadsscript1.ps1
concluzie
pe scurt, PowerShell nu este semnat digital eroare de securitate poate apărea atunci când politica de execuție PowerShell este setată la AllSigned sau RemoteSigned. Astăzi, am văzut cum inginerii noștri de asistență remediază această eroare.