about_Preference_Variables

Kort beskrivning

Variabler som anpassar beteendet för PowerShell.

Lång beskrivning

PowerShell innehåller en uppsättning variabler som gör att du kan anpassa dess beteende. Dessa inställningsvariabler fungerar som alternativen i GUI-baserade system.

Inställningsvariablerna påverkar PowerShell-driftsmiljön och alla kommandon körs i miljön. I många fall har cmdletarna parametrar som du kan använda för att åsidosätta inställningsbeteendet för ett visst kommando.

I följande tabell visas inställningsvariablerna och deras standardvärden.

Variabel Standardvärde
$ConfirmPreference High
$DebugPreference SilentlyContinue
$ErrorActionPreference Continue
$ErrorView ConciseView
$FormatEnumerationLimit 4
$InformationPreference SilentlyContinue
$LogCommandHealthEvent $False (loggas inte)
$LogCommandLifecycleEvent $False (loggas inte)
$LogEngineHealthEvent $True (loggad)
$LogEngineLifecycleEvent $True (loggad)
$LogProviderLifecycleEvent $True (loggad)
$LogProviderHealthEvent $True (loggad)
$MaximumHistoryCount 4096
$OFS Blankstegstecken (" ")
$OutputEncoding UTF8Encoding objekt
$ProgressPreference Continue
$PSDefaultParameterValues @{} (tom hash-tabell)
$PSEmailServer $Null (ingen)
$PSModuleAutoLoadingPreference All
$PSSessionApplicationName 'wsman'
$PSSessionConfigurationName 'http://schemas.microsoft.com/powershell/Microsoft.PowerShell'
$PSSessionOption PSSessionOption objekt
$Transcript $Null (ingen)
$VerbosePreference SilentlyContinue
$WarningPreference Continue
$WhatIfPreference $False

PowerShell innehåller följande miljövariabler som lagrar användarinställningar. Mer information om dessa miljövariabler finns i about_Environment_Variables.

  • env:PSExecutionPolicyPreference
  • $env:PSModulePath

Anteckning

Ändringar av inställningsvariabeln börjar bara gälla i skript och funktioner om dessa skript eller funktioner definieras i samma omfång som det omfång där preferensen användes. Mer information finns i about_Scopes.

Arbeta med inställningsvariabler

I det här dokumentet beskrivs var och en av inställningsvariablerna.

Om du vill visa det aktuella värdet för en specifik inställningsvariabel skriver du variabelns namn. Följande kommando visar $ConfirmPreference till exempel variabelns värde.

 $ConfirmPreference
High

Om du vill ändra en variabels värde använder du en tilldelningssats. Följande instruktion ändrar $ConfirmPreference till exempel parameterns värde till Medel.

$ConfirmPreference = "Medium"

De värden som du anger är specifika för den aktuella PowerShell-sessionen. Om du vill göra variabler effektiva i alla PowerShell-sessioner lägger du till dem i din PowerShell-profil. Mer information finns i about_Profiles.

Arbeta via fjärranslutning

När du kör kommandon på en fjärrdator omfattas fjärrkommandona endast av de inställningar som angetts i fjärrdatorns PowerShell-klient. När du till exempel kör ett fjärrkommando avgör värdet för fjärrdatorns $DebugPreference variabel hur PowerShell svarar på felsökning av meddelanden.

Mer information om fjärrkommandon finns i about_Remote.

$ConfirmPreference

Avgör om PowerShell automatiskt ber dig om bekräftelse innan du kör en cmdlet eller funktion.

Variabeln $ConfirmPreference tar en av deConfirmImpact uppräkningsvärden: Hög, Medel, Låg eller Ingen.

Cmdletar och funktioner tilldelas en risk för hög, medel eller låg. När värdet för variabeln $ConfirmPreference är mindre än eller lika med den risk som tilldelats till en cmdlet eller funktion, uppmanar PowerShell dig automatiskt att bekräfta innan du kör cmdleten eller funktionen.

Om värdet för variabeln $ConfirmPreference är None (Ingen) frågar PowerShell aldrig automatiskt innan du kör en cmdlet eller funktion.

Om du vill ändra det bekräftande beteendet för alla cmdletar och funktioner i sessionen ändrar du $ConfirmPreference variabelns värde.

Om du vill åsidosätta $ConfirmPreference för ett enda kommando använder du en cmdlet eller funktionens Confirm-parameter . Om du vill begära bekräftelse använder du -Confirm. Om du vill förhindra bekräftelse använder du -Confirm:$false.

Giltiga värden för $ConfirmPreference:

  • Ingen: PowerShell frågar inte automatiskt. Om du vill begära bekräftelse av ett visst kommando använder du parametern Bekräfta för cmdleten eller funktionen.
  • Låg: PowerShell ber om bekräftelse innan du kör cmdletar eller funktioner med låg, medel eller hög risk.
  • Medel: PowerShell ber om bekräftelse innan du kör cmdletar eller funktioner med medelhög eller hög risk.
  • Hög: PowerShell ber om bekräftelse innan du kör cmdletar eller funktioner med hög risk.

Detaljerad förklaring

PowerShell kan automatiskt uppmana dig att bekräfta innan du utför en åtgärd. Till exempel när cmdlet eller funktion avsevärt påverkar systemet att ta bort data eller använda en betydande mängd systemresurser.

Remove-Item -Path C:\file.txt
Confirm
Are you sure you want to perform this action?
Performing operation "Remove File" on Target "C:\file.txt".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [?] Help (default is "Y"):

Riskuppskattningen är ett attribut för cmdleten eller funktionen som kallas confirmimpact. Användare kan inte ändra det.

Cmdletar och funktioner som kan utgöra en risk för systemet har en Confirm-parameter som du kan använda för att begära eller utelämna bekräftelse för ett enda kommando.

Eftersom de flesta cmdletar och funktioner använder standardriskvärdet ConfirmImpact för Medium och standardvärdet $ConfirmPreference för är Hög, sker automatisk bekräftelse sällan. Du kan dock aktivera automatisk bekräftelse genom att ändra värdet $ConfirmPreference för till Medel eller Låg.

Exempel

Det här exemplet visar effekten av $ConfirmPreference variabelns standardvärde, Hög. Värdet Hög bekräftar endast cmdletar och funktioner med hög risk. Eftersom de flesta cmdletar och funktioner är medelhöga risker bekräftas de inte automatiskt och Remove-Item tar bort filen. Om du lägger -Confirm till i kommandot uppmanas användaren att bekräfta.

$ConfirmPreference
High
Remove-Item -Path C:\temp1.txt

Använd -Confirm för att begära bekräftelse.

Remove-Item -Path C:\temp2.txt -Confirm
Confirm
Are you sure you want to perform this action?
Performing operation "Remove File" on Target "C:\temp2.txt".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All
[?] Help (default is "Y"):

I följande exempel visas effekten av att ändra värdet $ConfirmPreference för till Medel. Eftersom de flesta cmdletar och funktioner är medelhöga risker bekräftas de automatiskt. Om du vill ignorera bekräftelseprompten för ett enda kommando använder du parametern Confirm med värdet $false.

$ConfirmPreference = "Medium"
Remove-Item -Path C:\temp2.txt
Confirm
Are you sure you want to perform this action?
Performing operation "Remove File" on Target "C:\temp2.txt".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All
[?] Help (default is "Y"):
Remove-Item -Path C:\temp3.txt -Confirm:$false

$DebugPreference

Avgör hur PowerShell svarar på felsökning av meddelanden som genereras av ett skript, en cmdlet eller en provider eller med ett Write-Debug kommando på kommandoraden.

Variabeln $DebugPreference tar en av deActionPreference uppräkningsvärden: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend eller Break.

Vissa cmdletar visar felsökningsmeddelanden, som vanligtvis är tekniska meddelanden som är utformade för programmerare och tekniker inom teknisk support. Som standard visas inte felsökningsmeddelanden, men du kan visa felsökningsmeddelanden genom att ändra värdet $DebugPreferenceför .

