- 11/30/2017
- 7 minute de citit
-
- S
- . s
- x
- q
- Descriere succintă
- Descriere lungă
- Filele de profil
- Variabila $PROFILE
- Cum se creează un profil
- Cum se editează un profil
- Cum să alegeți un profil
- Cum se utilizează un profil
- Cum se pornește un profil
- Adaugați comenzi care facilitează deschiderea profilului
- Adaugați o funcție care listează aliasurile pentru orice cmdlet
- Personalizați-vă consola
- Adaugați un prompt PowerShell personalizat
- Parametrul NoProfile
- Profile și politica de execuție
- Profile și sesiuni la distanță
- Vezi și
Descriere succintă
Descrie modul de creare și utilizare a unui profil PowerShell.
Descriere lungă
Puteți crea un profil PowerShell pentru a vă personaliza mediul și pentru a adăuga elemente specifice fiecărei sesiuni PowerShell pe care o porniți.
Un profil PowerShell este un script care se execută la pornirea PowerShell. Puteți utilizaprofilul ca un script de conectare pentru a personaliza mediul. Puteți adăuga comenzi, alias-uri, funcții, variabile, snap-ins, module și drivere PowerShelldrive. De asemenea, puteți adăuga alte elemente specifice sesiunii la profilul dvs. astfel încât acestea să fie disponibile în fiecare sesiune fără a fi nevoie să le importați sau să le recreați.
PowerShell acceptă mai multe profiluri pentru utilizatori și programe gazdă. Cu toate acestea, nu creează profilurile pentru dumneavoastră. Această temă descrie profilurile șidescrie cum să creați și să mențineți profilurile pe calculatorul dumneavoastră.
Explică cum să utilizați parametrul NoProfile al consolei PowerShell(PowerShell.exe) pentru a porni PowerShell fără niciun profil. Și, explicăefectele politicii de execuție PowerShell asupra profilurilor.
Filele de profil
PowerShell acceptă mai multe fișiere de profil. De asemenea, programele gazdă PowerShell pot suporta propriile profiluri specifice gazdei.
De exemplu, consola PowerShell suportă următoarele fișiere de profil de bază. Profilurile sunt enumerate în ordine de precedență. Primulprofil are cea mai mare precedență.
Descriere | Path | |
---|---|---|
Toți utilizatorii, toate gazdele | $PSHOME\Profile.ps1 | |
Toți utilizatorii, gazda curentă | $PSHOME\Microsoft.PowerShell_profile.ps1 | |
Utilizatorul curent, toate gazdele | $Home\Documents\PowerShell\Profile.ps1 | |
Utilizator curent, Gazda curentă | $Home\Documents\PowerShell\ Microsoft.PowerShell_profile.ps1 |
Cursele profilului includ următoarele variabile:
- Variabila
$PSHOME
, care stochează directorul de instalare pentruPowerShell - Variabila
$Home
, care stochează directorul de domiciliu al utilizatorului curent
În plus, alte programe care găzduiesc PowerShell își pot susține propriile profiluri. De exemplu, Visual Studio Code suportă următoarele profiluri specifice gazdei.
Description | Path |
---|---|
Toți utilizatorii, Gazda curentă | $PSHOME\Microsoft.VSCode_profile.ps1 |
Curentul utilizator, Gazda curentă | $Home\Documents\PowerShell\ Microsoft.VSCode_profile.ps1 |
În ajutorul PowerShell, profilul „CurrentUser, Current Host” este profilul cel mai des denumit „profilul dumneavoastră PowerShell”.
Variabila $PROFILE
Variabila automată $PROFILE
stochează căile de acces la profilurile PowerShellcare sunt disponibile în sesiunea curentă.
Pentru a vizualiza calea unui profil, afișați valoarea variabilei $PROFILE
. De asemenea, puteți utiliza variabila $PROFILE
într-o comandă pentru a reprezenta o cale.
Variabila $PROFILE
stochează calea către profilul „Current User, Current Host”. Celelalte profiluri sunt salvate în proprietățile de notă ale variabilei $PROFILE
.
De exemplu, variabila $PROFILE
are următoarele valori în consola WindowsPowerShell.
Description | Name |
---|---|
Current User, Current Host | $PROFILE |
Current User, Current Host | $PROFILE.CurrentUserCurrentHost |
Current User, All Hosts | $PROFILE.CurrentUserAllHosts |
All Users, Current Host | $PROFILE.AllUsersCurrentHost |
All Users, All Hosts | $PROFILE.AllUsersAllHosts |
Pentru că valorile variabilei $PROFILE
se schimbă pentru fiecare utilizator și în fiecare aplicație gazdă, asigurați-vă că afișați valorile variabilelor de profilîn fiecare aplicație gazdă PowerShell pe care o utilizați.
Pentru a vedea valorile curente ale variabilei $PROFILE
, tastați:
$PROFILE | Get-Member -Type NoteProperty
Puteți utiliza variabila $PROFILE
în multe comenzi. De exemplu, următoarea comandă deschide profilul „Current User, Current Host” în Notepad:
notepad $PROFILE
Comanda următoare determină dacă un profil „All Users, All Hosts” a fost creat pe calculatorul local:
Test-Path -Path $PROFILE.AllUsersAllHosts
Cum se creează un profil
Pentru a crea un profil PowerShell, utilizați următorul format de comandă:
if (!(Test-Path -Path <profile-name>)) { New-Item -ItemType File -Path <profile-name> -Force}
De exemplu, pentru a crea un profil pentru utilizatorul curent în aplicația gazdăPowerShell curentă, utilizați următoarea comandă:
if (!(Test-Path -Path $PROFILE)) { New-Item -ItemType File -Path $PROFILE -Force}
În această comandă, instrucțiunea If
vă împiedică să suprascrieți un profil existent. Înlocuiți valoarea marcatorului de poziție <profile-path> cu calea către fișierul de profil pe care doriți să îl creați.
Nota
Pentru a crea profiluri „All Users” în Windows Vista și în versiunile ulterioare deWindows, porniți PowerShell cu opțiunea Run as administrator.
Cum se editează un profil
Puteți deschide orice profil PowerShell într-un editor de text, cum ar fi Notepad.
Pentru a deschide profilul utilizatorului curent în aplicația gazdă PowerShell curentă în Notepad, tastați:
notepad $PROFILE
Pentru a deschide alte profiluri, specificați numele profilului. De exemplu, pentru a deschide profilul pentru toți utilizatorii din toate aplicațiile gazdă, tastați:
notepad $PROFILE.AllUsersAllHosts
Pentru a aplica modificările, salvați fișierul de profil și apoi reporniți PowerShell.
Cum să alegeți un profil
Dacă folosiți mai multe aplicații gazdă, puneți elementele pe care le folosiți în toate aplicațiile gazdă în profilul $PROFILE.CurrentUserAllHosts
. Puneți elementele care sunt specifice unei aplicații gazdă, cum ar fi o comandă care stabilește culoarea de fundal pentru o aplicație gazdă, într-un profil care este specific acelei aplicații gazdă.
Dacă sunteți un administrator care personalizează PowerShell pentru mai mulțiutilizatori, urmați aceste orientări:
- Stocați elementele comune în profilul
$PROFILE.AllUsersAllHosts
- Stocați elementele care sunt specifice unei aplicații gazdă în
$PROFILE.AllUsersCurrentHost
profiluri care sunt specifice aplicației gazdă - Stocați elementele pentru anumiți utilizatori în profilurile specifice utilizatorilor
Asigurați-vă că verificați documentația aplicației gazdă pentru oriceimplementare specială a profilurilor PowerShell.
Cum se utilizează un profil
Multe dintre elementele pe care le creați în PowerShell și majoritatea comenzilor pe care le executați afectează numai sesiunea curentă. Când încheiați sesiunea, elementele sunt șterse.
Comenzile și elementele specifice sesiunii includ variabile, variabile de preferință, alias-uri, funcții, comenzi (cu excepțiaSet-ExecutionPolicy),și module PowerShell pe care le adăugați la sesiune.
Pentru a salva aceste elemente și a le face disponibile în toate sesiunile viitoare, adăugați-le la un profil PowerShell.
O altă utilizare obișnuită a profilurilor este salvarea funcțiilor, alias-urilor și variabilelor utilizate frecvent. Când salvați elementele într-un profil, le puteți utiliza în orice sesiune aplicabilă fără a le recrea.
Cum se pornește un profil
Când deschideți fișierul de profil, acesta este gol. Cu toate acestea, îl puteți completa cu variabilele, aliasurile și comenzile pe care le folosiți frecvent.
Iată câteva sugestii pentru a vă ajuta să începeți.
Adaugați comenzi care facilitează deschiderea profilului
Acest lucru este util mai ales dacă folosiți un alt profil decât profilul „Current User,Current Host”. De exemplu, adăugați următoarea comandă:
function Pro {notepad $PROFILE.CurrentUserAllHosts}
Adaugați o funcție care listează aliasurile pentru orice cmdlet
function Get-CmdletAlias ($cmdletname) { Get-Alias | Where-Object -FilterScript {$_.Definition -like "$cmdletname"} | Format-Table -Property Definition, Name -AutoSize}
Personalizați-vă consola
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
Adaugați un prompt PowerShell personalizat
function Prompt{$env:COMPUTERNAME + "\" + (Get-Location) + "> "}
Pentru mai multe informații despre promptul PowerShell, consultațiabout_Prompturi.
Parametrul NoProfile
Pentru a porni PowerShell fără profiluri, utilizați parametrul NoProfile dinPowerShell.exe, programul care pornește PowerShell.
Pentru a începe, deschideți un program care poate porni PowerShell, cum ar fi Cmd.exe sauPowerShell însuși. De asemenea, puteți utiliza caseta de dialog Run din Windows.
Type:
PowerShell -NoProfile
Pentru o listă completă a parametrilor lui PowerShell.exe, tastați:
PowerShell -?
Profile și politica de execuție
Politica de execuție PowerShell determină, în parte, dacă puteți rula scripturi și încărca fișiere de configurare, inclusiv profilurile. Politica Restrictedexecution este cea implicită. Aceasta împiedică executarea tuturor scripturilor,inclusiv a profilurilor. Dacă utilizați politica „Restricted”, profilul nu se execută, iar conținutul său nu se aplică.
O comandă Set-ExecutionPolicy
setează și modifică politica de execuție. Este una dintre puținele comenzi care se aplică în toate sesiunile PowerShell, deoarece valoarea este salvată în registru. Nu trebuie să o setați atunci când deschideți consola și nu trebuie să stocați o comandă Set-ExecutionPolicy
în profilul dumneavoastră.
Profile și sesiuni la distanță
Profilele PowerShell nu se execută automat în sesiunile la distanță, astfel încât comenzile pe care le adaugă profilurile nu sunt prezente în sesiunea la distanță. În plus, variabila automată $PROFILE
nu este populată în sesiunile la distanță.
Pentru a rula un profil într-o sesiune, utilizați cmdlet-ul Invoke-Command.
De exemplu, următoarea comandă execută profilul „Current user, Current Host „de pe calculatorul local în sesiunea din $s
.
Invoke-Command -Session $s -FilePath $PROFILE
Comanda următoare execută profilul „Current user, Current Host” de pe calculatorul la distanță în sesiunea din $s
. Deoarece variabila $PROFILE
nu este completată, comanda utilizează calea explicită către profil. Utilizăm operatorul dotsourcing pentru ca profilul să se execute în domeniul curent de pe computerul de la distanță și nu în propriul domeniu.
Invoke-Command -Session $s -ScriptBlock { . "$HOME\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"}
După rularea acestei comenzi, comenzile pe care profilul le adaugă în sesiune sunt disponibile în $s
.
Vezi și
Despre_Automatic_Variables
Despre_Functions
Despre_Prompts
Despre_Execution_Policies
Despre_Signing
Despre_Remote
Despre_Scopes
Set-ExecutionPolicy
Set-ExecutionPolicy
.