ARGOMENTO about_Profiles DESCRIZIONE BREVE Descrive come creare e utilizzare un profilo di Windows PowerShell. DESCRIZIONE DETTAGLIATA È possibile creare un profilo di Windows PowerShell per personalizzare l'ambiente e aggiungere elementi specifici della sessione a ogni sessione di Windows PowerShell che si avvia. Un profilo di Windows PowerShell è uno script che viene eseguito all'avvio di Windows PowerShell. È possibile utilizzare il profilo come script di accesso per personalizzare l'ambiente. È possibile aggiungere comandi, alias, funzioni, variabili, snap-in, moduli e unità di Windows PowerShell. È anche possibile aggiungere altri elementi specifici della sessione al profilo affinché siano disponibili in ogni sessione senza doverli importare o ricreare. Windows PowerShell supporta diversi profili per utenti e programmi host. Tuttavia, non consente di creare automaticamente i profili. In questo argomento vengono descritti i profili e viene illustrato come creare e gestire profili nel computer. Viene descritto come utilizzare il parametro NoProfile della console di Windows PowerShell (PowerShell.exe) per avviare Windows PowerShell senza profili. Viene, inoltre, illustrato l'effetto dei criteri di esecuzione di Windows PowerShell sui profili. FILE DI PROFILO Windows PowerShell supporta diversi file di profilo. Inoltre, i programmi host di Windows PowerShell possono supportare i propri profili specifici dell'host. Ad esempio, la console di Windows PowerShell supporta i file di profilo di base seguenti. I profili sono elencati nell'ordine di precedenza. Il primo profilo ha la precedenza massima. Descrizione Path ----------- ---- Utente corrente, host corrente $Home\Documenti\WindowsPowerShell\Profile.ps1 Utente corrente, tutti gli host $Home\Documenti\Profile.ps1 Tutti gli utenti, host corrente $PsHome\Microsoft.PowerShell_profile.ps1 Tutti gli utenti, tutti gli host $PsHome\Profile.ps1 I percorsi del profilo includono le variabili seguenti: - La variabile $PsHome, in cui viene archiviata la directory di installazione di Windows PowerShell. - La variabile $Home, in cui viene archiviata la home directory dell'utente corrente. Inoltre, altri programmi che ospitano Windows PowerShell possono supportare i propri profili. Ad esempio, Windows PowerShell Integrated Scripting Environment (ISE) supporta i profili specifici dell'host seguenti. Descrizione Path ----------- ----- Utente corrente, host corrente $Home\Documenti\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1 Tutti gli utenti, host corrente $PsHome\Microsoft.PowerShellISE_profile.ps1 Nella Guida di Windows PowerShell, il profilo "Utente corrente, host corrente" è il profilo frequentemente indicato come "profilo di Windows PowerShell". VARIABILE $PROFILE Nella variabile automatica $Profile vengono archiviati i percorsi dei profili di Windows PowerShell disponibili nella sezione corrente. Per visualizzare un percorso di profilo, visualizzare il valore della variabile $Profile. È anche possibile utilizzare la variabile $Profile in un comando per rappresentare un percorso. Nella variabile $Profile viene archiviato il percorso del profilo "Utente corrente, host corrente". Gli altri profili vengono salvati in proprietà note della variabile $profile. Ad esempio, la variabile $Profile presenta i valori seguenti nella console di Windows PowerShell. Name Descrizione ----------- ----------- $Profile Utente corrente, host corrente $Profile.CurrentUserCurrentHost Utente corrente, host corrente $Profile.CurrentUserAllHosts Utente corrente, tutti gli host $Profile.AllUsersCurrentHost Tutti gli utenti, host corrente $Profile.AllUsersAllHosts Tutti gli utenti, tutti gli host Poiché i valori della variabile $Profile cambiano per ogni utente e in ogni applicazione host, assicurarsi di visualizzare i valori delle variabili di profilo in ogni applicazione host di Windows PowerShell che si utilizza. Per visualizzare i valori correnti della variabile $Profile, digitare: $profile | get-member -type noteproperty È possibile utilizzare la variabile $Profile in molti comandi. Ad esempio, mediante il comando seguente viene aperto il profilo "Utente corrente, host corrente" in Blocco note: notepad $profile Il comando seguente determina se viene creato un profilo "Tutti gli utenti, tutti gli host" nel computer locale: test-path $profile.AllUsersAllHosts MODALITÀ DI CREAZIONE DI UN PROFILO Per creare un profilo di Windows PowerShell, utilizzare il formato di comando seguente: if (!(test-path <nome-profilo>)) {new-item -type file -path <nome-profilo> -force} Ad esempio per creare un profilo per l'utente corrente nell'applicazione host di Windows PowerShell corrente, utilizzare il comando seguente: if (!(test-path $profile)) {new-item -type file -path $profile -force} In questo comando, l'istruzione If impedisce di sovrascrivere un segnaposto esistente con il percorso. Sostituire il valore del segnaposto <percorso-profilo> con il percorso del file di profilo che si desidera creare. Nota: per creare i profili "Tutti gli utenti" in Windows Vista e nelle versioni successive di Windows, avviare Windows PowerShell con l'opzione "Esegui come amministratore". MODALITÀ DI MODIFICA DI UN PROFILO È possibile aprire qualsiasi profilo di Windows PowerShell in un editor di testo, quale Blocco note. Per aprire il profilo dell'utente corrente nell'applicazione host di Windows PowerShell corrente in Blocco note, digitare: notepad $profile Per aprire gli altri profili, specificare il nome del profilo. Ad esempio, per aprire il profilo per tutti gli utenti di tutte le applicazioni host, digitare: notepad $profile.AllUsersAllHosts Per applicare le modifiche, salvare il file di profilo e riavviare Windows PowerShell. MODALITÀ DI SCELTA DI UN PROFILO Se si utilizzano più applicazioni host, inserire gli elementi che si utilizzano in tutte le applicazioni host nel profilo $Profile.CurrentUserAllHosts. Inserire gli elementi specifici di un'applicazione host, ad esempio un comando che imposta il colore di sfondo dell'applicazio ne host, in un profilo specifico di tale applicazione host. Se si è amministratori e si intende personalizzare Windows PowerShell per più utenti, attenersi alle istruzioni seguenti: -- Archiviare gli elementi comuni nel profilo $profile.AllUser sAllHosts. -- Archiviare gli elementi specifici di un'applicazione host nei profili $profile.AllUsersCurrentHost specifici di tale applicazione host. -- Archiviare gli elementi relativi ai singoli utenti nei profili specifici degli utenti. Assicurarsi di verificare nella documentazione dell'applicazione host la presenza di eventuali implementazioni speciali di profili di Windows PowerShell. MODALITÀ DI UTILIZZO DI UN PROFILO Molti degli elementi che si creano in Windows PowerShell e la maggior parte dei comandi che si eseguono incidono sono sulla sessione corrente. Quando si termina la sessione, gli elementi vengono eliminati. I comandi e gli elementi specifici della sessione includono variabili, variabili di preferenza, alias, funzioni, comandi (eccetto Set-ExecutionPolicy) e snap-in di Windows PowerShell che si aggiungono alla sessione. Per salvare questi elementi e renderli disponibili in tutte le sessioni future, aggiungerli a un profilo di Windows PowerShell. I profili vengono inoltre comunemente utilizzati per salvare le funzioni, gli alias e le variabili di uso frequente. Quando si salvano gli elementi in un profilo, è possibile utilizzarli in qualsiasi sessione applicabile senza ricrearli. MODALITÀ DI AVVIO DI UN PROFILO Al momento dell'apertura, il file di profilo è vuoto. Tuttavia, è possibile inserirvi variabili, alias e comandi di uso frequente. Di seguito sono riportati alcuni suggerimenti per iniziare. -- Aggiungere comandi che agevolano l'apertura del profilo. Questo è particolarmente utile se si utilizza un profilo diverso da "Utente corrente, host corrente". Ad esempio, aggiungere il comando seguente: function pro {notepad $profile.CurrentUserAllHosts} -- Aggiungere una funzione per aprire la Guida di Windows PowerShell in un file della guida HTML compilato (CHM). function Get-CHM { (invoke-item $env:windir\help\mui\0409\WindowsPowerShellHelp.chm) } Mediante questa funzione viene aperta la versione inglese del file CHM. È tuttavia sostituire il codice della lingua (0409) per aprire le altre versioni del file CHM. -- Aggiungere una funzione per elencare gli alias per qualsiasi cmdlet. function Get-CmdletAlias ($cmdletname) { get-alias | Where {$_.definition -like "*$cmdletname*"} | ft Definition, Name -auto } -- Aggiungere un comando Add-PsSnapin per aggiungere qualsiasi snap-in di Windows PowerShell in uso. -- Personalizzare la console. function Color-Console { $host.ui.rawui.backgroundcolor = "white" $host.ui.rawui.foregroundcolor = "black" $hosttime = (dir $pshome\powershell.exe) .creationtime $Host.UI.RawUI.WindowTitle = "Windows PowerShell $hostversion ($hosttime)" clear-host } Color-console -- Aggiungere un prompt di Windows PowerShell personalizzato che include il nome del computer e il percorso corrente. function prompt { $env:computername + "\" + (get-location) + "> " } Per ulteriori informazioni sul prompt di Windows PowerShell, vedere about_Prompts. PARAMETRO NOPROFILE Per avviare Windows Powershell senza profili, utilizzare il parametro NoProfile di PowerShell.exe, il programma di avvio di Windows PowerShell. Per iniziare, aprire un programma che consente di avviare Windows PowerShell, ad esempio Cmd.exe o Windows PowerShell stesso. È anche possibile utilizzare la finestra di dialogo Esegui di Windows. Digitare: powershell -noprofile Per un elenco completo dei parametri di PowerShell.exe, digitare: powershell -? PROFILI E CRITERI DI ESECUZIONE I criteri di esecuzione di Windows PowerShell determinano, in parte, se è possibile eseguire script e caricare file di configurazione, inclusi i profili. Per impostazione predefinita il criterio di esecuzione è Restricted. Questo criterio impedisce l'esecuzione di tutti gli script, inclusi i profili. Se si utilizza il criterio Restricted, il profilo non viene eseguito e il contenuto relativo non viene applicato. Il comando Set-ExecutionPolicy consente di impostare e modificare il criterio di esecuzione. Si tratta di uno dei pochi comandi che viene applicato in tutte le sezioni di Windows PowerShell poiché il valore viene salvato nel Registro di sistema. Non è necessario impostarlo all'apertura della console e non è necessario archiviare un comando Set-ExecutionPolicy nel profilo. PROFILI E SESSIONI REMOTE I profili di Windows PowerShell non vengono eseguiti automaticamente nelle sessioni remote, pertanto i comandi aggiunti dai profili non sono presenti nella sessione remota. Inoltre, la variabile automatica $profile non viene compilata nelle sessioni remote. Per eseguire un profilo in una sessione, utilizzare il cmdlet Invoke-Command. Ad esempio, mediante il comando seguente viene eseguito il profilo CurrentUserCurrentHost dal computer locale nella sessione in $s. invoke-command -session $s -filepath $profile Mediante il comando seguente viene eseguito il profilo CurrentUserCurrentHost dal computer remoto nella sessione in $s. Poiché la variabile $profile non è compilata, il comando utilizza il percorso esplicito del profilo. invoke-command -session $s {invoke-expression "$home\Documenti\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"} Dopo l'esecuzione di questo comando, i comandi aggiunti dal profilo alla sessione sono disponibili in $s. VEDERE ANCHE about_Automatic_Variables about_Functions about_Prompts about_Execution_Policies about_Signing about_Remote Set-ExecutionPolicy