Esecuzione di script in Powershell
In questo articolo vedremo come eseguire uno script in Powershell.
Eseguendo uno script in un file con estensione ps1, potrebbe apparire questo errore:

Significa che per eseguire lo script, dobbiamo creare un certificato digitale. Ma come crearlo?
Ve lo spiego in questo articolo.
Apriamo Powershell come Amministratore ed eseguiamo queste righe:
$NomeCertificato = “Certificato autofirmato per firma script”
$NomeFilePfx = “.\CertificatoAutofirmato-“+(Get-Date -UFormat “%Y%m%d”)+”-“+(Get-Date -UFormat “%H%M%S”)+”.pfx”
$LaMiaPassword = Read-Host “Inserire una password per il certificato autofirmato” -AsSecureString
New-SelfSignedCertificate -subject $NomeCertificato -Type CodeSigning | Export-PfxCertificate -FilePath $NomeFilePfx -password $LaMiaPassword
Write-Output “Creato certificato PFX $NomeCertificato”
Write-Output “Nome file: $NomeFilePfx”
Alla fine otteniamo:

Sulla cartella dove abbiamo eseguito questi comandi troveremo un file nuovo:

Ora possiamo firmare lo script che vogliamo eseguire:
$MioCertificatoPfx = Get-PfxCertificate -FilePath $NomeFilePfx Set-AuthenticodeSignature -PSPath .\CalculateRange.ps1 -Certificate $MioCertificatoPfx

Se ora apriamo il file dello script con un qualunque editor di testo o di codice vediamo che è stato aggiunto il certificato:

Possiamo eseguire lo script anche disabilitando le restrizioni su Poweshell e poi riattivarle, se ci serve solo per testare uno script che stiamo sviluppando.
Come prima cosa verifichiamo le restrizioni che ci sono con:
get-executionpolicy

Tutto firmato. Andiamo a togliere le restrizioni con
Set-ExecutionPolicy -ExecutionPolicy unrestricted
Apparirà questa finestra di conferma:

Clicchiamo su Si e ora riproviamo a eseguire
get-executionpolicy
Notate che ora c’è scritto unrestricted

Eseguiamo il test e debug del nostro script e poi non dimentichiamoci alla fine di rimettere la protezione con:
Set-ExecutionPolicy -ExecutionPolicy allsigned
Apparirà ancora la finestra di prima. Confermiamo.
Verifichiamo infine che con get-executionpolicy l’esecuzione degli script siano ancora allsigned.
In un prossimo articolo eseguiremo qualche script di test su Powershell sul networking o l’amministrazione di Windows.
Rispondi