about_CommonParameters
Kort beskrivning
Beskriver de parametrar som kan användas med valfri cmdlet.
Lång beskrivning
De vanliga parametrarna är en uppsättning cmdlet-parametrar som du kan använda med valfri cmdlet. De implementeras av PowerShell, inte av cmdlet-utvecklaren, och de är automatiskt tillgängliga för alla cmdletar.
Du kan använda de vanliga parametrarna med valfri cmdlet, men de kanske inte påverkar alla cmdletar. Om en cmdlet till exempel inte genererar utförliga utdata har det ingen effekt att använda den Verbose gemensamma parametern.
De vanliga parametrarna är också tillgängliga för avancerade funktioner som använder CmdletBinding
attributet eller attributet Parameter
. När du använder de här attributen lägger PowerShell automatiskt till de gemensamma parametrarna. Du kan inte skapa några parametrar som använder samma namn som de gemensamma parametrarna.
Flera vanliga parametrar åsidosätter systemstandarder eller inställningar som du anger med hjälp av PowerShell-inställningsvariablerna. Till skillnad från inställningsvariablerna påverkar de vanliga parametrarna endast de kommandon där de används.
Mer information finns i about_Preference_Variables.
I följande lista visas de vanliga parametrarna. Deras alias visas i parenteser.
- Debug (db)
- ErrorAction (ea)
- ErrorVariable (ev)
- InformationAction (infa)
- InformationVariable (iv)
- OutVariable (ov)
- OutBuffer (ob)
- PipelineVariable (pv)
- ProgressAction (proga)
- Verbose (vb)
- WarningAction (wa)
- WarningVariable (wv)
Åtgärdsparametrarna är värden av typen ActionPreference. ActionPreference är en uppräkning med följande värden:
Name | Värde |
---|---|
Break |
6 |
Suspend |
5 |
Ignore |
4 |
Inquire |
3 |
Continue |
2 |
Stop |
1 |
SilentlyContinue |
0 |
Du kan använda namnet eller värdet med parametern .
Förutom de vanliga parametrarna erbjuder många cmdletar riskreduceringsparametrar. Cmdletar som innebär risk för systemet eller användardata erbjuder vanligtvis dessa parametrar.
Parametrarna för riskreducering är:
- WhatIf (wi)
- Confirm (jfr)
Vanliga parameterbeskrivningar
-Debug
Visar information på programmerarnivå om den åtgärd som utförs av kommandot. Den här parametern fungerar bara när kommandot genererar ett felsökningsmeddelande. Den här parametern fungerar till exempel när ett kommando innehåller cmdleten Write-Debug
.
Type: SwitchParameter
Aliases: db
Required: False
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False
Som standard visas inte felsökningsmeddelanden eftersom värdet för variabeln $DebugPreference
är SilentlyContinue.
Parametern Debug åsidosätter värdet för variabeln $DebugPreference
för det aktuella kommandot och anger värdet $DebugPreference
för till Fortsätt.
-Debug:$true
har samma effekt som -Debug
. Använd -Debug:$false
för att förhindra visning av felsökningsmeddelanden när $DebugPreference
inte är SilentlyContinue, vilket är standardvärdet.
-ErrorAction
Avgör hur cmdleten svarar på ett icke-avslutande fel från kommandot.
Den här parametern fungerar bara när kommandot genererar ett icke-avslutande fel, till exempel de från cmdleten Write-Error
.
Type: ActionPreference
Aliases: ea
Accepted values: Break, Suspend, Ignore, Inquire, Continue, Stop, SilentlyContinue
Required: False
Position: Named
Default value: Depends on preference variable
Accept pipeline input: False
Accept wildcard characters: False
Parametern ErrorAction åsidosätter värdet för variabeln $ErrorActionPreference
för det aktuella kommandot. Eftersom standardvärdet för variabeln $ErrorActionPreference
är Fortsätt visas felmeddelanden och körningen fortsätter om du inte använder parametern ErrorAction .
Parametern ErrorAction har ingen effekt på avslutande fel (till exempel saknade data, parametrar som inte är giltiga eller otillräckliga behörigheter) som hindrar ett kommando från att slutföras.
Break
Anger felsökningsprogrammet när ett fel inträffar eller ett undantag utlöses.Continue
visar felmeddelandet och fortsätter att köra kommandot.Continue
används som standard.Ignore
undertrycker felmeddelandet och fortsätter att köra kommandot. Till skillnad från SilentlyContinue lägger Ignore inte till felmeddelandet i den$Error
automatiska variabeln. Värdet Ignorera introduceras i PowerShell 3.0.Inquire
visar felmeddelandet och uppmanar dig att bekräfta innan du fortsätter körningen. Det här värdet används sällan.SilentlyContinue
undertrycker felmeddelandet och fortsätter att köra kommandot.Stop
visar felmeddelandet och slutar köra kommandot.Suspend
är endast tillgängligt för arbetsflöden som inte stöds i PowerShell 6 och senare.
Kommentar
Parametern ErrorAction åsidosätter, men ersätter inte värdet för variabeln $ErrorActionPreference
när parametern används i ett kommando för att köra ett skript eller en funktion.
-ErrorVariable
Felposter lagras automatiskt i den $Error
automatiska variabeln. Mer information finns i about_Automatic_Variables.
När du använder parametern ErrorVariable i ett kommando lagrar PowerShell även de felposter som genereras av kommandot i variabeln som anges av parametern.
Type: String
Aliases: ev
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Som standard skriver nya felmeddelanden över felmeddelanden som redan lagras i variabeln. Om du vill lägga till felmeddelandet i variabelinnehållet lägger du till ett plustecken (+
) före variabelnamnet.
Följande kommando skapar till exempel variabeln $a
och lagrar sedan eventuella fel i den:
Get-Process -Id 6 -ErrorVariable a
Följande kommando lägger till eventuella felmeddelanden i variabeln $a
:
Get-Process -Id 2 -ErrorVariable +a
Följande kommando visar innehållet i $a
:
$a
Du kan använda den här parametern för att skapa en variabel som endast innehåller felmeddelanden från specifika kommandon och inte påverkar beteendet för den $Error
automatiska variabeln. Den $Error
automatiska variabeln innehåller felmeddelanden från alla kommandon i sessionen. Du kan använda matris notation, till exempel $a[0]
eller $error[1,2]
för att referera till specifika fel som lagras i variablerna.
Kommentar
Den anpassade felvariabeln innehåller alla fel som genereras av kommandot, inklusive fel från anrop till kapslade funktioner eller skript.
-InformationAction
Introducerades i PowerShell 5.0. I kommandot eller skriptet där det används åsidosätter den vanliga parametern InformationAction värdet $InformationPreference
för inställningsvariabeln, som som standard är inställd på SilentlyContinue. När du använder Write-Information
i ett skript med InformationActionWrite-Information
visas värden beroende på värdet för parametern InformationAction. Mer information om $InformationPreference
finns i about_Preference_Variables.
Type: ActionPreference
Aliases: infa
Accepted values: Break, Suspend, Ignore, Inquire, Continue, Stop, SilentlyContinue
Required: False
Position: Named
Default value: Depends on preference variable
Accept pipeline input: False
Accept wildcard characters: False
Break
Anger felsökningsprogrammet vid en förekomst avWrite-Information
kommandot.Stop
stoppar ett kommando eller skript vid en förekomst avWrite-Information
kommandot.Ignore
undertrycker informationsmeddelandet och fortsätter att köra kommandot. Till skillnad från SilentlyContinue glömmer Ignore helt informationsmeddelandet. Det lägger inte till informationsmeddelandet i informationsströmmen.Inquire
visar det informationsmeddelande som du anger i ettWrite-Information
kommando och frågar sedan om du vill fortsätta.Continue
visar informationsmeddelandet och fortsätter att köras.Suspend
stöds inte i PowerShell 6 och senare eftersom det endast är tillgängligt för arbetsflöden.SilentlyContinue
ingen effekt eftersom informationsmeddelandet inte visas (standard) och skriptet fortsätter utan avbrott.
Kommentar
Parametern InformationAction åsidosätter, men ersätter inte värdet $InformationAction
för inställningsvariabeln när parametern används i ett kommando för att köra ett skript eller en funktion.
-InformationVariable
Introducerades i PowerShell 5.0. När du använder den vanliga parametern InformationVariable lagras informationsposter i variabeln som anges av parametern. Och PowerShell-cmdleten kan skriva informationsposter till informationsströmmen . Du kan också använda cmdleten Write-Information
för att skriva informationsposter.
Informationsposter visas som meddelanden i konsolen som standard. Du kan styra visningen av informationsposten med hjälp av den vanliga parametern InformationAction . Du kan också ändra beteendet med hjälp av inställningsvariabeln $InformationPreference
. Mer information om $InformationPreference
finns i about_Preference_Variables.
Kommentar
Informationsvariabeln innehåller alla informationsmeddelanden som genereras av kommandot, inklusive informationsmeddelanden från anrop till kapslade funktioner eller skript.
Type: String
Aliases: iv
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Som standard skriver ny informationspost över värden som redan lagras i variabeln. Om du vill lägga till felmeddelandet i variabelinnehållet lägger du till ett plustecken (+
) före variabelnamnet.
-OutBuffer
Avgör hur många objekt som ska ackumuleras i en buffert innan några objekt skickas via pipelinen. Om du utelämnar den här parametern skickas objekt när de genereras.
Type: Int32
Aliases: ob
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Den här resurshanteringsparametern är utformad för avancerade användare. När du använder den här parametern skickar PowerShell data till nästa cmdlet i batchar med OutBuffer + 1
.
I följande exempel visas alternativ mellan för att ForEach-Object
bearbeta block som använder cmdleten Write-Host
. Visningen växlar i batchar med 2 eller OutBuffer + 1
.
1..4 | ForEach-Object {
Write-Host "$($_): First"; $_
} -OutBuffer 1 | ForEach-Object {
Write-Host "$($_): Second" }
1: First
2: First
1: Second
2: Second
3: First
4: First
3: Second
4: Second
-OutVariable
Lagrar utdataobjekt från kommandot i den angivna variabeln förutom att skicka utdata längs pipelinen.
Type: String
Aliases: ov
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Om du vill lägga till utdata i variabeln skriver du ett plustecken (+
) före variabelnamnet i stället för att ersätta utdata som kanske redan har lagrats där.
Följande kommando skapar till exempel variabeln $out
och lagrar processobjektet i den:
Get-Process PowerShell -OutVariable out
Följande kommando lägger till processobjektet i variabeln $out
:
Get-Process iexplore -OutVariable +out
Följande kommando visar innehållet i variabeln $out
:
$out
Kommentar
Variabeln som skapas av parametern OutVariable är en [System.Collections.ArrayList]
.
-PipelineVariable
PipelineVariable ger åtkomst till det senaste värdet som skickas till nästa pipelinesegment med kommandot som använder den här parametern. Alla kommandon i pipelinen kan komma åt värdet med hjälp av namnet PipelineVariable. Värdet tilldelas variabeln när den skickas till nästa pipelinesegment. Detta gör PipelineVariable enklare att använda än en specifik tillfällig variabel, som kan behöva tilldelas på flera platser.
Till skillnad från $_
eller $PSItem
, med hjälp av en PipelineVariable kan alla pipelinekommandon komma åt pipelinevärden som skickas (och sparats) av andra kommandon än det föregående kommandot. Pipelinekommandon kan komma åt det sista värdet som skickas från när nästa objekt bearbetas genom pipelinen. Detta gör att ett kommando kan mata tillbaka sina utdata till ett tidigare kommando (eller sig självt).
Kommentar
Avancerade funktioner kan ha upp till tre skriptblock: begin
, process
och end
. När du använder parametern PipelineVariable med avancerade funktioner tilldelas endast värden från det första definierade skriptblocket till variabeln när funktionen körs. Mer information finns i Avancerade funktioner. PowerShell 7.2 korrigerar det här beteendet.
Type: String
Aliases: pv
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Giltiga värden är strängar, samma som för alla variabelnamn.
Varning
PipelineVariable är begränsad till pipelinen där den anropas. Variabler utanför pipelinen, som använder samma namn, rensas innan pipelinen körs. PipelineVariable hamnar utanför omfånget när pipelinen avslutas. Om flera kommandon i pipelinen anger samma PipelineVariable finns det bara en delad variabel. Variabeln uppdateras med de senaste piped-utdata från kommandot som anger variabeln.
Vissa blockeringskommandon samlar in alla pipelineobjekt innan utdata skapas, till exempel Sort-Object
eller Select-Object -Last
. PipelineVariable som tilldelats i ett kommando innan ett sådant blockeringskommando alltid innehåller det sista piped-objektet från föregående kommando när det används i ett kommando efter blockeringskommandot.
Följande är ett exempel på hur PipelineVariable fungerar. I det här exemplet läggs parametern PipelineVariable till i ett Foreach-Object
kommando för att lagra resultatet av kommandot i variabler. Ett intervall med tal, 1 till 5, skickas till det första Foreach-Object
kommandot, vars resultat lagras i en variabel med namnet $temp
.
Resultatet av det första Foreach-Object
kommandot skickas till ett andra Foreach-Object
kommando, som visar de aktuella värdena $temp
för och $_
.
# Create a variable named $temp
$temp=8
Get-Variable temp
# Note that the variable just created isn't available on the
# pipeline when -PipelineVariable creates the same variable name
1..5 | ForEach-Object -PipelineVariable temp -Begin {
Write-Host "Step1[BEGIN]:`$temp=$temp"
} -Process {
Write-Host "Step1[PROCESS]:`$temp=$temp - `$_=$_"
Write-Output $_
} | ForEach-Object {
Write-Host "`tStep2[PROCESS]:`$temp=$temp - `$_=$_"
}
# The $temp variable is deleted when the pipeline finishes
Get-Variable temp
Name Value
---- -----
temp 8
Step1[BEGIN]:$temp=
Step1[PROCESS]:$temp= - $_=1
Step2[PROCESS]:$temp=1 - $_=1
Step1[PROCESS]:$temp=1 - $_=2
Step2[PROCESS]:$temp=2 - $_=2
Step1[PROCESS]:$temp=2 - $_=3
Step2[PROCESS]:$temp=3 - $_=3
Step1[PROCESS]:$temp=3 - $_=4
Step2[PROCESS]:$temp=4 - $_=4
Step1[PROCESS]:$temp=4 - $_=5
Step2[PROCESS]:$temp=5 - $_=5
Name Value
---- -----
temp
-ProgressAction
Avgör hur PowerShell svarar på förloppsuppdateringar som genereras av ett skript, en cmdlet eller en provider, till exempel förloppsstaplarna som genereras av cmdleten Write-Progress . Cmdleten Write-Progress
skapar förloppsstaplar som visar ett kommandos status. Parametern ProgressAction lades till i PowerShell 7.4.
Parametern ProgressAction tar ett av ActionPreference
uppräkningsvärdena: SilentlyContinue
, , Stop
, Continue
, Inquire
Ignore
, , Suspend
eller Break
.
De giltiga värdena är följande:
Break
Anger felsökningsprogrammet vid en förekomst avWrite-Progress
kommandot.Stop
: Visar inte förloppsindikatorn. I stället visas ett felmeddelande och slutar köras.Inquire
: Visar inte förloppsindikatorn. Uppmanar till behörighet att fortsätta. Om du svarar medY
ellerA
visas förloppsindikatorn.Continue
: (Standard) Visar förloppsindikatorn och fortsätter med körningen.SilentlyContinue
: Kör kommandot, men visar inte förloppsindikatorn.
Type: ActionPreference
Aliases: proga
Accepted values: Break, Suspend, Ignore, Inquire, Continue, Stop, SilentlyContinue
Required: False
Position: Named
Default value: Depends on preference variable
Accept pipeline input: False
Accept wildcard characters: False
-Verbose
Visar detaljerad information om åtgärden som utförs av kommandot. Den här informationen liknar informationen i en spårning eller i en transaktionslogg. Den här parametern fungerar bara när kommandot genererar ett utförligt meddelande. Den här parametern fungerar till exempel när ett kommando innehåller cmdleten Write-Verbose
.
Type: SwitchParameter
Aliases: vb
Required: False
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False
Parametern Verbose åsidosätter värdet för variabeln $VerbosePreference
för det aktuella kommandot. Eftersom standardvärdet för variabeln $VerbosePreference
är SilentlyContinue visas inte utförliga meddelanden som standard.
-Verbose:$true
har samma effekt som-Verbose
-Verbose:$false
undertrycker visning av utförliga meddelanden. Använd den här parametern när värdet$VerbosePreference
för inte är SilentlyContinue (standardvärdet).
-WarningAction
Avgör hur cmdleten svarar på en varning från kommandot. Fortsätt är standardvärdet. Den här parametern fungerar bara när kommandot genererar ett varningsmeddelande. Den här parametern fungerar till exempel när ett kommando innehåller cmdleten Write-Warning
.
Type: ActionPreference
Aliases: wa
Accepted values: Break, Suspend, Ignore, Inquire, Continue, Stop, SilentlyContinue
Required: False
Position: Named
Default value: Depends on preference variable
Accept pipeline input: False
Accept wildcard characters: False
Parametern WarningAction åsidosätter värdet för variabeln $WarningPreference
för det aktuella kommandot. Eftersom standardvärdet för variabeln $WarningPreference
är Fortsätt visas varningar och körningen fortsätter om du inte använder parametern WarningAction .
Break
anger felsökaren när en varning inträffar.Continue
visar varningsmeddelandena och fortsätter att köra kommandot.Continue
används som standard.Inquire
visar varningsmeddelandet och uppmanar dig att bekräfta innan du fortsätter körningen. Det här värdet används sällan.SilentlyContinue
undertrycker varningsmeddelandet och fortsätter att köra kommandot.Stop
visar varningsmeddelandet och slutar köra kommandot.
Kommentar
Parametern WarningAction åsidosätter, men ersätter inte värdet $WarningAction
för inställningsvariabeln när parametern används i ett kommando för att köra ett skript eller en funktion.
-WarningVariable
Lagrar varningsposter om kommandot i den angivna variabeln.
Type: String
Aliases: wv
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Alla genererade varningar sparas i variabeln även om varningarna inte visas för användaren.
Om du vill lägga till varningarna i variabelinnehållet skriver du ett plustecken (+
) före variabelnamnet i stället för att ersätta varningar som redan kan lagras där.
Följande kommando skapar till exempel variabeln $a
och lagrar sedan eventuella varningar i den:
Get-Process -Id 6 -WarningVariable a
Följande kommando lägger till eventuella varningar i variabeln $a
:
Get-Process -Id 2 -WarningVariable +a
Följande kommando visar innehållet i $a
:
$a
Du kan använda den här parametern för att skapa en variabel som endast innehåller varningar från specifika kommandon. Du kan använda matris notation, till exempel $a[0]
eller $warning[1,2]
för att referera till specifika varningar som lagras i variabeln.
Kommentar
Varningsvariabeln innehåller alla varningar som genereras av kommandot, inklusive varningar från anrop till kapslade funktioner eller skript.
Beskrivningar av parametern Riskhantering
-WhatIf
Visar ett meddelande som beskriver effekten av kommandot i stället för att köra kommandot.
Type: SwitchParameter
Aliases: wi
Required: False
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False
Parametern WhatIf åsidosätter värdet för variabeln $WhatIfPreference
för det aktuella kommandot. Eftersom standardvärdet för variabeln $WhatIfPreference
är 0 (inaktiverat) görs inte WhatIf-beteendet utan parametern WhatIf . Mer information finns i about_Preference_Variables.
$true
har samma effekt som-WhatIf
.$false
undertrycker det automatiska WhatIf-beteendet som resulterar när värdet för variabeln$WhatIfPreference
är 1.
Följande kommando använder till exempel parametern -WhatIf
i ett Remove-Item
kommando:
Remove-Item Date.csv -WhatIf
I stället för att ta bort objektet listar PowerShell de åtgärder som det skulle utföra och de objekt som skulle påverkas. Det här kommandot genererar följande utdata:
What if: Performing operation "Remove File" on
Target "C:\ps-test\date.csv".
-Confirm
Uppmanar dig att bekräfta innan du kör kommandot.
Type: SwitchParameter
Aliases: cf
Required: False
Position: Named
Default value: Depends on preference variable
Accept pipeline input: False
Accept wildcard characters: False
Parametern Confirm åsidosätter värdet för variabeln $ConfirmPreference
för det aktuella kommandot. Standardvärdet är sant. Mer information finns i about_Preference_Variables.
$true
har samma effekt som-Confirm
.$false
undertrycker automatisk bekräftelse, vilket inträffar när värdet för$ConfirmPreference
är mindre än eller lika med den uppskattade risken för cmdleten.
Följande kommando använder till exempel parametern Confirm med ett Remove-Item
kommando. Innan du tar bort objektet listar PowerShell de åtgärder som det skulle utföra och de objekt som skulle påverkas och ber om godkännande.
PS C:\ps-test> Remove-Item tmp*.txt -Confirm
Confirm
Are you sure you want to perform this action?
Performing operation "Remove File" on Target " C:\ps-test\tmp1.txt
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend
[?] Help (default is "Y"):
Svarsalternativen Confirm är följande:
Response | Result |
---|---|
Yes (Y ) |
Utföra åtgärden. |
Yes to All (A ) |
Utför alla åtgärder och utelämna efterföljande Confirm |
frågor för det här kommandot. | |
No (N ): |
Utför inte åtgärden. |
No to All (L ): |
Utför inga åtgärder och undertryck inte efterföljande |
Confirm frågor för det här kommandot. | |
Suspend (S ): |
Pausa kommandot och skapa en tillfällig session. |
Help (? ) |
Visa hjälp för de här alternativen. |
Alternativet Pausa placerar kommandot i vänteställning och skapar en tillfällig kapslad session där du kan arbeta tills du är redo att välja ett Confirm alternativ. Kommandotolken för den kapslade sessionen har två extra bekymmer (>>) som anger att det är en underordnad åtgärd i det ursprungliga överordnade kommandot. Du kan köra kommandon och skript i den kapslade sessionen. Om du vill avsluta den kapslade sessionen och återgå till Confirm alternativen för det ursprungliga kommandot skriver du "exit".
I följande exempel används alternativet Pausa (S) för att tillfälligt stoppa ett kommando medan användaren kontrollerar hjälpen efter en kommandoparameter. När du har hämtat nödvändig information skriver användaren "exit" för att avsluta den kapslade prompten och väljer sedan svaret Ja (y) på Confirm frågan.
PS C:\ps-test> New-Item -ItemType File -Name Test.txt -Confirm
Confirm
Are you sure you want to perform this action?
Performing operation "Create File" on Target "Destination:
C:\ps-test\test.txt".
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default
is "Y"): s
PS C:\ps-test> Get-Help New-Item -Parameter ItemType
-ItemType <string>
Specifies the provider-specified type of the new item.
Required? false
Position? named
Default value
Accept pipeline input? true (ByPropertyName)
Accept wildcard characters? false
PS C:\ps-test> exit
Confirm
Are you sure you want to perform this action?
Performing operation "Create File" on Target "Destination: C:\ps-test\test
.txt".
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (defau
lt is "Y"): y
Directory: C:\ps-test
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 8/27/2010 2:41 PM 0 test.txt