• 30/11/2017
  • 7 minutter at læse
    • S
    • s
    • x

  • q

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

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.