Prezența unei semnături digitale dintr-un script sau dintr-un fișier executabil permite utilizatorului să se asigure că fișierul este original și că codul său nu a fost modificat de terți. PowerShell are, de asemenea, o abilitate încorporată de a semna fișierul de scriere * .ps1.
Puteți să semnați scriptul PowerShell utilizând un tip special de certificat CodeSigning. Acest certificat poate fi obținut de la o autoritate externă de certificare comercială, de la o companie internă de certificare sau de la un certificat cu auto-semnare (desigur, aceasta nu este cea mai bună opțiune).
Instalați certificatul în magazinul local de certificate al computerului.
După ce certificatul este primit, vom configura politica de execuție a scriptului PowerShell, permițând executarea numai a scripturilor semnate. Valoarea politicii implicite (Restricted) blochează executarea oricărui script. Pentru a permite ca scripturile semnate să fie difuzate, puteți modifica tipul de politică la AllSigned sau RemoteSigned, diferența dintre acestea fiind că RemoteSigned necesită semnarea numai pentru scripturile primite de pe Internet.
Set-ExecutionPolicy AllSigned -Force
Într-un obiect separat, salvăm certificatul din magazinul local pentru utilizatorul curent:
$ cert = (Obțineți-ChildItem cert: \ CurrentUser \ my-CodeSigningCert) [0]
Apoi vom semna scenariul cu acest certificat:
Setați-AuthenticodeSignature -Certificate $ cert -FilePath C: \ PS \ test_script.ps1
Consiliul. Când creați un certificat cu auto-semnare pentru a semna codul utilizând certificatul New-SelfSignedCertificate. trebuie să specificați tipul certificatului CodeSigning:
New-SelfSignedCertificate -DnsName test1 -Signarea codului de tip
După generarea certificatului, va trebui să fie transferat de la containerul Intermediar la rădăcina de încredere din consola de administrare a magazinului de certificate (certmgr.msc).
Puteți semna acest script cu acest certificat:
Set-AuthenticodeSignature C: \ PS \ test_script.ps1 @ (gc Cert: \ LocalMachine \ My -DnsName test1 - codificare) [0]
După ce scriptul PowerShell este semnat, se adaugă un bloc de semnătura semnătură în fișierul text psc script, înconjurat de linii# SIG # Începeți blocul de semnătură
.
.
# SIG # Blocarea semnăturii
Doriți să rulați software-ul de la acest editor de încredere?
Fișierul C: \ PS \ test_script.ps1 este publicat de CN = test1 și nu are încredere în sistemul dvs. Rulați numai scripturi de la editori de încredere.
Ce se întâmplă dacă schimba codul pentru un script PowerShell semnat? Lansarea sa va fi blocată, indicând faptul că conținutul scriptului a fost modificat.
C: \ PS \ test_script.ps1. Fișierul C: \ PS \ test_script.ps1 nu poate fi încărcat. Conținutul fișierului C: \ PS \ test_script.ps1 ar fi putut fi modificat de către un utilizator sau proces neautorizat, deoarece hash-ul fișierului nu se potrivește cu hash-ul stocat în semnătura digitală. Scriptul nu poate rula pe sistemul specificat.
Astfel, orice modificare a scriptului semnat va necesita re-semnarea acestuia.
PowerShell: Get-ADUser cmdlet pentru informații despre utilizatorii Active Directory
Primiți informații despre fusul orar curent și disponibilitatea KB2998527 pe computerele de domeniu
PowerShell: Get-ADComputer - obține informații despre computerele din Active Directory
Auditarea parolelor de utilizatori în Active Directory
Măsurarea IOPS a subsistemului disc utilizând PowerShell
Rezoluție: 1346 x 733 52 interogări. 0.424 sec 23.36 MB
MAXCACHE: 0,39 MB / 0,00033 sec