- 11/30/2017
- 7 minuti per leggere
-
- S
- s
- x
- q
- Descrizione breve
- Descrizione lunga
- I file di profilo
- La variabile $PROFILE
- Come creare un profilo
- Come modificare un profilo
- Come scegliere un profilo
- Come usare un profilo
- Come avviare un profilo
- Aggiungi comandi che rendono facile aprire il tuo profilo
- Aggiungi una funzione che elenca gli alias per qualsiasi cmdlet
- Personalizza la tua console
- Aggiungi un prompt PowerShell personalizzato
- Il parametro NoProfile
- Profili e politica di esecuzione
- Profili e sessioni remote
- Vedi anche
Descrizione breve
Descrive come creare e usare un profilo PowerShell.
Descrizione lunga
Puoi creare un profilo PowerShell per personalizzare il tuo ambiente e per aggiungere elementi specifici della sessione ad ogni sessione PowerShell che avvii.
Un profilo PowerShell è uno script che viene eseguito quando PowerShell si avvia. Puoi usare il profilo come uno script di accesso per personalizzare l’ambiente. Puoi aggiungere comandi, alias, funzioni, variabili, snap-in, moduli e PowerShelldrive. Puoi anche aggiungere altri elementi specifici della sessione al tuo profilo in modo che siano disponibili in ogni sessione senza doverli importare o ricreare.
PowerShell supporta diversi profili per utenti e programmi host. Tuttavia, non crea i profili per te. Questo argomento descrive i profili e come creare e mantenere i profili sul tuo computer.
Spiega come usare il parametro NoProfile della console PowerShell (PowerShell.exe) per avviare PowerShell senza profili. E spiega l’effetto della politica di esecuzione di PowerShell sui profili.
I file di profilo
PowerShell supporta diversi file di profilo. Inoltre, i programmi host PowerShell possono supportare i propri profili specifici dell’host.
Per esempio, la console PowerShell supporta i seguenti file di profilo di base. I profili sono elencati in ordine di precedenza. Il primo profilo ha la precedenza più alta.
Descrizione | Percorso |
---|---|
Tutti gli utenti, tutti gli host | $PSHOME\Profile.ps1 |
Tutti gli utenti, Host corrente | $PSHOME\Microsoft.PowerShell_profile.ps1 |
Utente corrente, tutti gli host | $Home\Documents\PowerShell\Profile.ps1 |
Utente corrente, Host corrente | $Home\Documents\PowerShell\ Microsoft.PowerShell_profile.ps1 |
I percorsi del profilo includono le seguenti variabili:
- La variabile
$PSHOME
, che memorizza la directory di installazione di PowerShell - La variabile
$Home
, che memorizza la home directory dell’utente corrente
Inoltre, altri programmi che ospitano PowerShell possono supportare i propri profili. Per esempio, Visual Studio Code supporta i seguenti profili specifici dell’host.
Descrizione | Path |
---|---|
Tutti gli utenti, Host corrente | $PSHOME\Microsoft.VSCode_profile.ps1 |
Utente corrente, Host corrente | $Home\Documents\PowerShell Microsoft.VSCode_profile.ps1 |
Nella guida di PowerShell, il profilo “CurrentUser, Current Host” è il profilo più spesso indicato come “il tuo profilo PowerShell”.
La variabile $PROFILE
La variabile automatica $PROFILE
memorizza i percorsi dei profili PowerShell che sono disponibili nella sessione corrente.
Per visualizzare un percorso di profilo, visualizza il valore della variabile $PROFILE
. Puoi anche usare la variabile $PROFILE
in un comando per rappresentare un percorso.
La variabile $PROFILE
memorizza il percorso del profilo “Current User, Current Host”. Gli altri profili sono salvati nelle proprietà delle note della variabile $PROFILE
.
Per esempio, la variabile $PROFILE
ha i seguenti valori nella console di WindowsPowerShell.
Descrizione | Nome |
---|---|
Utente corrente, Host corrente | $PROFILE |
Utente corrente, Host corrente | $PROFILE.CurrentUserCurrentHost |
Utente corrente, tutti gli host | $PROFILE.CurrentUserAllHosts |
Tutti gli utenti, Host corrente | $PROFILE.AllUsersCurrentHost |
Tutti gli utenti, tutti gli host | $PROFILE.AllUsersAllHosts |
Perché i valori della variabile $PROFILE
cambiano per ogni utente e in ogni applicazione host, assicurati di visualizzare i valori delle variabili di profilo in ogni applicazione host PowerShell che usi.
Per vedere i valori correnti della variabile $PROFILE
, digita:
$PROFILE | Get-Member -Type NoteProperty
Puoi usare la variabile $PROFILE
in molti comandi. Per esempio, il seguente comando apre il profilo “Current User, Current Host” in Notepad:
notepad $PROFILE
Il seguente comando determina se è stato creato un profilo “All Users, All Hosts” sul computer locale:
Test-Path -Path $PROFILE.AllUsersAllHosts
Come creare un profilo
Per creare un profilo PowerShell, usa il seguente formato di comando:
if (!(Test-Path -Path <profile-name>)) { New-Item -ItemType File -Path <profile-name> -Force}
Per esempio, per creare un profilo per l’utente corrente nell’applicazione host PowerShell corrente, usa il seguente comando:
if (!(Test-Path -Path $PROFILE)) { New-Item -ItemType File -Path $PROFILE -Force}
In questo comando, la dichiarazione If
ti impedisce di sovrascrivere un profilo esistente. Sostituisci il valore del segnaposto <profile-path> con il percorso del file di profilo che vuoi creare.
Nota
Per creare profili “All Users” in Windows Vista e versioni successive diWindows, avvia PowerShell con l’opzione Run as administrator.
Come modificare un profilo
Puoi aprire qualsiasi profilo PowerShell in un editor di testo, come Notepad.
Per aprire il profilo dell’utente corrente nell’attuale hostapplication PowerShell in Notepad, digita:
notepad $PROFILE
Per aprire altri profili, specifica 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 quindi riavviare PowerShell.
Come scegliere un profilo
Se usi più applicazioni host, metti gli elementi che usi in tutte le applicazioni host nel tuo profilo $PROFILE.CurrentUserAllHosts
. Metti gli elementi che sono specifici per un’applicazione host, come un comando che imposta il colore di sfondo per un’applicazione host, in un profilo che è specifico per quell’applicazione host.
Se sei un amministratore che sta personalizzando PowerShell per molti utenti, segui queste linee guida:
- Memorizza gli elementi comuni nel profilo
$PROFILE.AllUsersAllHosts
- Memorizza gli elementi che sono specifici per un’applicazione host in
$PROFILE.AllUsersCurrentHost
profili che sono specifici per l’applicazione host - Memorizza gli elementi per utenti particolari nei profili specifici dell’utente
Assicurati di controllare la documentazione dell’applicazione host per qualsiasi implementazione speciale dei profili PowerShell.
Come usare un profilo
Molti degli elementi che crei in PowerShell e la maggior parte dei comandi che esegui hanno effetto solo sulla sessione corrente. Quando termini la sessione, gli elementi vengono cancellati.
I comandi e gli elementi specifici della sessione includono variabili, variabili di preferenza, alias, funzioni, comandi (eccetto Set-ExecutionPolicy) e moduli PowerShell che aggiungi alla sessione.
Per salvare questi elementi e renderli disponibili in tutte le sessioni future, aggiungili a un profilo PowerShell.
Un altro uso comune dei profili è quello di salvare funzioni, alias e variabili usate frequentemente. Quando salvi gli elementi in un profilo, puoi usarli in qualsiasi sessione applicabile senza ricrearli.
Come avviare un profilo
Quando apri il file del profilo, è vuoto. Tuttavia, puoi riempirlo con le variabili, gli alias e i comandi che usi frequentemente.
Qui ci sono alcuni suggerimenti per iniziare.
Aggiungi comandi che rendono facile aprire il tuo profilo
Questo è particolarmente utile se usi un profilo diverso dal profilo “Utente corrente, Host corrente”. Per esempio, aggiungi il seguente comando:
function Pro {notepad $PROFILE.CurrentUserAllHosts}
Aggiungi una funzione che elenca gli alias per qualsiasi cmdlet
function Get-CmdletAlias ($cmdletname) { Get-Alias | Where-Object -FilterScript {$_.Definition -like "$cmdletname"} | Format-Table -Property Definition, Name -AutoSize}
Personalizza la tua console
function Color-Console { $Host.ui.rawui.backgroundcolor = "white" $Host.ui.rawui.foregroundcolor = "black" $hosttime = (Get-ChildItem -Path $PSHOME\PowerShell.exe).CreationTime $hostversion="$($Host.Version.Major)`.$($Host.Version.Minor)" $Host.UI.RawUI.WindowTitle = "PowerShell $hostversion ($hosttime)" Clear-Host}Color-Console
Aggiungi un prompt PowerShell personalizzato
function Prompt{$env:COMPUTERNAME + "\" + (Get-Location) + "> "}
Per maggiori informazioni sul prompt PowerShell, vediabout_Prompts.
Il parametro NoProfile
Per avviare PowerShell senza profili, usa il parametro NoProfile diPowerShell.exe, il programma che avvia PowerShell.
Per iniziare, apri un programma che può avviare PowerShell, come Cmd.exe o PowerShell stesso. Puoi anche usare la finestra di dialogo Esegui in Windows.
Tipo:
PowerShell -NoProfile
Per un elenco completo dei parametri di PowerShell.exe, digita:
PowerShell -?
Profili e politica di esecuzione
La politica di esecuzione di PowerShell determina, in parte, se puoi eseguire script e caricare file di configurazione, inclusi i profili. La politica di esecuzione limitata è quella predefinita. Impedisce l’esecuzione di tutti gli script, inclusi i profili. Se usate la politica “Restricted”, il profilo non viene eseguito e il suo contenuto non viene applicato.
A Set-ExecutionPolicy
comando imposta e cambia la vostra politica di esecuzione. È uno dei pochi comandi che si applica in tutte le sessioni di PowerShell perché il valore viene salvato nel registro. Non devi impostarlo quando apri la console, e non devi memorizzare un comando Set-ExecutionPolicy
nel tuo profilo.
Profili e sessioni remote
I profili PowerShell non vengono eseguiti automaticamente nelle sessioni remote, quindi i comandi che i profili aggiungono non sono presenti nella sessione remota. Inoltre, la variabile automatica $PROFILE
non è popolata nelle sessioni remote.
Per eseguire un profilo in una sessione, usare l’Invoke-Commandcmdlet.
Ad esempio, il seguente comando esegue il profilo “Current user, Current Host” dal computer locale nella sessione in $s
.
Invoke-Command -Session $s -FilePath $PROFILE
Il seguente comando esegue il profilo “Current user, Current Host” dal computer remoto nella sessione in $s
. Poiché la variabile $PROFILE
non è popolata, il comando usa il percorso esplicito del profilo. Usiamo l’operatore dotsourcing in modo che il profilo venga eseguito nell’ambito corrente del computer remoto e non nel proprio ambito.
Invoke-Command -Session $s -ScriptBlock { . "$HOME\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"}
Dopo aver eseguito questo comando, i comandi che il profilo aggiunge alla sessione sono disponibili in $s
.
Vedi anche
sulle variabili automatiche
sulle funzioni
sui prompt
sulle politiche di esecuzione
sulle firme
sul remoto
sugli ambiti
sugli ambiti
Set-ExecutionPolicy