• 11/30/2017
  • 7 minuti per leggere
    • S
    • s
    • x
    • q

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

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.