- 30/11/2017
- 7 minutter at læse
-
- S
- s
x
- q
- Kort beskrivelse
- Lang beskrivelse
- Profilfilfilerne
- Variablen $PROFILE
- Sådan oprettes en profil
- Sådan redigerer du en profil
- Sådan vælger du en profil
- Sådan bruger du en profil
- Sådan starter du en profil
- Føj kommandoer, der gør det nemt at åbne din profil
- Føj en funktion til, der viser aliasserne for enhver cmdlet
- Anpas din konsol
- Føj en tilpasset PowerShell-prompt til
- Parameteren NoProfile
- Profiler og eksekveringspolitik
- Profiler og fjernsessioner
- Se også
Kort beskrivelse
Beskriver, hvordan man opretter og bruger en PowerShell-profil.
Lang beskrivelse
Du kan oprette en PowerShell-profil for at tilpasse dit miljø og tilføje sessionsspecifikke elementer til hver PowerShell-session, du starter.
En PowerShell-profil er et script, der køres, når PowerShell starter. Du kan bruge profilen som et logon-script til at tilpasse miljøet. Du kan tilføje kommandoer, aliaser, funktioner, variabler, snap-ins, moduler og PowerShell-drev. Du kan også tilføje andre sessionsspecifikke elementer til din profil, så de er tilgængelige i hver session uden at du skal importere eller oprette dem igen.
PowerShell understøtter flere profiler for brugere og værtsprogrammer. Den opretter dog ikke profilerne for dig. I dette emne beskrives profilerne, og det beskrives, hvordan du opretter og vedligeholder profiler på din computer.
Det forklares, hvordan du bruger NoProfile-parameteren i PowerShell-konsollen (PowerShell.exe) til at starte PowerShell uden nogen profiler. Og den forklarer virkningen af PowerShell-udførelsespolitikken på profiler.
Profilfilfilerne
PowerShell understøtter flere profilfiler. PowerShell-værtsprogrammer kan også understøtte deres egne værtsspecifikke profiler.
For eksempel understøtter PowerShell-konsollen følgende grundprofilfiler. Profilerne er anført i prioriteret rækkefølge. Den førsteprofil har den højeste prioritet.
Description | Path | |
---|---|---|
All Users, All Hosts | $PSHOME\Profile.ps1 | |
Alle brugere, nuværende vært | $PSHOME\Microsoft.PowerShell_profile.ps1 | |
Aktuel bruger, alle værter | $Home\Documents\PowerShell\Profile.ps1 | |
Aktuel bruger, aktuel vært | $Home\Documents\PowerShell\ Microsoft.PowerShell_profile.ps1 |
Profilstierne omfatter følgende variabler:
- Variablen
$PSHOME
, som gemmer installationsmappen forPowerShell - Variablen
$Home
, som gemmer den aktuelle brugers hjemmemappe
Dertil kommer, at andre programmer, der er vært for PowerShell, kan understøtte deres egne profiler. Visual Studio Code understøtter f.eks. følgende værtsspecifikke profiler:
Description | Path |
---|---|
Alle brugere, Current Host | $PSHOME\Microsoft.VSCode_profile.ps1 |
Aktuel bruger, Aktuel vært | $Home\Documents\PowerShell\ Microsoft.VSCode_profile.ps1 |
I PowerShell-hjælpen er profilen “CurrentUser, Current Host” den profil, der oftest omtales som “din PowerShell-profil”.
Variablen $PROFILE
Den automatiske variabel $PROFILE
gemmer stierne til de PowerShell-profiler, der er tilgængelige i den aktuelle session.
Værdien af variablen $PROFILE
skal vises for at få vist en profilsti. Du kan også bruge $PROFILE
-variablen i en kommando til at repræsentere en sti.
$PROFILE
-variablen gemmer stien til profilen “Aktuel bruger, aktuel vært”. De andre profiler gemmes i noteegenskaberne for $PROFILE
-variablen.
$PROFILE
-variablen har f.eks. følgende værdier i WindowsPowerShell-konsollen.
Beskrivelse | Navn |
---|---|
Aktuel bruger, aktuel vært | $PROFILE |
Aktuel bruger, Current Host | $PROFILE.CurrentUserCurrentHost |
Current User, All Hosts | $PROFILE.CurrentUserAllHosts |
All Users, Current Host | $PROFILE.AllUsersCurrentHost |
Alle brugere, alle værter | $PROFILE.AllUsersAllHosts |
Da værdierne for $PROFILE
-variablen ændres for hver bruger og i hvert værtsprogram, skal du sikre, at du viser værdierne for profilvariablerne i hvert PowerShell-værtsprogram, du bruger.
For at få vist de aktuelle værdier for $PROFILE
-variablen skal du skrive:
$PROFILE | Get-Member -Type NoteProperty
Du kan bruge $PROFILE
-variablen i mange kommandoer. Følgende kommando åbner f.eks. profilen “Current User, Current Host” i Notepad:
notepad $PROFILE
Følgende kommando fastslår, om der er oprettet en profil “All Users, All Hosts” på den lokale computer:
Test-Path -Path $PROFILE.AllUsersAllHosts
Sådan oprettes en profil
For at oprette en PowerShell-profil skal du bruge følgende kommando-format:
if (!(Test-Path -Path <profile-name>)) { New-Item -ItemType File -Path <profile-name> -Force}
For eksempel skal du oprette en profil for den aktuelle bruger i det aktuelle PowerShell-værtsprogram ved at bruge følgende kommando:
if (!(Test-Path -Path $PROFILE)) { New-Item -ItemType File -Path $PROFILE -Force}
I denne kommando forhindrer If
-angivelsen, at du overskriver en eksisterende profil. Udskift værdien af pladsholderen <profile-path> med stien til den profilfil, du vil oprette.
Note
For at oprette “Alle brugere”-profiler i Windows Vista og senere versioner afWindows skal du starte PowerShell med indstillingen Kør som administrator.
Sådan redigerer du en profil
Du kan åbne enhver PowerShell-profil i en teksteditor, f.eks. i Notepad.
For at åbne profilen for den aktuelle bruger i det aktuelle PowerShell-værtsprogram i Notepad skal du skrive:
notepad $PROFILE
For at åbne andre profiler skal du angive profilnavnet. Hvis du f.eks. vil åbne profilen for alle brugere i alle værtsprogrammer, skal du skrive:
notepad $PROFILE.AllUsersAllHosts
Som du vil anvende ændringerne, skal du gemme profilfilen og derefter genstarte PowerShell.
Sådan vælger du en profil
Hvis du bruger flere værtsprogrammer, skal du placere de elementer, som du bruger i alle værtsprogrammer, i din $PROFILE.CurrentUserAllHosts
-profil. Elementer, der er specifikke for et værtsprogram, f.eks. en kommando, der indstiller baggrundsfarven for et værtsprogram, skal placeres 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 eventuelle specielle implementeringer af PowerShell-profiler.
Sådan bruger du en profil
Mange af de elementer, du opretter i PowerShell, og de fleste af de kommandoer, du kører, påvirker kun den aktuelle session. Når du afslutter sessionen, slettes elementerne.
De sessionsspecifikke kommandoer og elementer omfatter variabler, præferencevariabler, aliaser, funktioner, kommandoer (undtagenSet-ExecutionPolicy) og PowerShell-moduler, som du tilføjer til sessionen.
For at gemme disse elementer og gøre dem tilgængelige i alle fremtidige sessioner skal du føje dem til en PowerShell-profil.
En anden almindelig anvendelse af profiler er at gemme ofte anvendte funktioner, aliaser og variabler. Når du gemmer elementerne i en profil, kan du bruge dem i alle anvendelige sessioner uden at genskabe dem.
Sådan starter du en profil
Når du åbner profilfilen, er den tom. Du kan dog udfylde den med de variabler, aliasser og kommandoer, som du ofte bruger.
Her er et par forslag til at komme i gang.
Føj kommandoer, der gør det nemt at åbne din profil
Dette er især nyttigt, hvis du bruger en anden profil end “Current User,Current Host”-profilen. Tilføj f.eks. følgende kommando:
function Pro {notepad $PROFILE.CurrentUserAllHosts}
Føj en funktion til, der viser aliasserne for enhver cmdlet
function Get-CmdletAlias ($cmdletname) { Get-Alias | Where-Object -FilterScript {$_.Definition -like "$cmdletname"} | Format-Table -Property Definition, Name -AutoSize}
Anpas din konsol
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
Føj en tilpasset PowerShell-prompt til
function Prompt{$env:COMPUTERNAME + "\" + (Get-Location) + "> "}
Fors yderligere oplysninger om PowerShell-prompten, seOm_Prompts.
Parameteren NoProfile
For at starte PowerShell uden profiler skal du bruge NoProfile-parameteren iPowerShell.exe, programmet, der starter PowerShell.
Opnå et program, der kan starte PowerShell, f.eks. Cmd.exe ellerPowerShell selv, for at starte PowerShell. Du kan også bruge dialogboksen Kør i Windows.
Type:
PowerShell -NoProfile
Type:
PowerShell -?
Profiler og eksekveringspolitik
Eksekveringspolitikken for PowerShell bestemmer til dels, om du kan køre scripts og indlæse konfigurationsfiler, herunder profiler. Politikken RestrictExecution er standardindstillingen. Den forhindrer, at alle scripts kan køres, herunder profiler. Hvis du bruger politikken “Begrænset”, kan profilen ikke køres, og dens indhold anvendes ikke.
En Set-ExecutionPolicy
kommando indstiller og ændrer din eksekveringspolitik. Det er en af de få kommandoer, der gælder i alle PowerShell-sessioner, fordi værdien gemmes i registreringsdatabasen. Du behøver ikke at indstille den, når du åbner konsollen, og du behøver ikke at gemme en Set-ExecutionPolicy
-kommando i dinprofil.
Profiler og fjernsessioner
PowerShell-profiler køres ikke automatisk i fjernsessioner, så dekommandoer, som profilerne tilføjer, er ikke til stede i fjernsessionen. Desuden udfyldes den automatiske variabel $PROFILE
ikke i fjernsessioner.
For at køre en profil i en session skal du bruge Invoke-Commandcmdletten.
For eksempel kører følgende kommando profilen “Current user, Current Host” fra den lokale computer i sessionen i $s
.
Invoke-Command -Session $s -FilePath $PROFILE
Den følgende kommando kører profilen “Current user, Current Host” fra den fjerncomputer i sessionen i $s
. Da variablen $PROFILE
ikke er udfyldt, bruger kommandoen den eksplicitte sti til profilen. Vi bruger dotsourcing-operatoren, så profilen udføres i det aktuelle område på den fjernstyrede computer og ikke i sit eget område.
Invoke-Command -Session $s -ScriptBlock { . "$HOME\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"}
Når denne kommando er de kommandoer, som profilen tilføjer til sessionen, tilgængelige i $s
.
Se også
om_Automatiske_Variabler
om_Funktioner
om_Prompts
om_Udførelsespolitikker
om_Signering
om_Remote
om_Scopes
Sæt-Udførelsespolitik