Du kan använda den vanliga parametern Felsöka för en cmdlet för att visa eller dölja felsökningsmeddelanden för ett visst kommando. Mer information finns i about_CommonParameters.

Giltiga värden är följande:

  • Stopp: Visar felsökningsmeddelandet och slutar köras. Skriver ett fel till konsolen.
  • Fråga: Visar felsökningsmeddelandet och frågar om du vill fortsätta. Om du lägger till den vanliga parametern Felsöka i ett kommando, när kommandot har konfigurerats för att generera ett felsökningsmeddelande, ändras värdet för variabeln $DebugPreference till Fråga.
  • Fortsätt: Visar felsökningsmeddelandet och fortsätter körningen.
  • TystFortsätt: (Standard) Ingen effekt. Felsökningsmeddelandet visas inte och körningen fortsätter utan avbrott.

Exempel

I följande exempel visas effekten av att ändra värdena $DebugPreference för när ett Write-Debug kommando anges på kommandoraden. Ändringen påverkar alla felsökningsmeddelanden, inklusive meddelanden som genereras av cmdletar och skript. Exemplen visar parametern Debug , som visar eller döljer felsökningsmeddelanden relaterade till ett enda kommando.

Det här exemplet visar effekten av $DebugPreference variabelns standardvärde, SilentlyContinue. Som standard visas inte cmdletens Write-Debug felsökningsmeddelande och bearbetningen fortsätter. När parametern Debug används åsidosätter den inställningen för ett enda kommando. Felsökningsmeddelandet visas.

$DebugPreference
SilentlyContinue
Write-Debug -Message "Hello, World"
Write-Debug -Message "Hello, World" -Debug
DEBUG: Hello, World

Det här exemplet visar effekten av $DebugPreference med värdet Fortsätt . Felsökningsmeddelandet visas och kommandot fortsätter att bearbetas.

$DebugPreference = "Continue"
Write-Debug -Message "Hello, World"
DEBUG: Hello, World

I det här exemplet används parametern Debug med värdet $false för för att ignorera meddelandet för ett enda kommando. Felsökningsmeddelandet visas inte.

Write-Debug -Message "Hello, World" -Debug:$false

Det här exemplet visar effekten av $DebugPreference att ställas in på värdet Stopp . Felsökningsmeddelandet visas och kommandot stoppas.

$DebugPreference = "Stop"
Write-Debug -Message "Hello, World"
DEBUG: Hello, World
Write-Debug : The running command stopped because the preference variable
 "DebugPreference" or common parameter is set to Stop: Hello, World
At line:1 char:1
+ Write-Debug -Message "Hello, World"

I det här exemplet används parametern Debug med värdet $false för för att ignorera meddelandet för ett enda kommando. Felsökningsmeddelandet visas inte och bearbetningen stoppas inte.

Write-Debug -Message "Hello, World" -Debug:$false

Det här exemplet visar effekten av $DebugPreference att ställas in på inquire-värdet . Felsökningsmeddelandet visas och användaren uppmanas att bekräfta.

$DebugPreference = "Inquire"
Write-Debug -Message "Hello, World"
DEBUG: Hello, World

Confirm
Continue with this operation?
[Y] Yes  [A] Yes to All  [H] Halt Command  [?] Help (default is "Y"):

I det här exemplet används parametern Debug med värdet $false för för att ignorera meddelandet för ett enda kommando. Felsökningsmeddelandet visas inte och bearbetningen fortsätter.

Write-Debug -Message "Hello, World" -Debug:$false

$ErrorActionPreference

Avgör hur PowerShell svarar på ett icke-avslutande fel, ett fel som inte stoppar cmdlet-bearbetningen. Till exempel på kommandoraden eller i ett skript, cmdlet eller provider, till exempel de fel som genereras av cmdleten Write-Error .

Variabeln $ErrorActionPreference tar en av deActionPreference uppräkningsvärden: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend eller Break.

Du kan använda en cmdlets vanliga ErrorAction-parameter för att åsidosätta inställningen för ett visst kommando.

Giltiga värden är följande:

  • Bryt – Ange felsökaren när ett fel inträffar eller när ett undantag utlöses.
  • Fortsätt: (Standard) Visar felmeddelandet och fortsätter att köras.
  • Ignorera: Utelämnar felmeddelandet och fortsätter att köra kommandot. Värdet Ignore är avsett för användning per kommando, inte för användning som sparad inställning. Ignorera är inte ett giltigt värde för variabeln $ErrorActionPreference .
  • Fråga: Visar felmeddelandet och frågar om du vill fortsätta.
  • TystFortsätt: Ingen effekt. Felmeddelandet visas inte och körningen fortsätter utan avbrott.
  • Stopp: Visar felmeddelandet och slutar köras. Förutom det genererade felet genererar stoppvärdet ett ActionPreferenceStopException-objekt till felströmmen.
  • Pausa: Pausar automatiskt ett arbetsflödesjobb för att möjliggöra ytterligare undersökning. Efter undersökningen kan arbetsflödet återupptas. Suspend-värdet är avsett för användning per kommando, inte för användning som sparad inställning. Pausa är inte ett giltigt värde för variabeln $ErrorActionPreference .

$ErrorActionPreference och errorAction-parametern påverkar inte hur PowerShell svarar på avslutande fel som stoppar cmdlet-bearbetning. Mer information om den vanliga parametern ErrorAction finns i about_CommonParameters.

Exempel

De här exemplen visar effekten av variabelns $ErrorActionPreference olika värden. Parametern ErrorAction används för att åsidosätta värdet $ErrorActionPreference .

I det $ErrorActionPreference här exemplet visas standardvärdet Fortsätt. Ett icke-avslutande fel genereras. Meddelandet visas och bearbetningen fortsätter.

# Change the ErrorActionPreference to 'Continue'
$ErrorActionPreference = 'Continue'
# Generate a non-terminating error and continue processing the script.
Write-Error -Message  'Test Error' ; Write-Host 'Hello World'
Write-Error: Test Error
Hello World

Det här exemplet visar $ErrorActionPreference standardvärdet , Inquire. Ett fel genereras och en uppmaning om åtgärd visas.

# Change the ErrorActionPreference to 'Inquire'
$ErrorActionPreference = 'Inquire'
Write-Error -Message 'Test Error' ; Write-Host 'Hello World'
Confirm
Test Error
[Y] Yes  [A] Yes to All  [H] Halt Command  [S] Suspend  [?] Help (default is "Y"):

I det $ErrorActionPreference här exemplet visas inställningen TystFortsätt. Felmeddelandet ignoreras.

# Change the ErrorActionPreference to 'SilentlyContinue'
$ErrorActionPreference = 'SilentlyContinue'
# Generate an error message
Write-Error -Message 'Test Error' ; Write-Host 'Hello World'
# Error message is suppressed and script continues processing
Hello World

I det här exemplet visas inställd på $ErrorActionPreferenceStoppa. Den visar också det extra objekt som genererats till variabeln $Error .

# Change the ErrorActionPreference to 'Stop'
$ErrorActionPreference = 'Stop'
# Error message is is generated and script stops processing
Write-Error -Message 'Test Error' ; Write-Host 'Hello World'

# Show the ActionPreferenceStopException and the error generated
$Error[0]
$Error[1]
Write-Error: Test Error

