PowerShell-profiler

I denne vejledning vil vi se om PowerShell-profiler og deres anvendelse. PowerShell-profiler hjælper dig med at tilpasse dit miljø og tilføje elementer for hver PowerShell-session, du starter. PowerShell-profil er et script, der kører hver gang vi vil starte PowerShell. Du er i stand til at bruge en PowerShell-profil som et logon-script til at tilpasse miljøet. Ved at bruge en PowerShell-profil kan du tilføje kommandoer, aliaser, funktioner, variabler, snap-ins, moduler, PSDrives og alle andre sessionsspecifikke elementer i dit evnironmet. Du behøver ikke at importere eller oprette dem igen, hver gang du kører PowerShell. De vil blive indlæst automatisk. PowerShell understøtter flere profiler for brugere og værtsprogrammer. PowerShell opretter ikke nogen profiler for dig.

Hvis du ønsker sessionsspecifikke kommandoer, variabler, præferencevariabler, aliaser, funktioner, kommandoer (undtagen Set-ExecutionPolicy) og PowerShell-moduler, som du bruger ofte, kan du bruge profiler til at indlæse i alle fremtidige sessioner.

Profil-filer

PowerShell-konsollen understøtter følgende profiler:

  • $Home\Documents\PowerShell\Microsoft.PowerShell_profile.ps1 – Aktuel bruger, aktuel vært
  • $Home\Documents\PowerShell\Profile.ps1 – Aktuel bruger, alle værter
  • $PsHome\Microsoft.PowerShell_profile.ps1 – Alle brugere, aktuel vært
  • $PsHome\Profile.ps1 – Alle brugere, alle værter

De ovenstående profiler er vist i prioriteret rækkefølge. Den første profil på listen har den højeste prioriteringsrækkefølge. Som du kan se i profilerne ovenfor, har vi to variabler. Variablerne $PSHome og $Home præsenterer følgende værdier:

  • $PSHome – Gemmer installationsmappen for PowerShell
  • $Home – Gemmer den aktuelle brugers hjemmemappe

Andre programmer, der er vært for PowerShell, kan understøtte deres egne profiler. PowerShell Integrated Scripting Environment (ISE) understøtter følgende værtsspecifikke profiler:

  • $Home\Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1 – Aktuel bruger, aktuel vært
  • $PsHome\Microsoft.PowerShellISE_profile.ps1 – Alle brugere, aktuel vært

Som Microsoft oplyser i PowerShell-hjælpen, er profilen “CurrentUser, Current Host” den profil, der oftest omtales som “din PowerShell-profil”.

Profilvariabel

I PowerShell har vi en automatisk variabel, der hedder $Profile. Alle PowerShell-profilstier, der er tilgængelige i den aktuelle session, er gemt i $Profile-variablen. Ved at se $Profile-variablen kan du se stien til profilen.

$Profile-variablen gemmer stien til profilen “Current User, Current Host” (aktuel bruger, aktuel vært). De andre profiler er gemt i noteegenskaberne for $Profile-variablen.

Du kan angive en profil ved hjælp af egenskaberne for variablen. I Windows PowerShell-konsollen har vi følgende værdier i $Profile-variablen.

  • $Profile – Current User, Current Host
  • $Profile.CurrentUserCurrentHost – Current User, Current Host
  • $Profile.CurrentUserAllHosts – Current User, All Hosts
  • $Profile.AllUsersCurrentHost – All Users, Current Host
  • $Profile.AllUsersAllHosts – All Users, All Hosts

Du er i stand til at bruge $Profile-variablen i dine kommandoer.

Kode:

Test-Path -Path $PROFILETest-Path -Path $PROFILE.CurrentUserCurrentHostTest-Path -Path $PROFILE.CurrentUserAllHostsTest-Path -Path $PROFILE.AllUsersCurrentHostTest-Path -Path $PROFILE.AllUsersAllHosts

Output:

Overstående kommandoer tester, om den angivne profil er blevet oprettet. Som du kan se, er svaret falsk for dem alle. Som du vi har nævnt før, oprettes profiler ikke som standard. Du skal oprette dem.

Skab en profil

For at oprette en profil skal du bruge følgende kommando.

Kode:

New-Item -ItemType File -Path $profile -Force

Overstående kommando vil oprette en profil for “Current User, Current Host”.

Bemærk, at ovenstående vil erstatte enhver eksisterende profil. Hvis du vil sikre dig, at du ikke erstatter en profil, der allerede findes, og mister de ændringer, du allerede har anvendt, kan du prøve nedenstående.

Kode:

if (-not (Test-Path -Path $profile.AllUsersAllHosts)){ New-Item -ItemType File -Path $profile.AllUsersAllHosts -Force}

Overstående kommando vil kontrollere, om der findes en profil for “All Users, All Hosts”, og hvis den ikke findes, vil den oprette profilen.

