Takeaway: Sign PowerShell scripts with a code signing certificate.
Assumptions: We'll assume a code-signing certificate is already installed the Windows certificate root store. If you don't already have a code-signing certificate, obtain one:
- Enroll with the Windows Certificate Authority (CA) server.
- Enroll with a public CA. Best option if you plan to publicly distribute your scripts.
- Generate a self-signed certificate.
Use the code-signing certificate located in the the Windows Certificate Store to sign PowerShell scripts. First, export the certificate from the Certificate Store. Export the certificate as follows:
Start → MMC → Add/Remove Snap-In → Certificates → Personal → Right click on the certificate → Export.
Save the certificate as a PFX file in a directory of your choice (e.g., c:\scripts).
Lastly, use the following PowerShell script to sign the code:
PS C:\scripts> $cert = Get-PfxCertificate C:\scripts\codesigncert.pfx C:\scripts> Set-AuthenticodeSignature -Filepath pruneVSS.ps1 -Cert $cert
Directory: C:\scripts
SignerCertificate Status Path
----------------- ------ ---- 2603FCAA10343AE1DD78AB41D984728D657499D3 Valid pruneVSS.ps1
That's it -the PowerShell script is signed. Time to change the set-execution policy throughout the domain!
No comments:
Post a Comment