Esecuzione di script in Powershell

Posted on 7 febbraio 2023. Filed under: Senza categoria |

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.

Pubblicità

Make a Comment

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

Liked it here?
Why not try sites on the blogroll...

%d blogger hanno fatto clic su Mi Piace per questo: