MP Blog

Weblog di una piccola società cooperativa

PowerShell

In questo post mostrerò quanto fatto con PowerShell nella fase di configurazione. Come al solito la fonte di ispirazione principale è stata il blog di Scott Hanselman.

Ho installato la versione italiana in un momento di masochismo massimo e ciò mi ha provocato qualche problemino soprattutto nella ricerca su Google degli errori incontrati.

La prima semplice operazione che ho eseguito è stata quella di associare al menu destro del mouse di una cartella il comando “Apri PowerShell qui”. La procedura da seguire si trova qui.

Come seconda cosa, occorre sbloccare l’esecuzione degli scripts. Il sito di riferimento che descrive questa configurazione è il seguente.

Per impostazione predefinita, PowerShell è impostato su Restricted, il che indica semplicemente che gli script non verranno eseguiti mai, per nessuno. Per impostazione predefinita, Windows PowerShell può essere utilizzato solo in modalità interattiva e non per eseguire gli script. È possibile utilizzare il cmdlet Set-ExecutionPolicy per scegliere una delle quattro possibili impostazioni di Criteri di esecuzione:

  • Restricted, l’impostazione predefinita, non consente l’esecuzione di nessuno script.
  • AllSigned esegue soltanto script attendibili (ulteriori informazioni su questo argomento verranno fornite più avanti).
  • RemoteSigned esegue gli script locali senza la necessità che siano attendibili. È necessario, tuttavia, che gli script scaricati da Internet siano attendibili prima di essere eseguiti.
  • Unrestricted consente l’esecuzione di tutti gli script, persino di quelli non attendibili.

AllSigned è l’impostazione minima che dovrebbe essere eseguita in un computer di produzione. RemoteSigned è utile negli ambienti di sviluppo e di test, ma non è necessario per l’utente comune. Invece non c’è alcun bisogno di Unrestricted. Non dovrebbe importare se in alcune versioni future di Windows PowerShell venisse omessa questa impostazione eccessivamente permissiva.

Per apporre una firma agli scripts ho eseguito la procedura indicata qui. La riassumo rapidamente:

  1. Eseguire da PowerShell con permessi da amministratore il comando Set-ExecutionPolicy AllSigned
  2. Creare un Certificato Self-Signed.
  3. Verificare in PowerShell che il certificato sia stato creato correttamente mediante il comando Get-ChildItem cert:\CurrentUser\My -codesign
  4. Cancellare i file temporanei root.pvk e root.cer

A questo punto ho installato i PowerTabs disponibili qui per avere a disposizione l’autocompletamento dei comandi tramite tab. Si tratta di una cartella con un certo numero di scripts che per essere eseguiti vanno firmati. Dal prompt di comando si recupera  un certificato di firma 

$cert = Get-ChildItem –Path cert:\CurrentUser\my –codeSigningCert

e quindi si firmano tutti gli script con estensione .ps1

 Get-Childitem *.ps1 | %{Set-AuthenticodeSignature $_.fullname -cert $cert}

A questo punto eseguiamo lo script PowerTabSetup.ps1 che provvede a creare una cartella Profile se non l’abbiamo e a crearvi un file PowerTabConfig.xml. L’installazione prosegue quindi con la creazione del database Tabcompletion.

Terminata l’installazione occorre firmare lo script Microsoft.PowerShell_profile.ps1 collocato nella cartella profilo dell’utente. Aprendo nuovamente PowerShell avremo il seguente messaggio:

Windows PowerShell
Copyright (C) 2006 Microsoft Corporation. Tutti i diritti riservati.

PowerTab version 0.96 Beta 3b PowerShell TabExpansion library
/\/\o\/\/ 2007 http://thePowerShellGuy.com
PowerTab Tabexpansion additions enabled : True
PS C:\Users\sorrentino>

In questo sito trovate alcuni esempi visivi di quello che è possibile fare con PowerTab. L’effetto è sicuramente fantastico.

Fatto questo andiamo a installare le estensioni di PowerShell disponibili qui. Dopo aver eseguito il setup andiamo subito nella cartella di installazione PowerShell Community Extensions dove occorre firmare gli scripts contenuti nelle cartelle FormatData, Profile, Scripts e TypeData.

Dopo aver firmato lo script profile.ps1 creato nella cartella possiamo finalmente lanciare PowerShell senza errori.

Per il momento è tutto!

Agosto 27, 2007 Pubblicato da sorrentmutie2 | Programmazione, Sistemi, Windows | | Ancora nessun commento.