Archive for febbraio 2023
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.
Leggi l'articolo intero | Make a Comment ( None so far )