Firmare digitalmente gli script in Windows PowerShell
Quando si usano script di Windows PowerShell nell'ambiente di produzione, è opportuno implementare un processo di approvazione per verificare che tali script siano stati testati. La complessità del processo di approvazione dipenderà dalle dimensioni dell'organizzazione e dal livello di burocrazia, ma è fondamentale che sia presente.
Un modo per formalizzare il processo di approvazione per gli script usati in un ambiente di produzione consiste nel firmare digitalmente gli script e usare i criteri di esecuzione dello script AllSigned . L'implementazione di questo criterio prevede che qualsiasi script modificato debba essere aggiornato con una nuova firma digitale. Questo impedisce agli amministratori o ad altri dipendenti di apportare modifiche casuali agli script. Ad esempio, se l'organizzazione dispone di un set di script approvati per la gestione degli utenti di Active Directory Domain Services (AD DS), questa configurazione impedirà al personale del supporto tecnico di modificare gli script, di proposito o accidentalmente.
Per aggiungere una firma digitale a uno script, è necessario disporre di un certificato di firma del codice considerato attendibile da tutti i computer che eseguiranno lo script. È possibile ottenere un certificato di firma del codice attendibile da un'autorità di certificazione pubblica oppure da un'autorità di certificazione interna considerata attendibile dai computer.
Per aggiungere una firma digitale, usare il cmdlet Set-AuthenticodeSignature , come illustrato nel codice seguente:
$cert = Get-ChildItem -Path "Cert:\CurrentUser\My" -CodeSigningCert
Set-AuthenticodeSignature -FilePath "C:\Scripts\MyScript.ps1" -Certificate $cert