For at oprette en profil skal du køre PowerShell-konsollen som administrator. Dette gælder fra Windows Vista og senere versioner.

Rediger en profil

Hvis en profil findes, og du skal anvende nogle ændringer eller tilføjelser, skal du bruge en teksteditor til at redigere profilen. Ved at bruge notepad er en nem måde at redigere profilen på.

Kode:

notepad $profile

Som du kan se nedenfor er min nuværende profil konfigureret til at give en velkomstmeddelelse, når jeg åbner min konsol.

Nu vil jeg bruge ovenstående kommando til at anvende nogle ændringer i min profil.

Nedenfor er de ændringer, som jeg har anvendt.

Når jeg har genstartet PowerShell-konsollen, er ændringerne, som du kan se, blevet anvendt.

Retningslinjer for profiler

Nedenfor vil jeg give nogle retningslinjer om for opsætning af dine profiler, som Microsoft har leveret.

Hvis du bruger flere værtsprogrammer, skal du sætte de elementer, som du bruger i alle værtsprogrammerne, ind i din $Profile.CurrentUserAllHostsprofil. Elementer, der er specifikke for et værtsprogram, f.eks. en kommando, der indstiller baggrundsfarven for et værtsprogram, skal du placere i en profil, der er specifik for det pågældende værtsprogram.

Hvis du er en administrator, der tilpasser PowerShell til mange brugere, skal du følge disse retningslinjer:

  • Lagre de fælles elementer i $profile.AllUsersAllHosts-profilen
  • Lagre elementer, der er specifikke for et værtsprogram, i $profile.AllUsersCurrentHost-profiler, der er specifikke for værtsprogrammet
  • Lagre elementer for bestemte brugere i de brugerspecifikke profiler

Sørg for at tjekke værtsprogrammets dokumentation for eventuel særlig implementering af PowerShell-profiler.

Ingen profil

Selv om du har oprettet profiler, der skal indlæses, hver gang du åbner din konsol, kan du køre PowerShell, uden at der skal indlæses nogen profil. Det kan du gøre ved at køre PowerShell med parameteren -NoProfile. Dette kan gøres fra cmd.exe, dialogboksen Kør eller PowerShell selv.

Kode:

PowerShell -NoProfile

Udførelsespolitik

PowerShell-udførelsespolitikken bestemmer, om du kan køre scripts og indlæse konfigurationsfiler, herunder profiler. Eksekveringspolitikken “Begrænset” er standardindstillingen. Du kan finde flere oplysninger om PowerShell-udførelsespolitik her. Hvis du bruger politikken “Restricted” (Begrænset), forhindrer den alle scripts i at køre, herunder profilerne. Indholdet af profilen anvendes ikke. En Set-ExecutionPolicy-kommando indstiller og ændrer din eksekveringspolitik i alle PowerShell-sessioner, fordi værdien gemmes i registreringsdatabasen. Du behøver ikke at indstille den, når du åbner konsollen, eller gemme en Set-ExecutionPolicy-kommando i din profil.

Profil på fjernsession

PowerShell-profiler køres ikke automatisk i fjernsessioner, så de kommandoer, som profilerne tilføjer, er ikke til stede i fjernsessionen. Desuden er den automatiske variabel $Profile ikke udfyldt i fjernsessioner.

Hvis vi ønsker at køre profilen fra vores lokale computer, til en fjernsession, skal vi bruge Invoke-Command cmdlet.

Eksemplet nedenfor vil køre den lokale profil til en fjernsession.

Kode:

$MySession = New-PSSession -ComputerName RemoteComputerInvoke-Command -Session $MySession -FilePath $profile

Output:

Da profilen ikke vil blive udfyldt i fjernsessionen, kan vi også indlæse fjernprofilen i sessionen. Tjek nedenstående eksempel.

Code:

$MySession = New-PSSession -ComputerName RemoteComputerInvoke-Command -Session $MySession -ScriptBlock {. "$env:USERPROFILE\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"}

Output:

Jeg håber, at tutorialen om PowerShell-profiler er nyttig.

Lad mig venligst vide dine kommentarer og tanker.

Din feedback er værdsat.

Relaterede links

  • PowerShell-vejledninger
  • PowerShell-scripts
  • om_Profiler | Microsoft Docs
  • PowerShell automatiske variabler
  • PowerShell-logiske operatorer
  • PowerShell-eksekveringspolitik
  • Test-Sti – Microsoft Docs
  • Nyheds-Item – Microsoft Docs
  • Write-Output – Microsoft Docs
  • Set-ExecutionPolicy – Microsoft Docs
  • Invoke-Command – Microsoft Docs
Summary
Article Name
PowerShell Profiles
Description
PowerShell Profiles. I denne vejledning finder du oplysninger om PowerShell-profiler og deres anvendelse. Stephanos Constantinou Blog
Author
Stephanos
Udgivernavn
Stephanos Constantinou Blog
Udgiverlogo

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.