• 11/30/2017
  • 7 minute de citit
    • S
    • . s
    • x
    • q

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-ExecutionPolicysetează ș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

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.