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