ErrorRecord                 : Test Error
WasThrownFromThrowStatement : False
TargetSite                  : System.Collections.ObjectModel.Collection`1[System.Management.Automation.PSObject]
                              Invoke(System.Collections.IEnumerable)
StackTrace                  :    at System.Management.Automation.Runspaces.PipelineBase.Invoke(IEnumerable input)
                                 at Microsoft.PowerShell.Executor.ExecuteCommandHelper(Pipeline tempPipeline,
                              Exception& exceptionThrown, ExecutionOptions options)
Message                     : The running command stopped because the preference variable "ErrorActionPreference" or
                              common parameter is set to Stop: Test Error
Data                        : {System.Management.Automation.Interpreter.InterpretedFrameInfo}
InnerException              :
HelpLink                    :
Source                      : System.Management.Automation
HResult                     : -2146233087

Write-Error: Test Error

$ErrorView

Avgör visningsformatet för felmeddelanden i PowerShell.

Variabeln $ErrorView tar ett av uppräkningsvärdena ErrorView : NormalView, CategoryView eller ConciseView.

Giltiga värden är följande:

  • ConciseView: (Standard) Ger ett kortfattat felmeddelande och en refaktoriseringsvy för avancerade modulbyggare. Från och med PowerShell 7.2 är utdata ett felmeddelande om felet kommer från kommandoraden eller en skriptmodul. Annars får du ett felmeddelande med flera rader som innehåller felet och en pekare till felet som visar var det inträffar på den raden. Om terminalen stöder virtuell terminal används ANSI-färgkoder för att ge färgaccent. Accentfärgen kan ändras på $Host.PrivateData.ErrorAccentColor. Använd Get-Error cmdlet för en omfattande detaljerad vy över det fullständigt kvalificerade felet, inklusive inre undantag.

    ConciseView lades till i PowerShell 7.

  • NormalView: En detaljerad vy som utformats för de flesta användare. Består av en beskrivning av felet och namnet på det objekt som ingår i felet.

  • CategoryView: En kortfattad, strukturerad vy utformad för produktionsmiljöer. Formatet är följande:

    {Category}: ({TargetName}:{TargetType}):[{Activity}], {Reason}

Mer information om fälten i CategoryView finns i klassen ErrorCategoryInfo .

Exempel

Det här exemplet visar hur ett fel visas när värdet $ErrorView för är standardvärdet ConciseView. Get-ChildItem används för att hitta en katalog som inte finns.

Get-ChildItem -path 'C:\NoRealDirectory'
Get-ChildItem: Cannot find path 'C:\NoRealDirectory' because it does not exist.

Det här exemplet visar hur ett fel visas när värdet $ErrorView för är standardvärdet ConciseView. Script.ps1 körs och genererar ett fel från Get-Item -instruktionen.

./Script.ps1
Get-Item: C:\Script.ps1
Line |
  11 | Get-Item -Path .\stuff
     | ^ Cannot find path 'C:\demo\stuff' because it does not exist.

Det här exemplet visar hur ett fel visas när värdet $ErrorView för ändras till NormalView. Get-ChildItem används för att hitta en obefintlig fil.

Get-ChildItem -Path C:\nofile.txt
Get-ChildItem : Cannot find path 'C:\nofile.txt' because it does not exist.
At line:1 char:1
+ Get-ChildItem -Path C:\nofile.txt

Det här exemplet visar hur samma fel visas när värdet $ErrorView för ändras till CategoryView.

$ErrorView = "CategoryView"
Get-ChildItem -Path C:\nofile.txt
ObjectNotFound: (C:\nofile.txt:String) [Get-ChildItem], ItemNotFoundException

Det här exemplet visar att värdet för $ErrorView endast påverkar felvisningen. Den ändrar inte strukturen för felobjektet som lagras i den $Error automatiska variabeln. Information om den $Error automatiska variabeln finns i about_automatic_variables.

Följande kommando tar errorRecord-objektet som är associerat med det senaste felet i felmatrisen, element 0 och formaterar alla felobjektets egenskaper i en lista.

$Error[0] | Format-List -Property * -Force
PSMessageDetails      :
Exception             : System.Management.Automation.ItemNotFoundException:
                          Cannot find path 'C:\nofile.txt' because it does
                          not exist.
                        at System.Management.Automation.SessionStateInternal.
                          GetChildItems(String path, Boolean recurse, UInt32
                          depth, CmdletProviderContext context)
                        at System.Management.Automation.ChildItemCmdlet
                          ProviderIntrinsics.Get(String path, Boolean
                          recurse, UInt32 depth, CmdletProviderContext context)
                        at Microsoft.PowerShell.Commands.GetChildItemCommand.
                          ProcessRecord()
TargetObject          : C:\nofile.txt
CategoryInfo          : ObjectNotFound: (C:\nofile.txt:String) [Get-ChildItem],
                          ItemNotFoundException
FullyQualifiedErrorId : PathNotFound,
                          Microsoft.PowerShell.Commands.GetChildItemCommand
ErrorDetails          :
InvocationInfo        : System.Management.Automation.InvocationInfo
ScriptStackTrace      : at <ScriptBlock>, <No file>: line 1
PipelineIterationInfo : {0, 1}

$FormatEnumerationLimit

Avgör hur många uppräknade objekt som ingår i en visning. Den här variabeln påverkar inte de underliggande objekten, utan bara visningen. När värdet $FormatEnumerationLimit för är färre än antalet uppräknade objekt lägger PowerShell till en ellips (...) för att visa objekt som inte visas.

Giltiga värden: Heltal (Int32)

Standardvärde: 4

Exempel

Det här exemplet visar hur du använder variabeln $FormatEnumerationLimit för att förbättra visningen av uppräknade objekt.

Kommandot i det här exemplet genererar en tabell som visar alla tjänster som körs på datorn i två grupper: en för att köra tjänster och en för stoppade tjänster. Den använder ett Get-Service kommando för att hämta alla tjänster och skickar sedan resultaten via pipelinen till cmdleten Group-Object , som grupperar resultatet efter tjänststatus.

Resultatet är en tabell som visar statusen i kolumnen Namn och processerna i kolumnen Grupp . Om du vill ändra kolumnetiketterna använder du en hash-tabell, se about_Hash_Tables. Mer information finns i exemplen i Format-Table.

Hitta det aktuella värdet för $FormatEnumerationLimit.

$FormatEnumerationLimit
4

Visa en lista över alla tjänster grupperade efter Status. Det finns högst fyra tjänster i kolumnen Grupp för varje status eftersom $FormatEnumerationLimit har värdet 4.

Get-Service | Group-Object -Property Status
Count  Name       Group
-----  ----       -----
60     Running    {AdtAgent, ALG, Ati HotKey Poller, AudioSrv...}
41     Stopped    {Alerter, AppMgmt, aspnet_state, ATI Smart...}

Öka värdet $FormatEnumerationLimit för till 1 000 om du vill öka antalet objekt i listan. Använd Get-Service och Group-Object för att visa tjänsterna.

$FormatEnumerationLimit = 1000
Get-Service | Group-Object -Property Status
Count  Name       Group
-----  ----       -----
60     Running    {AdtAgent, ALG, Ati HotKey Poller, AudioSrv, BITS, CcmExec...
41     Stopped    {Alerter, AppMgmt, aspnet_state, ATI Smart, Browser, CiSvc...

Använd Format-Table med parametern Wrap för att visa listan över tjänster.

Get-Service | Group-Object -Property Status | Format-Table -Wrap
Count  Name       Group
-----  ----       -----
60     Running    {AdtAgent, ALG, Ati HotKey Poller, AudioSrv, BITS, CcmExec,
                  Client for NFS, CryptSvc, DcomLaunch, Dhcp, dmserver,
                  Dnscache, ERSvc, Eventlog, EventSystem, FwcAgent, helpsvc,
                  HidServ, IISADMIN, InoRPC, InoRT, InoTask, lanmanserver,
                  lanmanworkstation, LmHosts, MDM, Netlogon, Netman, Nla,
                  NtLmSsp, PlugPlay, PolicyAgent, ProtectedStorage, RasMan,
                  RemoteRegistry, RpcSs, SamSs, Schedule, seclogon, SENS,
                  SharedAccess, ShellHWDetection, SMT PSVC, Spooler,
                  srservice, SSDPSRV, stisvc, TapiSrv, TermService, Themes,
                  TrkWks, UMWdf, W32Time, W3SVC, WebClient, winmgmt, wscsvc,
                  wuauserv, WZCSVC, zzInterix}

41     Stopped    {Alerter, AppMgmt, aspnet_state, ATI Smart, Browser, CiSvc,
                  ClipSrv, clr_optimization_v2.0.50727_32, COMSysApp,
                  CronService, dmadmin, FastUserSwitchingCompatibility,
                  HTTPFilter, ImapiService, Mapsvc, Messenger, mnmsrvc,
                  MSDTC, MSIServer, msvsmon80, NetDDE, NetDDEdsdm, NtmsSvc,
                  NVSvc, ose, RasAuto, RDSessMgr, RemoteAccess, RpcLocator,
                  SCardSvr, SwPrv, SysmonLog, TlntSvr, upnphost, UPS, VSS,
                  WmdmPmSN, Wmi, WmiApSrv, xmlprov}

$InformationPreference

Med $InformationPreference variabeln kan du ange inställningar för informationsströmmar som du vill ska visas för användarna. Mer specifikt informationsmeddelanden som du har lagt till i kommandon eller skript genom att lägga till cmdleten Write-Information . Om parametern InformationAction används åsidosätter dess värde variabelns $InformationPreference värde. Write-Information introducerades i PowerShell 5.0.

Variabeln $InformationPreference tar en av deActionPreference uppräkningsvärden: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend eller Break.

Giltiga värden är följande:

  • Stoppa: Stoppar ett kommando eller skript vid en förekomst av Write-Information kommandot.
  • Fråga: Visar det informationsmeddelande som du anger i ett Write-Information kommando och frågar sedan om du vill fortsätta.
  • Fortsätt: Visar informationsmeddelandet och fortsätter att köras.
  • Paus är endast tillgängligt för arbetsflöden som inte stöds i PowerShell 6 och senare.
  • TystFortsätt: (Standard) Ingen effekt. Informationsmeddelandena visas inte och skriptet fortsätter utan avbrott.

$Log*Händelse

Log*Händelseinställningsvariabler avgör vilka typer av händelser som skrivs till PowerShell-händelseloggen i Loggboken. Som standard loggas endast motor- och providerhändelser. Men du kan använda log*händelseinställningsvariablerna för att anpassa loggen, till exempel loggning av händelser om kommandon.

Log*Händelseinställningsvariablerna är följande:

  • $LogCommandHealthEvent: Loggar fel och undantag vid initiering och bearbetning av kommandon. Standardvärdet är $false (loggas inte).
  • $LogCommandLifecycleEvent: Loggar start och stopp av kommandon och kommandopipelines och säkerhetsfel i kommandoidentifiering. Standardvärdet är $false (loggas inte).
  • $LogEngineHealthEvent: Loggar fel och fel i sessioner. Standardvärdet är $true (loggat).
  • $LogEngineLifecycleEvent: Loggar öppnandet och stängningen av sessioner. Standardvärdet är $true (loggat).
  • $LogProviderHealthEvent: Loggar providerfel, till exempel läs- och skrivfel, uppslagsfel och anropsfel. Standardvärdet är $true (loggat).
  • $LogProviderLifecycleEvent: Loggar som lägger till och tar bort PowerShell-providers. Standardvärdet är $true (loggat). Information om PowerShell-leverantörer finns i about_Providers.

Om du vill aktivera en Log*-händelse skriver du variabeln med värdet $true, till exempel:

$LogCommandLifeCycleEvent = $true

Om du vill inaktivera en händelsetyp skriver du variabeln med värdet $false, till exempel:

$LogCommandLifeCycleEvent = $false

De händelser som du aktiverar gäller endast för den aktuella PowerShell-konsolen. Om du vill tillämpa konfigurationen på alla konsoler sparar du variabelinställningarna i PowerShell-profilen. Mer information finns i about_Profiles.

$MaximumHistoryCount

Avgör hur många kommandon som sparas i kommandohistoriken för den aktuella sessionen.

Giltiga värden: 1–32768 (Int32)

Standard: 4096

Om du vill ta reda på antalet kommandon som sparats i kommandohistoriken skriver du:

(Get-History).Count

Om du vill se de kommandon som sparats i sessionshistoriken använder du cmdleten Get-History . Mer information finns i about_History.

$OFS

Avgränsaren för utdatafält (OFS) anger det tecken som separerar elementen i en matris som konverteras till en sträng.

Giltiga värden: Valfri sträng.

Standard: Blanksteg

Som standard finns inte variabeln $OFS och utdatafilens avgränsare är ett blanksteg, men du kan lägga till den här variabeln och ange den till valfri sträng. Du kan ändra värdet $OFS för i sessionen genom att $OFS="<value>"skriva .

Anteckning

Om du förväntar dig standardvärdet för ett blanksteg (" ") i skript-, modul- eller konfigurationsutdata bör du vara försiktig med att $OFS standardvärdet inte har ändrats någon annanstans i koden.

Exempel

Det här exemplet visar att ett blanksteg används för att separera värdena när en matris konverteras till en sträng. I det här fallet lagras en matris med heltal i en variabel och sedan omvandlas variabeln som en sträng.

$array = 1,2,3,4
[string]$array
1 2 3 4

Om du vill ändra avgränsaren lägger du till variabeln $OFS genom att tilldela den ett värde. Variabeln måste ha namnet $OFS.

$OFS = "+"
[string]$array
1+2+3+4

Om du vill återställa standardbeteendet kan du tilldela ett blanksteg (" ") till värdet $OFS för eller ta bort variabeln. Följande kommandon tar bort variabeln och kontrollerar sedan att avgränsaren är ett blanksteg.

Remove-Variable OFS
[string]$array
1 2 3 4

$OutputEncoding

Avgör vilken teckenkodningsmetod som PowerShell använder när den skickar text till andra program.

Om ett program till exempel returnerar Unicode-strängar till PowerShell kan du behöva ändra värdet till UnicodeEncoding för att skicka tecknen korrekt.

Giltiga värden är följande: Objekt som härleds från en kodningsklass, till exempel ASCIIEncoding, UTF7Encoding, UTF8Encoding, UTF32Encoding och UnicodeEncoding.

Standard: UTF8Kodningsobjekt .

Exempel

Det här exemplet visar hur du får Windows findstr.exe-kommandot att fungera i PowerShell på en dator som är lokaliserad för ett språk som använder Unicode-tecken, till exempel kinesiska.

Det första kommandot hittar värdet $OutputEncodingför . Eftersom värdet är ett kodningsobjekt visar du bara dess egenskap EncodingName .

$OutputEncoding.EncodingName

I det här exemplet används ett findstr.exe kommando för att söka efter två kinesiska tecken som finns i Test.txt filen. När det här findstr.exe kommandot körs i Kommandotolken i Windows (cmd.exe) hittar findstr.exe tecknen i textfilen. Men när du kör samma findstr.exe kommando i PowerShell, hittas inte tecknen eftersom PowerShell skickar dem till findstr.exe i ASCII-text i stället för i Unicode-text.

findstr <Unicode-characters>

Om du vill att kommandot ska fungera i PowerShell anger du värdet $OutputEncoding för till värdet för outputEncoding-egenskapen för konsolen, som baseras på de nationella inställningar som valts för Windows. Eftersom OutputEncoding är en statisk egenskap för konsolen använder du dubbelkolon (::) i kommandot .

$OutputEncoding = [console]::OutputEncoding
$OutputEncoding.EncodingName
OEM United States

Efter kodningsändringen hittar kommandotfindstr.exe Unicode-tecknen.

findstr <Unicode-characters>
test.txt:         <Unicode-characters>

$ProgressPreference

Avgör hur PowerShell svarar på förloppsuppdateringar som genereras av ett skript, en cmdlet eller en provider, till exempel förloppsindikatorerna som genereras av cmdleten Write-Progress . Cmdleten Write-Progress skapar förloppsindikatorer som visar status för ett kommando.

Variabeln $ProgressPreference tar en av deActionPreference uppräkningsvärden: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend eller Break.

Giltiga värden är följande:

  • Stopp: Visar inte förloppsindikatorn. I stället visas ett felmeddelande och slutar köras.
  • Fråga: Visar inte förloppsindikatorn. Frågar efter behörighet att fortsätta. Om du svarar med Y eller Avisas förloppsindikatorn.
  • Fortsätt: (Standard) Visar förloppsindikatorn och fortsätter körningen.
  • TystFortsätt: Kör kommandot men visar inte förloppsindikatorn.

$PSDefaultParameterValues

Anger standardvärden för parametrarna för cmdletar och avancerade funktioner. Värdet för $PSDefaultParameterValues är en hash-tabell där nyckeln består av cmdletens namn och parameternamn avgränsade med ett kolon (:). Värdet är ett anpassat standardvärde som du anger.

$PSDefaultParameterValues introducerades i PowerShell 3.0.

Mer information om den här inställningsvariabeln finns i about_Parameters_Default_Values.

$PSEmailServer

Anger standardservern för e-post som används för att skicka e-postmeddelanden. Den här inställningsvariabeln används av cmdletar som skickar e-post, till exempel cmdleten Send-MailMessage .

$PSModuleAutoloadingPreference

Aktiverar och inaktiverar automatisk import av moduler i sessionen. Allt är standard. Om du vill importera en modul hämtar eller använder du valfritt kommando i modulen. Använd till exempel Get-Command. Variabeln $PSModuleAutoloadingPreference finns inte som standard. Standardbeteendet när variabeln inte har definierats är samma som $PSModuleAutoloadingPreference = 'All'.

Oavsett variabelns värde kan du använda Import-Module för att importera en modul.

Variabeln $PSModuleAutoloadingPreference tar en av dePSModuleAutoLoadingPreference uppräkningsvärden: None, ModuleQualified eller All.

Giltiga värden är:

  • Alla: Moduler importeras automatiskt vid första användning.
  • ModuleQualified: Moduler importeras endast automatiskt när en användare använder det modulkvalificerade namnet på ett kommando i modulen. Om användaren till exempel skriver MyModule\MyCommandimporterar PowerShell MyModule-modulen .
  • Ingen: Automatisk import av moduler inaktiveras i sessionen. Om du vill importera en modul använder du cmdleten Import-Module .

Mer information om automatisk import av moduler finns i about_Modules.

$PSNativeCommandArgumentPassing

Anteckning

$PSNativeCommandArgumentPassing är endast tillgängligt när den PSNativeCommandArgumentPassing experimentella funktionen är aktiverad. Mer information finns i about_Experimental_Features och Använda experimentella funktioner.

När den här experimentella funktionen är aktiverad använder ArgumentList PowerShell -egenskapen StartProcessInfo för objektet i stället för vår nuvarande mekanism för att rekonstruera en sträng när du anropar en intern körbar fil.

Varning

Det nya beteendet är en icke-bakåtkompatibel ändring från det aktuella beteendet. Detta kan bryta skript och automatisering som kringgår de olika problemen vid anrop av interna program. Tidigare måste citattecken vara undantagna och det går inte att ange tomma argument till ett internt program.

Den här funktionen lägger till en ny automatisk variabel $PSNativeCommandArgumentPassing som gör att du kan välja beteende vid körning. Giltiga värden är Legacy, Standardoch Windows. Legacy är det historiska beteendet. Standardvärdet när den experimentella funktionen är aktiverad är det nya Standard beteendet.

När inställningsvariabeln är inställd Windows på anrop av följande filer använder du automatiskt formatargumentet Legacy som skickas.

  • cmd.exe
  • cscript.exe
  • wscript.exe
  • slutar med .bat
  • slutar med .cmd
  • slutar med .js
  • slutar med .vbs
  • slutar med .wsf

Om är inställt på $PSNativeArgumentPassing antingen Legacy eller Standardutförs inte kontrollen av dessa filer. Standardbeteendet är plattformsspecifikt. På Windows-plattformar är Windows standardinställningen och icke-Windows-plattformar är Standard.

Nya beteenden som görs tillgängliga genom den här ändringen:

  • Strängliteraler eller expanderbara strängar med inbäddade citattecken bevaras nu:

    PS > $a = 'a" "b'
    PS > $PSNativeCommandArgumentPassing = "Legacy"
    PS > testexe -echoargs $a 'a" "b' a" "b
    Arg 0 is <a b>
    Arg 1 is <a b>
    Arg 2 is <a b>
    PS > $PSNativeCommandArgumentPassing = "Standard"
    PS > testexe -echoargs $a 'a" "b' a" "b
    Arg 0 is <a" "b>
    Arg 1 is <a" "b>
    Arg 2 is <a b>
    
  • Tomma strängar som argument bevaras nu:

    PS>  $PSNativeCommandArgumentPassing = "Legacy"
    PS> testexe -echoargs '' a b ''
    Arg 0 is <a>
    Arg 1 is <b>
    PS> $PSNativeCommandArgumentPassing = "Standard"
    PS> testexe -echoargs '' a b ''
    Arg 0 is <>
    Arg 1 is <a>
    Arg 2 is <b>
    Arg 3 is <>
    

Det nya beteendet ändrar inte anrop som ser ut så här:

PS> $PSNativeCommandArgumentPassing = "Legacy"
PS> testexe -echoargs -k com:port=\\devbox\pipe\debug,pipe,resets=0,reconnect
Arg 0 is <-k>
Arg 1 is <com:port=\\devbox\pipe\debug,pipe,resets=0,reconnect>
PS> $PSNativeCommandArgumentPassing = "Standard"
PS> testexe -echoargs -k com:port=\\devbox\pipe\debug,pipe,resets=0,reconnect
Arg 0 is <-k>
Arg 1 is <com:port=\\devbox\pipe\debug,pipe,resets=0,reconnect>

Dessutom tillhandahålls nu parameterspårning, vilket Trace-Command ger användbar information för felsökning.

PS> $PSNativeCommandArgumentPassing = "Legacy"
PS> trace-command -PSHOST -Name ParameterBinding { testexe -echoargs $a 'a" "b' a" "b }
DEBUG: 2021-02-01 17:19:53.6438 ParameterBinding Information: 0 : BIND NAMED native application line args [/Users/james/src/github/forks/jameswtruher/PowerShell-1/test/tools/TestExe/bin/testexe]
DEBUG: 2021-02-01 17:19:53.6440 ParameterBinding Information: 0 :     BIND argument [-echoargs a" "b a" "b "a b"]
DEBUG: 2021-02-01 17:19:53.6522 ParameterBinding Information: 0 : CALLING BeginProcessing
Arg 0 is <a b>
Arg 1 is <a b>
Arg 2 is <a b>
PS> $PSNativeCommandArgumentPassing = "Standard"
PS> trace-command -PSHOST -Name ParameterBinding { testexe -echoargs $a 'a" "b' a" "b }
DEBUG: 2021-02-01 17:20:01.9829 ParameterBinding Information: 0 : BIND NAMED native application line args [/Users/james/src/github/forks/jameswtruher/PowerShell-1/test/tools/TestExe/bin/testexe]
DEBUG: 2021-02-01 17:20:01.9829 ParameterBinding Information: 0 :     BIND cmd line arg [-echoargs] to position [0]
DEBUG: 2021-02-01 17:20:01.9830 ParameterBinding Information: 0 :     BIND cmd line arg [a" "b] to position [1]
DEBUG: 2021-02-01 17:20:01.9830 ParameterBinding Information: 0 :     BIND cmd line arg [a" "b] to position [2]
DEBUG: 2021-02-01 17:20:01.9831 ParameterBinding Information: 0 :     BIND cmd line arg [a b] to position [3]
DEBUG: 2021-02-01 17:20:01.9908 ParameterBinding Information: 0 : CALLING BeginProcessing
Arg 0 is <a" "b>
Arg 1 is <a" "b>
Arg 2 is <a b>

$PSNativeCommandUseErrorActionPreference

Den här inställningsvariabeln är endast tillgänglig i PowerShell 7.3 med PSNativeCommandErrorActionPreference funktionen aktiverad.

När den här funktionen är aktiverad utfärdar interna kommandon med slutkoder som inte är noll fel beroende på $ErrorActionPreference när $PSNativeCommandUseErrorActionPreference är $true.

Mer information finns i PSNativeCommandErrorActionPreference.

$PSSessionApplicationName

Anger standardprogramnamnet för ett fjärrkommando som använder WS-Management-teknik (Web Services for Management). Mer information finns i Om Fjärrhantering i Windows.

Systemets standardprogramnamn är WSMAN, men du kan använda den här inställningsvariabeln för att ändra standardinställningen.

Programnamnet är den sista noden i en anslutnings-URI. Programnamnet i följande exempel-URI är WSMANtill exempel .

http://Server01:8080/WSMAN

Standardprogrammets namn används när fjärrkommandot inte anger någon anslutnings-URI eller ett programnamn.

WinRM-tjänsten använder programnamnet för att välja en lyssnare som ska betjäna anslutningsbegäran. Parameterns värde ska matcha värdet för egenskapen URLPrefix för en lyssnare på fjärrdatorn.

Om du vill åsidosätta systemstandarden och värdet för den här variabeln och välja ett annat programnamn för en viss session använder du parametrarna ConnectionURI eller ApplicationName för cmdletarna New-PSSession, Enter-PSSession eller Invoke-Command .

Inställningsvariabeln $PSSessionApplicationName anges på den lokala datorn, men den anger en lyssnare på fjärrdatorn. Om det programnamn som du anger inte finns på fjärrdatorn misslyckas kommandot för att upprätta sessionen.

$PSSessionConfigurationName

Anger standardkonfigurationen för sessioner som används för PSSessioner som skapats i den aktuella sessionen.

Den här inställningsvariabeln anges på den lokala datorn, men den anger en sessionskonfiguration som finns på fjärrdatorn.

Värdet för variabeln $PSSessionConfigurationName är en fullständigt kvalificerad resurs-URI.

Standardvärdet http://schemas.microsoft.com/PowerShell/microsoft.PowerShell anger Microsoft.PowerShell-sessionskonfigurationen på fjärrdatorn.

Om du bara anger ett konfigurationsnamn läggs följande schema-URI till:

http://schemas.microsoft.com/PowerShell/

Du kan åsidosätta standardinställningen och välja en annan sessionskonfiguration för en viss session med hjälp av parametern ConfigurationName för New-PSSessioncmdletarna , Enter-PSSessioneller Invoke-Command .

Du kan ändra värdet för den här variabeln när som helst. När du gör det måste du komma ihåg att sessionskonfigurationen som du väljer måste finnas på fjärrdatorn. Om den inte gör det misslyckas kommandot för att skapa en session som använder sessionskonfigurationen.

Den här inställningsvariabeln avgör inte vilka lokala sessionskonfigurationer som används när fjärranvändare skapar en session som ansluter till den här datorn. Du kan dock använda behörigheterna för de lokala sessionskonfigurationerna för att avgöra vilka användare som kan använda dem.

$PSSessionOption

Upprättar standardvärdena för avancerade användaralternativ i en fjärrsession. Dessa alternativinställningar åsidosätter systemets standardvärden för sessionsalternativ.

Variabeln $PSSessionOption innehåller ett PSSessionOption-objekt . Mer information finns i System.Management.Automation.Remoting.PSSessionOption. Varje egenskap för objektet representerar ett sessionsalternativ. Egenskapen NoCompression omvandlar till exempel datakomprimering under sessionen.

Som standard innehåller variabeln $PSSessionOption ett PSSessionOption-objekt med standardvärdena för alla alternativ, enligt nedan.

MaximumConnectionRedirectionCount : 5
NoCompression                     : False
NoMachineProfile                  : False
ProxyAccessType                   : None
ProxyAuthentication               : Negotiate
ProxyCredential                   :
SkipCACheck                       : False
SkipCNCheck                       : False
SkipRevocationCheck               : False
OperationTimeout                  : 00:03:00
NoEncryption                      : False
UseUTF16                          : False
IncludePortInSPN                  : False
OutputBufferingMode               : None
Culture                           :
UICulture                         :
MaximumReceivedDataSizePerCommand :
MaximumReceivedObjectSize         : 209715200
ApplicationArguments              :
OpenTimeout                       : 00:03:00
CancelTimeout                     : 00:01:00
IdleTimeout                       : -00:00:00.0010000

Beskrivningar av dessa alternativ och mer information finns i New-PSSessionOption. Mer information om fjärrkommandon och sessioner finns i about_Remote och about_PSSessions.

Om du vill ändra värdet för $PSSessionOption inställningsvariabeln använder du cmdleten New-PSSessionOption för att skapa ett PSSessionOption-objekt med de alternativvärden som du föredrar. Spara utdata i en variabel med namnet $PSSessionOption.

$PSSessionOption = New-PSSessionOption -NoCompression

Om du vill använda inställningsvariabeln $PSSessionOption i varje PowerShell-session lägger du till ett New-PSSessionOption kommando som skapar variabeln $PSSessionOption i din PowerShell-profil. Mer information finns i about_Profiles.

Du kan ange anpassade alternativ för en viss fjärrsession. De alternativ som du anger har företräde framför systemets standardvärden och värdet för inställningsvariabeln $PSSessionOption .

Om du vill ange anpassade sessionsalternativ använder du cmdleten New-PSSessionOption för att skapa ett PSSessionOption-objekt . Använd sedan PSSessionOption-objektet som värdet för parametern SessionOption i cmdletar som skapar en session, till New-PSSessionexempel , Enter-PSSessionoch Invoke-Command.

$PSStyle

Från och med PowerShell 7.2 kan du nu komma åt den $PSStyle automatiska variabeln för att visa och ändra återgivningen av ANSI-strängutdata. Variabeln innehåller följande egenskaper:

  • Återställ – Inaktiverar alla dekorationer
  • Blinka - aktiverar blinkning
  • BlinkOff - inaktiverar blinkning
  • Fet - aktiverar fetstil
  • BoldOff – inaktiverar fetstil
  • Dold - aktiverar dold
  • HiddenOff - stänger av dold
  • Omvänd - aktiverar omvänt
  • ReverseOff – inaktiverar omvänt
  • Kursiv stil – Aktiverar kursiv stil
  • Kursiv av - Inaktiverar kursiv stil
  • Understrykning – aktiverar understrykning
  • UnderlineOff – inaktiverar understrykning
  • OutputRendering – Kontroll när utdatarendering används
  • Bakgrund – Kapslat objekt för att styra bakgrundsfärgning
  • Förgrund – Kapslat objekt för att styra förgrundsfärgning
  • Formatering – kapslat objekt som styr standardformatering för utdataströmmar
  • Förlopp – Kapslat objekt som styr återgivningen av förloppsstaplar
  • FileInfo – (experimentellt) kapslat objekt för att styra färgning av FileInfo-objekt .

Basmedlemmarna returnerar strängar av ANSI-escapesekvenser som mappats till deras namn. Värdena kan anges för att tillåta anpassning. Du kan till exempel ändra fetstil till understruken. Egenskapsnamnen gör det enklare för dig att skapa dekorerade strängar med tabbavslut:

"$($PSStyle.Background.BrightCyan)Power$($PSStyle.Underline)$($PSStyle.Bold)Shell$($PSStyle.Reset)"

Följande medlemmar styr hur eller när ANSI-formatering används:

  • $PSStyle.OutputRendering är en System.Management.Automation.OutputRendering uppräkning med värdena:

    • ANSI: Det här är standardbeteendet. ANSI skickas alltid i befintligt namn.

      Viktigt

      Du bör använda ANSI-läge när du omdirigerar utdata till en fil eller pipelinen som ska köras nedströms. Detta säkerställer att utdata inte ändras. Om du använder något annat läge ändras utdata genom att ta bort ANSI-escape-sekvenser, vilket kan ändra körningsbeteendet.

    • Klartext: ANSI-escapesekvenser tas alltid bort så att det bara är oformaterad text.

    • Värd: ANSI-escape-sekvenserna tas bort i omdirigerade eller pipade utdata.

  • $PSStyle.Background Medlemmarna och $PSStyle.Foreground är strängar som innehåller ANSI-escape-sekvenserna för de 16 standardkonsolfärgerna.

    • Svart
    • BrightBlack
    • Vit
    • BrightWhite
    • Red
    • BrightRed
    • Magenta
    • BrightMagenta
    • Blue
    • BrightBlue
    • Cyan
    • BrightCyan
    • Green
    • BrightGreen
    • Gul
    • BrightYellow

    Värdena kan anges och kan innehålla valfritt antal ANSI-escape-sekvenser. Det finns också en FromRgb() metod för att ange 24-bitars färg. Det finns två sätt att anropa FromRgb() metoden.

    • string FromRgb(byte red, byte green, byte blue)
    • sträng FromRgb(int rgb)

    Något av följande exempel anger bakgrundsfärgen till 24-bitarsfärgen Beige.

    $PSStyle.Background.FromRgb(245, 245, 220)
    $PSStyle.Background.FromRgb(0xf5f5dc)
    
  • $PSStyle.Formatting är ett kapslat objekt för att styra standardformatering av felsöknings-, fel-, utförliga och varningsmeddelanden. Du kan också styra attribut som fetstil och understrykning. Den ersätter $Host.PrivateData som ett sätt att hantera färger för formateringsrendering. $Host.PrivateData fortsätter att finnas för bakåtkompatibilitet men är inte ansluten till $PSStyle.Formatting.

  • $PSStyle.Progress gör att du kan styra återgivning av förloppsvyfält.

    • Format – En ANSI-sträng som anger återgivningsformatet.
    • MaxWidth – Anger vyns maximala bredd. Ange till 0 för konsolbredd. Standardvärdet är 120
    • Visa – en uppräkning med värden och MinimalClassic. Classic är den befintliga renderingen utan ändringar. Minimal är en minimal återgivning med en rad. Minimal används som standard.
    • UseOSCIndicator – Standardvärden för $false. Ange detta till $true för terminaler som stöder OSC-indikatorer.

    Anteckning

    Om värden inte stöder virtuell terminal $PSStyle.Progress.View anges automatiskt till Classic.

    I följande exempel anges återgivningsformatet till ett minimalt förloppsfält.

    $PSStyle.Progress.View = Minimal
    

$PSStyle.FileInfo är ett kapslat objekt för att styra färgning av FileInfo-objekt .

  • Katalog – Inbyggd medlem för att ange färg för kataloger
  • SymbolicLink – inbyggd medlem för att ange färg för symboliska länkar
  • Körbar – inbyggd medlem för att ange färg för körbara filer.
  • Tillägg – Använd den här medlemmen för att definiera färger för olika filnamnstillägg. Tilläggsmedlemmen innehåller tillägg för arkiv- och PowerShell-filer.

Anteckning

$PSStyle.FileInfo är endast tillgängligt när den PSAnsiRenderingFileInfo experimentella funktionen är aktiverad. Mer information finns i about_Experimental_Features och Använda experimentella funktioner.

$Transcript

Används av Start-Transcript för att ange namn och plats för avskriftsfilen. Om du inte anger något värde för parametern Start-TranscriptPath använder du sökvägen i värdet för den $Transcript globala variabeln. Om du inte har skapat den här variabeln Start-Transcript lagrar du avskrifterna i $Home\My Documents katalogen som \PowerShell_transcript.<time-stamp>.txt filer.

$VerbosePreference

Avgör hur PowerShell svarar på utförliga meddelanden som genereras av ett skript, en cmdlet eller en provider, till exempel de meddelanden som genereras av cmdleten Write-Verbose . Utförliga meddelanden beskriver de åtgärder som utförs för att köra ett kommando.

Som standard visas inte utförliga meddelanden, men du kan ändra det här beteendet genom att ändra värdet $VerbosePreferenceför .

Variabeln $VerbosePreference tar en avActionPreference uppräkningsvärden: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend eller Break.

Giltiga värden är följande:

  • Stopp: Visar det utförliga meddelandet och ett felmeddelande och slutar sedan att köras.
  • Fråga: Visar det utförliga meddelandet och visar sedan en fråga som frågar dig om du vill fortsätta.
  • Fortsätt: Visar det utförliga meddelandet och fortsätter sedan med körningen.
  • TystKontinu: (standard) Visar inte det utförliga meddelandet. Fortsätter att köras.

Du kan använda den utförliga gemensamma parametern för en cmdlet för att visa eller dölja utförliga meddelanden för ett visst kommando. Mer information finns i about_CommonParameters.

Exempel

De här exemplen visar effekten av de olika värdena $VerbosePreference för och den utförliga parametern för att åsidosätta inställningsvärdet.

Det här exemplet visar effekten av värdet SilentlyContinue , som är standardvärdet. Kommandot använder parametern Meddelande , men skriver inte ett meddelande till PowerShell-konsolen.

Write-Verbose -Message "Verbose message test."

När den utförliga parametern används skrivs meddelandet.

Write-Verbose -Message "Verbose message test." -Verbose
VERBOSE: Verbose message test.

Det här exemplet visar effekten av värdet Fortsätt . Variabeln $VerbosePreference är inställd på Fortsätt och meddelandet visas.

$VerbosePreference = "Continue"
Write-Verbose -Message "Verbose message test."
VERBOSE: Verbose message test.

I det här exemplet används parametern Verbose med värdet $false som åsidosätter värdet Fortsätt . Meddelandet visas inte.

Write-Verbose -Message "Verbose message test." -Verbose:$false

Det här exemplet visar effekten av värdet Stopp . Variabeln $VerbosePreference är inställd på Stoppa och meddelandet visas. Kommandot har stoppats.

$VerbosePreference = "Stop"
Write-Verbose -Message "Verbose message test."
VERBOSE: Verbose message test.
Write-Verbose : The running command stopped because the preference variable
  "VerbosePreference" or common parameter is set to Stop: Verbose message test.
At line:1 char:1
+ Write-Verbose -Message "Verbose message test."

I det här exemplet används den utförliga parametern med ett värde som $false åsidosätter värdet Stopp . Meddelandet visas inte.

Write-Verbose -Message "Verbose message test." -Verbose:$false

Det här exemplet visar effekten av inquire-värdet . Variabeln $VerbosePreference är inställd på Fråga. Meddelandet visas och användaren uppmanas att bekräfta.

$VerbosePreference = "Inquire"
Write-Verbose -Message "Verbose message test."
VERBOSE: Verbose message test.

Confirm
Continue with this operation?
[Y] Yes  [A] Yes to All  [H] Halt Command  [?] Help (default is "Y"):

I det här exemplet används verbose-parametern med ett värde $false som åsidosätter inquire-värdet . Användaren uppmanas inte och meddelandet visas inte.

Write-Verbose -Message "Verbose message test." -Verbose:$false

$WarningPreference

Avgör hur PowerShell svarar på varningsmeddelanden som genereras av ett skript, en cmdlet eller en provider, till exempel de meddelanden som genereras av cmdleten Write-Warning .

Som standard visas varningsmeddelanden och körningen fortsätter, men du kan ändra det här beteendet genom att ändra värdet $WarningPreferenceför .

Variabeln $WarningPreference tar en av deActionPreference uppräkningsvärden: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend eller Break.

Giltiga värden är följande:

  • Stopp: Visar varningsmeddelandet och ett felmeddelande och slutar sedan att köras.
  • Fråga: Visar varningsmeddelandet och frågar sedan efter behörighet att fortsätta.
  • Fortsätt: (Standard) Visar varningsmeddelandet och fortsätter sedan att köras.
  • TystFortsätt: Visar inte varningsmeddelandet. Fortsätter att köras.

Du kan använda den vanliga parametern WarningAction för en cmdlet för att avgöra hur PowerShell svarar på varningar från ett visst kommando. Mer information finns i about_CommonParameters.

Exempel

De här exemplen visar effekten av de olika värdena för $WarningPreference. Parametern WarningAction åsidosätter inställningsvärdet.

I det här exemplet visas effekten av standardvärdet Fortsätt.

$m = "This action can delete data."
Write-Warning -Message $m
WARNING: This action can delete data.

I det här exemplet används parametern WarningAction med värdet SilentlyContinue för att ignorera varningen. Meddelandet visas inte.

$m = "This action can delete data."
Write-Warning -Message $m -WarningAction SilentlyContinue

I det här exemplet ändras variabeln $WarningPreference till värdet SilentlyContinue . Meddelandet visas inte.

$WarningPreference = "SilentlyContinue"
$m = "This action can delete data."
Write-Warning -Message $m

I det här exemplet används parametern WarningAction för att stoppa när en varning genereras.

$m = "This action can delete data."
Write-Warning -Message $m -WarningAction Stop
WARNING: This action can delete data.
Write-Warning : The running command stopped because the preference variable
  "WarningPreference" or common parameter is set to Stop:
    This action can delete data.
At line:1 char:1
+ Write-Warning -Message $m -WarningAction Stop

I det här exemplet ändras variabeln $WarningPreference till inquire-värdet . Användaren uppmanas att bekräfta.

$WarningPreference = "Inquire"
$m = "This action can delete data."
Write-Warning -Message $m
WARNING: This action can delete data.

Confirm
Continue with this operation?
[Y] Yes  [A] Yes to All  [H] Halt Command  [?] Help (default is "Y"):

I det här exemplet används parametern WarningAction med värdet SilentlyContinue. Kommandot fortsätter att köras och inget meddelande visas.

$m = "This action can delete data."
Write-Warning -Message $m -WarningAction SilentlyContinue

I det $WarningPreference här exemplet ändras värdet till Stoppa.

$WarningPreference = "Stop"
$m = "This action can delete data."
Write-Warning -Message $m
WARNING: This action can delete data.
Write-Warning : The running command stopped because the preference variable
  "WarningPreference" or common parameter is set to Stop:
    This action can delete data.
At line:1 char:1
+ Write-Warning -Message $m

I det här exemplet används WarningAction med värdet Inquire . Användaren tillfrågas när en varning inträffar.

$m = "This action can delete data."
Write-Warning -Message $m -WarningAction Inquire
WARNING: This action can delete data.

Confirm
Continue with this operation?
[Y] Yes  [A] Yes to All  [H] Halt Command  [?] Help (default is "Y"):

$WhatIfPreference

Avgör om WhatIf aktiveras automatiskt för varje kommando som stöder det. När WhatIf är aktiverat rapporterar cmdleten den förväntade effekten av kommandot, men kör inte kommandot.

Giltiga värden är följande:

  • Falskt (0, inte aktiverat): (Standard) WhatIf aktiveras inte automatiskt. Om du vill aktivera det manuellt använder du cmdletens WhatIf-parameter .
  • Sant (1, aktiverat): WhatIf aktiveras automatiskt för alla kommandon som stöder det. Användare kan använda parametern WhatIf med värdet False för att inaktivera den manuellt, till exempel -WhatIf:$false.

Exempel

De här exemplen visar effekten av de olika värdena för $WhatIfPreference. De visar hur du använder parametern WhatIf för att åsidosätta inställningsvärdet för ett visst kommando.

Det här exemplet visar effekten av variabeln $WhatIfPreference inställd på standardvärdet False. Använd Get-ChildItem för att kontrollera att filen finns. Remove-Item tar bort filen. När filen har tagits bort kan du verifiera borttagningen med Get-ChildItem.

Get-ChildItem -Path .\test.txt
Remove-Item -Path ./test.txt
    Directory: C:\Test

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---           9/13/2019    10:53             10 test.txt
Get-ChildItem -Path .\test.txt
Get-ChildItem : Cannot find path 'C:\Test\test.txt' because it does not exist.
At line:1 char:1
+ Get-ChildItem -File test.txt

Det här exemplet visar effekten av att använda parametern WhatIf när värdet $WhatIfPreference för är False.

Kontrollera att filen finns.

Get-ChildItem -Path .\test2.txt
    Directory: C:\Test

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---           2/28/2019    17:06             12 test2.txt

Använd parametern WhatIf för att fastställa resultatet av att försöka ta bort filen.

Remove-Item -Path .\test2.txt -WhatIf
What if: Performing the operation "Remove File" on target "C:\Test\test2.txt".

Kontrollera att filen inte har tagits bort.

Get-ChildItem -Path .\test2.txt
    Directory: C:\Test

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---           2/28/2019    17:06             12 test2.txt

Det här exemplet visar effekten av variabeln $WhatIfPreference inställd på värdet True. När du använder Remove-Item för att ta bort en fil visas filens sökväg, men filen tas inte bort.

Försök att ta bort en fil. Ett meddelande visas om vad som skulle hända om Remove-Item den kördes, men filen tas inte bort.

$WhatIfPreference = "True"
Remove-Item -Path .\test2.txt
What if: Performing the operation "Remove File" on target "C:\Test\test2.txt".

Använd Get-ChildItem för att kontrollera att filen inte har tagits bort.

Get-ChildItem -Path .\test2.txt
    Directory: C:\Test

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---           2/28/2019    17:06             12 test2.txt

Det här exemplet visar hur du tar bort en fil när värdet $WhatIfPreference för är Sant. Den använder parametern WhatIf med värdet $false. Använd Get-ChildItem för att kontrollera att filen har tagits bort.

Remove-Item -Path .\test2.txt -WhatIf:$false
Get-ChildItem -Path .\test2.txt
Get-ChildItem : Cannot find path 'C:\Test\test2.txt' because it does not exist.
At line:1 char:1
+ Get-ChildItem -Path .\test2.txt

Följande är exempel på cmdleten Get-Process som inte stöder WhatIf och Stop-Process som stöder WhatIf. Variabelns $WhatIfPreference värde är True.

Get-Process stöder inte WhatIf. När kommandot körs visas Winword-processen .

Get-Process -Name Winword
 NPM(K)    PM(M)      WS(M)     CPU(s)      Id  SI ProcessName
 ------    -----      -----     ------      --  -- -----------
    130   119.84     173.38       8.39   15024   4 WINWORD

Stop-Process stöder WhatIf. Winword-processen stoppas inte.

Stop-Process -Name Winword
What if: Performing the operation "Stop-Process" on target "WINWORD (15024)".

Du kan åsidosätta Stop-ProcessWhatIf-beteendet med hjälp av parametern WhatIf med värdet $false. Winword-processen stoppas.

Stop-Process -Name Winword -WhatIf:$false

Om du vill kontrollera att Winword-processen har stoppats använder du Get-Process.

Get-Process -Name Winword
Get-Process : Cannot find a process with the name "Winword".
  Verify the process name and call the cmdlet again.
At line:1 char:1
+ Get-Process -Name Winword

Se även