about_Preference_Variables

Korte beschrijving

Variabelen die het gedrag van PowerShell aanpassen.

Lange beschrijving

PowerShell bevat een set variabelen waarmee u het gedrag ervan kunt aanpassen. Deze voorkeursvariabelen werken zoals de opties in systemen op basis van gui.

De voorkeursvariabelen zijn van invloed op de PowerShell-besturingsomgeving en alle opdrachten worden uitgevoerd in de omgeving. In veel gevallen hebben de cmdlets parameters die u kunt gebruiken om het voorkeursgedrag voor een specifieke opdracht te overschrijven.

De volgende tabel bevat de voorkeursvariabelen en hun standaardwaarden.

Variabele Standaardwaarde
$ConfirmPreference High
$DebugPreference SilentlyContinue
$ErrorActionPreference Continue
$ErrorView ConciseView
$FormatEnumerationLimit 4
$InformationPreference SilentlyContinue
$LogCommandHealthEvent $False (niet geregistreerd)
$LogCommandLifecycleEvent $False (niet geregistreerd)
$LogEngineHealthEvent $True (vastgelegd)
$LogEngineLifecycleEvent $True (vastgelegd)
$LogProviderLifecycleEvent $True (vastgelegd)
$LogProviderHealthEvent $True (vastgelegd)
$MaximumHistoryCount 4096
$OFS Spatieteken (" ")
$OutputEncoding UTF8Encoding Object
$ProgressPreference Continue
$PSDefaultParameterValues @{} (lege hashtabel)
$PSEmailServer $Null (geen)
$PSModuleAutoLoadingPreference All
$PSSessionApplicationName 'wsman'
$PSSessionConfigurationName 'http://schemas.microsoft.com/powershell/Microsoft.PowerShell'
$PSSessionOption PSSessionOption Object
$Transcript $Null (geen)
$VerbosePreference SilentlyContinue
$WarningPreference Continue
$WhatIfPreference $False

PowerShell bevat de volgende omgevingsvariabelen waarin gebruikersvoorkeuren worden opgeslagen. Zie voor meer informatie over deze omgevingsvariabelen about_Environment_Variables.

  • env:PSExecutionPolicyPreference
  • $env:PSModulePath

Notitie

Wijzigingen in voorkeursvariabele zijn alleen van kracht in scripts en functies als deze scripts of functies zijn gedefinieerd in hetzelfde bereik als het bereik waarin voorkeur is gebruikt. Zie voor meer informatie about_Scopes.

Werken met voorkeursvariabelen

In dit document worden alle voorkeursvariabelen beschreven.

Als u de huidige waarde van een specifieke voorkeursvariabele wilt weergeven, typt u de naam van de variabele. Met de volgende opdracht wordt bijvoorbeeld de waarde van $ConfirmPreference de variabele weergegeven.

 $ConfirmPreference
High

Als u de waarde van een variabele wilt wijzigen, gebruikt u een toewijzingsverklaring. Met de volgende instructie wordt bijvoorbeeld de waarde van $ConfirmPreference de parameter gewijzigd in Gemiddeld.

$ConfirmPreference = "Medium"

De waarden die u in stelt, zijn specifiek voor de huidige PowerShell-sessie. Als u variabelen effectief wilt maken in alle PowerShell-sessies, voegt u ze toe aan uw PowerShell-profiel. Zie voor meer informatie about_Profiles.

Op afstand werken

Wanneer u opdrachten op een externe computer uitvoeren, zijn de externe opdrachten alleen onderhevig aan de voorkeuren die zijn ingesteld in de PowerShell-client van de externe computer. Wanneer u bijvoorbeeld een externe opdracht hebt uitgevoerd, bepaalt de waarde van de variabele van de externe computer $DebugPreference hoe PowerShell reageert op het debuggen van berichten.

Zie voor meer informatie over externe opdrachten about_Remote.

$ConfirmPreference

Hiermee bepaalt u of PowerShell u automatisch om bevestiging vraagt voordat u een cmdlet of functie gaat uitvoeren.

De $ConfirmPreference variabele neemt een van de ConfirmImpact enumeratiewaarden: Hoog, Gemiddeld, Laag of Geen.

Cmdlets en functies worden toegewezen aan een risico van Hoog, Gemiddeld of Laag. Wanneer de waarde van de variabele kleiner is dan of gelijk is aan het risico dat is toegewezen aan een cmdlet of functie, wordt u in PowerShell automatisch om bevestiging gevraagd voordat u de cmdlet of $ConfirmPreference functie gaat uitvoeren.

Als de waarde van de variabele $ConfirmPreference Geen is, wordt u nooit automatisch door PowerShell gevraagd voordat u een cmdlet of functie gaat uitvoeren.

Als u het bevestigende gedrag voor alle cmdlets en functies in de sessie wilt wijzigen, wijzigt u de $ConfirmPreference waarde van de variabele.

Als u de voor één $ConfirmPreference opdracht wilt overschrijven, gebruikt u de parameter Confirm van een cmdlet of functie . Gebruik om bevestiging te vragen -Confirm. Gebruik om bevestiging te onderdrukken -Confirm:$false.

Geldige waarden van $ConfirmPreference:

  • Geen: PowerShell wordt niet automatisch gevraagd. Als u bevestiging van een bepaalde opdracht wilt aanvragen, gebruikt u de parameter Confirm van de cmdlet of functie.
  • Laag: PowerShell vraagt om bevestiging voordat cmdlets of functies met een laag, gemiddeld of hoog risico worden uitgevoerd.
  • Gemiddeld: PowerShell vraagt om bevestiging voordat cmdlets of functies met een gemiddeld of hoog risico worden uitgevoerd.
  • Hoog: PowerShell vraagt om bevestiging voordat cmdlets of functies met een hoog risico worden uitgevoerd.

Gedetailleerde uitleg

PowerShell kan u automatisch om bevestiging vragen voordat u een actie gaat ondernemen. Wanneer cmdlet of functie bijvoorbeeld aanzienlijk van invloed is op het systeem om gegevens te verwijderen of een aanzienlijke hoeveelheid systeembronnen te gebruiken.

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"):

De schatting van het risico is een kenmerk van de cmdlet of functie, ook wel confirmImpact genoemd. Gebruikers kunnen dit niet wijzigen.

Cmdlets en functies die een risico voor het systeem kunnen vormen, hebben de parameter Confirm die u kunt gebruiken om bevestiging voor één opdracht aan te vragen of te onderdrukken.

Omdat de meeste cmdlets en functies de standaardrisicowaarde ConfirmImpact van Gemiddeld gebruiken en $ConfirmPreference de standaardwaarde hoog is, vindt automatische bevestiging zelden plaats. U kunt echter automatische bevestiging activeren door de waarde van te wijzigen in Gemiddeld of $ConfirmPreference Laag.

Voorbeelden

In dit voorbeeld ziet u het effect van $ConfirmPreference de standaardwaarde van de variabele, Hoog. De hoge waarde bevestigt alleen cmdlets en functies met een hoog risico. Omdat de meeste cmdlets en functies gemiddeld risico lopen, Remove-Item worden ze niet automatisch bevestigd en wordt het bestand verwijderd. Als u -Confirm toevoegt aan de opdracht, wordt de gebruiker om bevestiging gevraagd.

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

Gebruik om -Confirm bevestiging aan te vragen.

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"):

In het volgende voorbeeld ziet u het effect van het wijzigen van de waarde van in $ConfirmPreference Gemiddeld. Omdat de meeste cmdlets en functies gemiddeld risico lopen, worden ze automatisch bevestigd. Als u de bevestigingsprompt voor één opdracht wilt onderdrukken, gebruikt u de parameter Bevestigen met de waarde $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

$FoutopsporingPreference

Bepaalt hoe PowerShell reageert op berichten voor het debuggen die zijn gegenereerd door een script, cmdlet of provider, Write-Debug of door een opdracht op de opdrachtregel.

De $DebugPreference variabele neemt een van de ActionPreference enumeration values: SilentlyContinue, Stop, Continue, Suspend, Ignore, Suspend of Break.

Sommige cmdlets geven foutopsporingsberichten weer. Dit zijn doorgaans technische berichten die zijn ontworpen voor programmeurs en technische ondersteuningsprofessionals. De standaardinstelling is dat berichten voor het opsporen van een bericht niet worden weergegeven, maar u kunt de berichten voor debuggen weergeven door de waarde van te wijzigen $DebugPreference.

U kunt de veelgebruikte parameter Debug van een cmdlet gebruiken om de foutopsporingsberichten voor een specifieke opdracht weer te geven of te verbergen. Zie voor meer informatie about_CommonParameters.

De geldige waarden zijn als volgt:

  • Stoppen: geeft het foutopsporingsbericht weer en stopt met uitvoeren. Schrijft een fout naar de console.
  • Onderzoek: geeft het foutopsporingsbericht weer en vraagt u of u wilt doorgaan. Wanneer de opdracht is geconfigureerd om een foutopsporingsbericht te genereren, wordt de waarde van de $DebugPreference variabele gewijzigd in Opsporing wanneer u de parameter Debug toevoegt aan een opdracht.
  • Doorgaan: Hiermee wordt het foutopsporingsbericht weergegeven en wordt de uitvoering voortgezet.
  • Op de stille muisAan de andere: (standaard) Geen effect. Het foutopsporingsbericht wordt niet weergegeven en de uitvoering wordt zonder onderbreking voortgezet.

Voorbeelden

In de volgende voorbeelden wordt het effect van het wijzigen van de waarden van $DebugPreference wanneer een Write-Debug opdracht wordt ingevoerd op de opdrachtregel. De wijziging is van invloed op alle berichten voor het debuggen, inclusief berichten die worden gegenereerd door cmdlets en scripts. In de voorbeelden ziet u de foutopsporingsparameter, waarmee de foutopsporingsberichten met betrekking tot één opdracht worden weergegeven of verborgen.

In dit voorbeeld ziet u het effect van $DebugPreference de standaardwaarde van de variabele, SilentlyContinue. Standaard wordt het Write-Debug foutopsporingsbericht van de cmdlet niet weergegeven en wordt de verwerking voortgezet. Wanneer de parameter Debug wordt gebruikt, wordt de voorkeur voor één opdracht overschrijven. Het foutopsporingsbericht wordt weergegeven.

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

In dit voorbeeld ziet u het effect van $DebugPreference met de waarde Doorgaan . Het foutopsporingsbericht wordt weergegeven en de opdracht blijft verwerken.

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

In dit voorbeeld wordt de parameter Debug gebruikt met de waarde van om $false het bericht voor één opdracht te onderdrukken. Het foutopsporingsbericht wordt niet weergegeven.

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

In dit voorbeeld ziet u het effect dat $DebugPreference wordt ingesteld op de waarde Stoppen. Het foutopsporingsbericht wordt weergegeven en de opdracht is gestopt.

$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"

In dit voorbeeld wordt de parameter Debug gebruikt met de waarde van om $false het bericht voor één opdracht te onderdrukken. Het foutopsporingsbericht wordt niet weergegeven en de verwerking wordt niet gestopt.

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

In dit voorbeeld ziet u het effect dat $DebugPreference wordt ingesteld op de waarde Vooren . Het foutopsporingsbericht wordt weergegeven en de gebruiker wordt om bevestiging gevraagd.

$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"):

In dit voorbeeld wordt de parameter Debug gebruikt met de waarde van om $false het bericht voor één opdracht te onderdrukken. Het foutopsporingsbericht wordt niet weergegeven en de verwerking wordt voortgezet.

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

$ErrorActionPreference

Bepaalt hoe PowerShell reageert op een niet-beëindigingsfout, een fout die de verwerking van de cmdlet niet stopt. Bijvoorbeeld op de opdrachtregel of in een script, cmdlet of provider, zoals de fouten die worden gegenereerd door de Write-Error cmdlet.

De $ErrorActionPreference variabele neemt een van de ActionPreference enumeration values: SilentlyContinue, Stop, Continue, Suspend, Ignore, Suspend of Break.

U kunt de algemene parameter ErrorAction van een cmdlet gebruiken om de voorkeur voor een specifieke opdracht te overschrijven.

De geldige waarden zijn als volgt:

  • Break : voer het foutopsporingsfoutbericht in wanneer er een fout optreedt of wanneer er een uitzondering optreedt.
  • Doorgaan: (standaardinstelling) Geeft het foutbericht weer en gaat door met uitvoeren.
  • Negeren: onderdrukt het foutbericht en blijft de opdracht uitvoeren. De waarde Negeren is bedoeld voor gebruik per opdracht, niet voor gebruik als opgeslagen voorkeur. Negeren is geen geldige waarde voor de $ErrorActionPreference variabele.
  • Onderzoek: geeft het foutbericht weer en vraagt u of u wilt doorgaan.
  • Stillecontinuït gaat door: Geen effect. Het foutbericht wordt niet weergegeven en de uitvoering wordt zonder onderbreking voortgezet.
  • Stoppen: geeft het foutbericht weer en stopt met uitvoeren. Naast de gegenereerde fout genereert de waarde Stoppen een ActionPreferenceStopException-object voor de foutstroom. gegevensstroom
  • Suspend: een werkstroomtaak wordt automatisch opgeschort om verder onderzoek mogelijk te maken. Na onderzoek kan de werkstroom worden hervat. De waarde Suspend is bedoeld voor gebruik per opdracht, niet voor gebruik als opgeslagen voorkeur. Suspend is geen geldige waarde voor de $ErrorActionPreference variabele.

$ErrorActionPreference en de parameter ErrorAction hebben geen invloed op de manier waarop PowerShell reageert op beëindigingsfouten die de verwerking van cmdlet's stoppen. Zie voor meer informatie over de veelgebruikte parameter ErrorAction about_CommonParameters.

Voorbeelden

Deze voorbeelden tonen het effect van de verschillende waarden van de $ErrorActionPreference variabele. De parameter ErrorAction wordt gebruikt om de waarde te $ErrorActionPreference overschrijven.

In dit voorbeeld ziet u de $ErrorActionPreference standaardwaarde Doorgaan. Er wordt een niet-beëindigingsfout gegenereerd. Het bericht wordt weergegeven en de verwerking wordt voortgezet.

# 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

In dit voorbeeld wordt de $ErrorActionPreference standaardwaarde Weergegeven. Er wordt een fout gegenereerd en er wordt een prompt voor actie weergegeven.

# 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"):

In dit voorbeeld wordt $ErrorActionPreference de ingesteld op SilentlyContinue. Het foutbericht wordt onderdrukt.

# 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

In dit voorbeeld wordt de $ErrorActionPreference ingesteld op Stoppen. U ziet ook het extra object dat is gegenereerd voor de $Error variabele .

# 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

Bepaalt de weergave-indeling van foutberichten in PowerShell.

De $ErrorView variabele neemt een van de ErrorView -opsemulatiewaarden: NormalView, CategoryView of ConciseView.

De geldige waarden zijn als volgt:

  • ConciseView: (standaard) Biedt een beknopt foutbericht en een gefactoreerde weergave voor geavanceerde modulebouwers. Vanaf PowerShell 7.2 is de uitvoer een foutbericht met één regel als de fout afkomstig is van de opdrachtregel of een scriptmodule. Anders ontvangt u een foutbericht met meerdere lijnen dat de fout bevat en een aanwijzer naar de fout die laat zien waar deze zich op die regel voordoet. Als de terminal Virtual Terminal ondersteunt, worden ANSI-kleurcodes gebruikt om kleuraccenten te bieden. De accentkleur kan worden gewijzigd op $Host.PrivateData.ErrorAccentColor. Gebruik Get-Error de cmdlet voor een uitgebreide gedetailleerde weergave van de volledig gekwalificeerde fout, inclusief interne uitzonderingen.

    ConciseView is toegevoegd in PowerShell 7.

  • NormalView: een gedetailleerde weergave die is ontworpen voor de meeste gebruikers. Bestaat uit een beschrijving van de fout en de naam van het object dat bij de fout is betrokken.

  • CategoryView: Een beknopte, gestructureerde weergave die is ontworpen voor productieomgevingen. De indeling is als volgt:

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

Zie errorCategoryInfo class (Klasse ErrorCategoryInfo) voor meer informatie over de velden in CategoryView.

Voorbeelden

In dit voorbeeld ziet u hoe een fout wordt weergegeven wanneer de waarde van $ErrorView de standaardwaarde Is, ConciseView. Get-ChildItem wordt gebruikt om een niet-bestaande map te vinden.

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

In dit voorbeeld ziet u hoe een fout wordt weergegeven wanneer de waarde van $ErrorView de standaardwaarde Is, ConciseView. Script.ps1 wordt uitgevoerd en er wordt een foutmelding van de instructie Get-Item weergegeven.

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

In dit voorbeeld ziet u hoe een fout wordt weergegeven wanneer de waarde van $ErrorView wordt gewijzigd in NormalView. Get-ChildItem wordt gebruikt om een niet-bestaand bestand te vinden.

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

In dit voorbeeld ziet u hoe dezelfde fout wordt weergegeven wanneer de waarde van $ErrorView wordt gewijzigd in CategoryView.

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

In dit voorbeeld wordt gedemonstreerd dat de waarde van $ErrorView alleen van invloed is op de weergegeven fout. De structuur van het foutobject dat is opgeslagen in $Error de automatische variabele wordt niet gewijzigd. Zie voor meer informatie $Error over de automatische variabele about_automatic_variables.

Met de volgende opdracht wordt het Object ErrorRecord gebruikt dat is gekoppeld aan de meest recente fout in de fout array, element 0, en worden alle eigenschappen van het foutobject in een lijst opgemaakt.

$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

Hiermee bepaalt u hoeveel geïndeereerde items in een weergave zijn opgenomen. Deze variabele heeft geen invloed op de onderliggende objecten, alleen op de weergave. Wanneer de waarde van $FormatEnumerationLimit minder is dan het aantal geïndeereerde items, voegt PowerShell een beletselteken (...) toe om aan te geven dat items niet worden weergegeven.

Geldige waarden: Gehele getallen (Int32)

Standaardwaarde: 4

Voorbeelden

In dit voorbeeld ziet u hoe u de variabele $FormatEnumerationLimit gebruikt om de weergave van geïndeereerde items te verbeteren.

Met de opdracht in dit voorbeeld wordt een tabel gegenereerd waarin alle services die op de computer worden uitgevoerd, in twee groepen worden vermeld: één voor het uitvoeren van services en één voor gestopte services. Er wordt een opdracht Get-Service gebruikt om alle services op te halen en Group-Object verzendt de resultaten vervolgens via de pijplijn naar de cmdlet, die de resultaten groepeerd op servicestatus.

Het resultaat is een tabel met de status in de kolom Naam en de processen in de kolom Groep. Als u de kolomlabels wilt wijzigen, gebruikt u een hash-tabel. Zie about_Hash_Tables. Zie de voorbeelden in Format-Table voor meer informatie.

Zoek de huidige waarde van $FormatEnumerationLimit.

$FormatEnumerationLimit
4

Alle services weergeven die zijn gegroepeerd op Status. Er worden maximaal vier services vermeld in de kolom Groep voor elke status, omdat $FormatEnumerationLimit de waarde 4 heeft.

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...}

Als u het aantal vermelde items wilt verhogen, verhoogt u de waarde van $FormatEnumerationLimit naar 1000. Gebruik Get-Service en om Group-Object de services weer te geven.

$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...

Gebruik Format-Table met de parameter Wrap om de lijst met services weer te geven.

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

Met $InformationPreference de variabele kunt u voorkeuren voor de gegevensstroom instellen die u wilt weergeven voor gebruikers. Met name informatieberichten die u hebt toegevoegd aan opdrachten of scripts door de cmdlet Write-Information toe te voegen. Als de InformationAction parameter wordt gebruikt, overschrijven de waarde van de $InformationPreference variabele. Write-Information is geïntroduceerd in PowerShell 5.0.

De $InformationPreference variabele neemt een van de ActionPreference enumeration values: SilentlyContinue, Stop, Continue, Suspend, Ignore, Suspend of Break.

De geldige waarden zijn als volgt:

  • Stoppen: stopt een opdracht of script bij een exemplaar van de Write-Information opdracht.
  • Onderzoek: geeft het informatief bericht weer dat u opgeeft in een Write-Information opdracht en vraagt vervolgens of u wilt doorgaan.
  • Doorgaan: geeft het informatief bericht weer en gaat door met uitvoeren.
  • Suspend is alleen beschikbaar voor werkstromen die niet worden ondersteund in PowerShell 6 en daarbuiten.
  • Op de stille muisAan de andere: (standaard) Geen effect. De informatieberichten worden niet weergegeven en het script wordt zonder onderbreking voortgezet.

$Logboek*Gebeurtenis

De variabelen van de voorkeur Log*Gebeurtenis bepalen welke typen gebeurtenissen worden geschreven naar het PowerShell-gebeurtenislogboek in Logboeken. Standaard worden alleen engine- en providergebeurtenissen geregistreerd. U kunt echter de variabelen voor de voorkeur Log*Gebeurtenis gebruiken om uw logboek aan te passen, zoals het vastleggen van gebeurtenissen over opdrachten.

De log* Gebeurtenisvoorkeursvariabelen zijn als volgt:

  • $LogCommandHealthEvent: Registreert fouten en uitzonderingen bij het initialiseren en verwerken van opdrachten. De standaardwaarde is $false (niet geregistreerd).
  • $LogCommandLifecycleEvent: Registreert het starten en stoppen van opdrachten en opdrachtpijplijnen en beveiligings uitzonderingen in opdrachtdetectie. De standaardwaarde is $false (niet geregistreerd).
  • $LogEngineHealthEvent: Registreert fouten en fouten van sessies. De standaardwaarde is $true (vastgelegd).
  • $LogEngineLifecycleEvent: Registreert het openen en sluiten van sessies. De standaardwaarde is $true (vastgelegd).
  • $LogProviderHealthEvent: registreert providerfouten, zoals lees- en schrijffouten, opzoekfouten en aanroepfouten. De standaardwaarde is $true (vastgelegd).
  • $LogProviderLifecycleEvent: Registreert het toevoegen en verwijderen van PowerShell-providers. De standaardwaarde is $true (vastgelegd). Zie voor meer informatie over PowerShell-providers about_Providers.

Als u een Logboek*Gebeurtenis wilt inschakelen, typt u de variabele met de waarde $true, bijvoorbeeld:

$LogCommandLifeCycleEvent = $true

Als u een gebeurtenistype wilt uitschakelen, typt u de variabele met de waarde $false, bijvoorbeeld:

$LogCommandLifeCycleEvent = $false

De gebeurtenissen die u inschakelen, zijn alleen van kracht voor de huidige PowerShell-console. Als u de configuratie wilt toepassen op alle consoles, moet u de instellingen van de variabele opslaan in uw PowerShell-profiel. Zie voor meer informatie about_Profiles.

$MaximumHistoryCount

Bepaalt hoeveel opdrachten worden opgeslagen in de opdrachtgeschiedenis voor de huidige sessie.

Geldige waarden: 1 - 32768 (Int32)

Standaardinstelling: 4096

Om te bepalen van het aantal opdrachten huidige opgeslagen in de opdrachtgeschiedenis, typt u:

(Get-History).Count

Als u de opdrachten wilt zien die zijn opgeslagen in de sessiegeschiedenis, gebruikt u de Get-History cmdlet . Zie voor meer informatie about_History.

$OFS

Het scheidingsteken voor uitvoerveld (OFS) geeft het teken op dat de elementen van een matrix scheidt die wordt geconverteerd naar een tekenreeks.

Geldige waarden: elke tekenreeks.

Standaardinstelling: Spatie

De variabele bestaat standaard $OFS niet en het scheidingsteken voor het uitvoerbestand is een spatie, maar u kunt deze variabele toevoegen en instellen op een tekenreeks. U kunt de waarde van in uw $OFS sessie wijzigen door te typen $OFS="<value>".

Notitie

Als u de standaardwaarde van een spatie (" ") verwacht in uw script, module of configuratie-uitvoer, $OFS moet u ervoor zorgen dat de standaardwaarde niet elders in uw code is gewijzigd.

Voorbeelden

In dit voorbeeld ziet u dat een spatie wordt gebruikt om de waarden te scheiden wanneer een matrix wordt geconverteerd naar een tekenreeks. In dit geval wordt een matrix met gehele getallen opgeslagen in een variabele en wordt de variabele vervolgens gecast als een tekenreeks.

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

Als u het scheidingsteken wilt wijzigen, voegt u de variabele $OFS toe door er een waarde aan toe te wijzen. De variabele moet de naam hebben $OFS.

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

Als u het standaardgedrag wilt herstellen, kunt u een spatie (" ") toewijzen aan de waarde van of $OFS de variabele verwijderen. Met de volgende opdrachten wordt de variabele verwijderd en wordt gecontroleerd of het scheidingsteken een spatie is.

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

$OutputEncoding

Hiermee bepaalt u de coderingsmethode voor tekens die PowerShell gebruikt wanneer deze tekst naar andere toepassingen verzendt.

Als een toepassing bijvoorbeeld Unicode-tekenreeksen retourneert naar PowerShell, moet u de waarde mogelijk wijzigen in UnicodeEncoding om de tekens correct te verzenden.

De geldige waarden zijn als volgt: Objecten die zijn afgeleid van een Encoding-klasse, zoals ASCIIEncoding, UTF7Encoding, UTF8Encoding, UTF32Encoding en UnicodeEncoding.

Standaardinstelling: UTF8Encoding-object .

Voorbeelden

In dit voorbeeld ziet u hoe u de opdracht Windows findstr.exe in PowerShell kunt laten werken op een computer die is gelokaliseerd voor een taal die Gebruikmaakt van Unicode-tekens, zoals Chinees.

Met de eerste opdracht wordt de waarde van gevonden $OutputEncoding. Omdat de waarde een coderingsobject is, geeft u alleen de eigenschap EncodingName weer.

$OutputEncoding.EncodingName

In dit voorbeeld wordt een findstr.exe gebruikt om te zoeken naar twee Chinese tekens die aanwezig zijn in het Test.txt bestand. Wanneer deze findstr.exe opdracht wordt uitgevoerd in Windows opdrachtprompt (cmd.exe), findstr.exe de tekens in het tekstbestand gevonden. Wanneer u echter dezelfde findstr.exe-opdracht in PowerShell gebruikt, worden de tekens niet gevonden omdat ze door PowerShell naar findstr.exe worden gestuurd in ASCII-tekst, in plaats van in Unicode-tekst.

findstr <Unicode-characters>

Als u de opdracht wilt laten werken in PowerShell, $OutputEncoding stelt u de waarde van in op de waarde van de eigenschap OutputEncoding van de console, die is gebaseerd op de gekozen Windows. Omdat OutputEncoding een statische eigenschap van de console is, gebruikt u dubbele dubbele punts (::) in de opdracht .

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

Na de coderingswijziging zoekt de findstr.exe Unicode-tekens.

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

$ProgressPreference

Bepaalt hoe PowerShell reageert op voortgangsupdates die worden gegenereerd door een script, cmdlet of provider, zoals de voortgangsbalken die worden gegenereerd door de cmdlet Write-Progress . De Write-Progress cmdlet maakt voortgangsbalken die de status van een opdracht weergeven.

De $ProgressPreference variabele neemt een van de ActionPreference enumeration values: SilentlyContinue, Stop, Continue, Suspend, Ignore, Suspend of Break.

De geldige waarden zijn als volgt:

  • Stoppen: De voortgangsbalk wordt niet weergegeven. In plaats daarvan wordt een foutbericht weergegeven en wordt de uitvoering gestopt.
  • Onderzoek: De voortgangsbalk wordt niet weergegeven. Vraagt om toestemming om door te gaan. Als u antwoordt met Y of A, wordt de voortgangsbalk weergegeven.
  • Doorgaan: (standaardinstelling) Geeft de voortgangsbalk weer en gaat door met de uitvoering.
  • SilentlyContinue: hiermee wordt de opdracht uitgevoerd, maar wordt de voortgangsbalk niet weergegeven.

$PSDefaultParameterValues

Hiermee geeft u standaardwaarden op voor de parameters van cmdlets en geavanceerde functies. De waarde van $PSDefaultParameterValues is een hashtabel waarbij de sleutel bestaat uit de cmdlet-naam en parameternaam, gescheiden door een dubbele punt (:). De waarde is een aangepaste standaardwaarde die u opgeeft.

$PSDefaultParameterValues is geïntroduceerd in PowerShell 3.0.

Zie voor meer informatie over deze voorkeursvariabele about_Parameters_Default_Values.

$PSEmailServer

Hiermee geeft u de standaard-e-mailserver op die wordt gebruikt voor het verzenden van e-mailberichten. Deze voorkeursvariabele wordt gebruikt door cmdlets die e-mail verzenden, zoals de cmdlet Send-MailMessage .

$PSModuleAutoloadingPreference

Hiermee en schakelt automatisch importeren van modules in de sessie. Alle is de standaardinstelling. Als u een module wilt importeren, kunt u een opdracht in de module op halen of gebruiken. Gebruik bijvoorbeeld Get-Command. De $PSModuleAutoloadingPreference variabele bestaat niet standaard. Het standaardgedrag wanneer de variabele niet is gedefinieerd, is hetzelfde als $PSModuleAutoloadingPreference = 'All'.

Ongeacht de waarde van de variabele, kunt u Import-Module gebruiken om een module te importeren.

De $PSModuleAutoloadingPreference variabele neemt een van de PSModuleAutoLoadingPreference enumeratiewaarden: Geen, ModuleQualified of All.

Geldige waarden zijn:

  • Alle: Modules worden automatisch geïmporteerd bij eerste gebruik.
  • ModuleQualified: Modules worden alleen automatisch geïmporteerd wanneer een gebruiker de door de module gekwalificeerde naam van een opdracht in de module gebruikt. Als de gebruiker bijvoorbeeld invoert MyModule\MyCommand, importeert PowerShell de MyModule-module .
  • Geen: het automatisch importeren van modules is uitgeschakeld in de sessie. Als u een module wilt importeren, gebruikt u de Import-Module cmdlet .

Zie voor meer informatie over het automatisch importeren van modules about_Modules.

$PSSessionApplicationName

Hiermee geeft u de standaardtoepassingsnaam op voor een externe opdracht die gebruikmaakt van WS-Management-technologie (Web Services for Management). Zie About Windows Remote Management (Informatie Windows Extern beheer) voor meer informatie.

De standaardnaam van de systeemtoepassing is WSMAN, maar u kunt deze voorkeursvariabele gebruiken om de standaardinstelling te wijzigen.

De naam van de toepassing is het laatste knooppunt in een verbindings-URI. De naam van de toepassing in de volgende voorbeeld-URI is bijvoorbeeld WSMAN.

http://Server01:8080/WSMAN

De standaardtoepassingsnaam wordt gebruikt wanneer de externe opdracht geen verbindings-URI of toepassingsnaam opgeeft.

De WinRM-service gebruikt de toepassingsnaam om een listener te selecteren om de verbindingsaanvraag te verwerken. De waarde van de parameter moet overeenkomen met de waarde van de eigenschap URLPrefix van een listener op de externe computer.

Als u de standaardinstelling van het systeem en de waarde van deze variabele wilt overschrijven en een andere toepassingsnaam voor een bepaalde sessie wilt selecteren, gebruikt u de parameters ConnectionURI of ApplicationName van de cmdlets New-PSSession, Enter-PSSession of Invoke-Command .

De $PSSessionApplicationName voorkeursvariabele is ingesteld op de lokale computer, maar hiermee geeft u een listener op de externe computer. Als de naam van de toepassing die u opgeeft niet bestaat op de externe computer, mislukt de opdracht om de sessie tot stand te laten komen.

$PSSessionConfigurationName

Hiermee geeft u de standaard sessieconfiguratie die wordt gebruikt voor PSSessions gemaakt in de huidige sessie.

Deze voorkeursvariabele is ingesteld op de lokale computer, maar hiermee wordt een sessieconfiguratie opgegeven die zich op de externe computer bevindt.

De waarde van de variabele $PSSessionConfigurationName is een volledig gekwalificeerde resource-URI.

De standaardwaarde geeft http://schemas.microsoft.com/PowerShell/microsoft.PowerShell de configuratie van de Microsoft.PowerShell-sessie op de externe computer aan.

Als u alleen een configuratienaam opgeeft, wordt de volgende schema-URI toegevoegd:

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

U kunt de standaardinstelling overschrijven en een andere sessieconfiguratie voor een bepaalde sessie selecteren met behulp van de parameter ConfigurationName van de cmdlets , Enter-PSSession``Invoke-Command of New-PSSession.

U kunt de waarde van deze variabele op elk moment wijzigen. Wanneer u dit doet, moet u er rekening mee houden dat de sessieconfiguratie die u selecteert, op de externe computer moet bestaan. Zo niet, dan mislukt de opdracht voor het maken van een sessie die gebruikmaakt van de sessieconfiguratie.

Deze voorkeursvariabele bepaalt niet welke lokale sessieconfiguraties worden gebruikt wanneer externe gebruikers een sessie maken die verbinding maakt met deze computer. U kunt echter de machtigingen voor de lokale sessieconfiguraties gebruiken om te bepalen welke gebruikers deze kunnen gebruiken.

$PSSessionOption

Hiermee worden de standaardwaarden voor geavanceerde gebruikersopties in een externe sessie vastgesteld. Deze optievoorkeuren overschrijven de standaardwaarden van het systeem voor sessieopties.

De $PSSessionOption variabele bevat een PSSessionOption-object . Zie System.Management.Automation.Remoting.PSSessionOption voor meer informatie. Elke eigenschap van het object vertegenwoordigt een sessieoptie. De eigenschap NoCompression verandert bijvoorbeeld van gegevenscompressie tijdens de sessie.

De variabele bevat standaard $PSSessionOption een PSSessionOption-object met de standaardwaarden voor alle opties, zoals hieronder wordt weergegeven.

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

Zie New-PSSessionOption voor beschrijvingen van deze opties en meer informatie. Zie voor meer informatie over externe opdrachten en sessies about_Remote en about_PSSessions.

Als u de waarde van de voorkeursvariabele $PSSessionOption wilt wijzigen, New-PSSessionOption gebruikt u de cmdlet om een PSSessionOption-object te maken met de optiewaarden die u wilt gebruiken. Sla de uitvoer op in een variabele met de naam $PSSessionOption.

$PSSessionOption = New-PSSessionOption -NoCompression

Als u de voorkeursvariabele $PSSessionOption in elke PowerShell-sessie wilt gebruiken, voegt u een New-PSSessionOption opdracht toe die de variabele $PSSessionOption aan uw PowerShell-profiel maakt. Zie voor meer informatie about_Profiles.

U kunt aangepaste opties instellen voor een bepaalde externe sessie. De opties die u in te stellen voorrang op de standaardwaarden van het systeem en de waarde van de voorkeursvariabele $PSSessionOption .

Als u aangepaste sessieopties wilt instellen, gebruikt u New-PSSessionOption de cmdlet om een PSSessionOption-object te maken. Gebruik vervolgens het PSSessionOption-object als de waarde van de parameter SessionOption in cmdlets die een sessie maken, New-PSSessionzoals , Enter-PSSessionen Invoke-Command.

$Transcript

Wordt gebruikt door Start-Transcript om de naam en locatie van het transcriptbestand op te geven. Als u geen waarde opgeeft voor de parameter Path , Start-Transcript gebruikt het pad in de waarde van de globale $Transcript variabele. Als u deze variabele niet hebt gemaakt, worden Start-Transcript de transcripten in de map opgeslagen $Home\My Documents als \PowerShell_transcript.<time-stamp>.txt bestanden.

$VerbosePreference

Bepaalt hoe PowerShell reageert op uitgebreide berichten die worden gegenereerd door een script, cmdlet of provider, zoals de berichten die worden gegenereerd door de cmdlet Write-Verbose . Uitgebreide berichten beschrijven de acties die worden uitgevoerd om een opdracht uit te voeren.

Uitgebreide berichten worden standaard niet weergegeven, maar u kunt dit gedrag wijzigen door de waarde van te wijzigen $VerbosePreference.

De $VerbosePreference variabele neemt een van de ActionPreference enumeration values: SilentlyContinue, Stop, Continue, Suspend, Ignore, Suspend of Break.

De geldige waarden zijn als volgt:

  • Stoppen: Geeft het uitgebreide bericht en een foutbericht weer en stopt vervolgens met uitvoeren.
  • Onderzoek: geeft het uitgebreide bericht weer en geeft vervolgens een prompt weer waarin u wordt gevraagd of u wilt doorgaan.
  • Doorgaan: Hiermee wordt het uitgebreide bericht weergegeven en wordt de uitvoering voortgezet.
  • SilentlyContinue: (standaard) Geeft het uitgebreide bericht niet weer. Doorgaan met uitvoeren.

U kunt de uitgebreide algemene parameter van een cmdlet gebruiken om de uitgebreide berichten voor een specifieke opdracht weer te geven of te verbergen. Zie voor meer informatie about_CommonParameters.

Voorbeelden

Deze voorbeelden tonen het effect van de verschillende waarden van en $VerbosePreference de parameter Verbose om de voorkeurswaarde te overschrijven.

In dit voorbeeld ziet u het effect van de waarde SilentlyContinue . Dit is de standaardwaarde. De opdracht maakt gebruik van de berichtparameter, maar schrijft geen bericht naar de PowerShell-console.

Write-Verbose -Message "Verbose message test."

Wanneer de uitgebreide parameter wordt gebruikt, wordt het bericht geschreven.

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

In dit voorbeeld ziet u het effect van de waarde Doorgaan . De $VerbosePreference variabele is ingesteld op Doorgaan en het bericht wordt weergegeven.

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

In dit voorbeeld wordt de parameter Verbose gebruikt met een waarde die $false de waarde Doorgaan overschrijven . Het bericht wordt niet weergegeven.

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

In dit voorbeeld ziet u het effect van de waarde Stoppen. De $VerbosePreference variabele is ingesteld op Stoppen en het bericht wordt weergegeven. De opdracht is gestopt.

$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."

In dit voorbeeld wordt de parameter Verbose gebruikt met een waarde die $false de stopwaarde overschrijven . Het bericht wordt niet weergegeven.

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

In dit voorbeeld ziet u het effect van de waarde Voor onderzoek. De $VerbosePreference variabele is ingesteld op Onderzoeken. Het bericht wordt weergegeven en de gebruiker wordt gevraagd om bevestiging.

$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"):

In dit voorbeeld wordt de parameter Verbose gebruikt met een waarde die $false de waarde Voor onderzoek overschrijven . De gebruiker wordt niet gevraagd en het bericht wordt niet weergegeven.

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

$WarningPreference

Bepaalt hoe PowerShell reageert op waarschuwingsberichten die worden gegenereerd door een script, cmdlet of provider, zoals de berichten die worden gegenereerd door de cmdlet Write-Warning .

Standaard worden waarschuwingsberichten weergegeven en wordt de uitvoering voortgezet, maar u kunt dit gedrag wijzigen door de waarde van te wijzigen $WarningPreference.

De $WarningPreference variabele neemt een van de ActionPreference enumeration values: SilentlyContinue, Stop, Continue, Suspend, Ignore, Suspend of Break.

De geldige waarden zijn als volgt:

  • Stoppen: geeft het waarschuwingsbericht en een foutbericht weer en stopt vervolgens met uitvoeren.
  • Onderzoek: geeft het waarschuwingsbericht weer en vraagt vervolgens om toestemming om door te gaan.
  • Doorgaan: (standaardinstelling) Geeft het waarschuwingsbericht weer en gaat door met de uitvoering.
  • Op de stille muis Blijven: het waarschuwingsbericht wordt niet weergegeven. Doorgaan met uitvoeren.

U kunt de algemene parameter WarningAction van een cmdlet gebruiken om te bepalen hoe PowerShell reageert op waarschuwingen van een bepaalde opdracht. Zie voor meer informatie about_CommonParameters.

Voorbeelden

Deze voorbeelden tonen het effect van de verschillende waarden van $WarningPreference. De parameter WarningAction overschrijven de voorkeurswaarde.

In dit voorbeeld ziet u het effect van de standaardwaarde Doorgaan.

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

In dit voorbeeld wordt de parameter WarningAction gebruikt met de waarde SilentlyContinue om de waarschuwing te onderdrukken. Het bericht wordt niet weergegeven.

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

In dit voorbeeld wordt de $WarningPreference variabele gewijzigd in de waarde SilentlyContinue . Het bericht wordt niet weergegeven.

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

In dit voorbeeld wordt de parameter WarningAction gebruikt om te stoppen wanneer er een waarschuwing wordt gegenereerd.

$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

In dit voorbeeld wordt de variabele $WarningPreference gewijzigd in de waarde Voor onderzoek. De gebruiker wordt om bevestiging gevraagd.

$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"):

In dit voorbeeld wordt de parameter WarningAction gebruikt met de waarde SilentlyContinue. De opdracht blijft worden uitgevoerd en er wordt geen bericht weergegeven.

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

In dit voorbeeld wordt de $WarningPreference waarde gewijzigd in Stoppen.

$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

In dit voorbeeld wordt de WarningAction gebruikt met de waarde Voor onderzoek. De gebruiker wordt gevraagd wanneer er een waarschuwing optreedt.

$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

Bepaalt of WhatIf automatisch is ingeschakeld voor elke opdracht die dit ondersteunt. Wanneer WhatIf is ingeschakeld, rapporteert de cmdlet het verwachte effect van de opdracht, maar voert deze de opdracht niet uit.

De geldige waarden zijn als volgt:

  • False (0, niet ingeschakeld): (standaard) WhatIf is niet automatisch ingeschakeld. Als u deze handmatig wilt inschakelen, gebruikt u de WhatIf-parameter van de cmdlet.
  • True (1, enabled): WhatIf wordt automatisch ingeschakeld voor elke opdracht die dit ondersteunt. Gebruikers kunnen de WhatIf-parameter met de waarde False gebruiken om deze handmatig uit te schakelen, zoals -WhatIf:$false.

Voorbeelden

Deze voorbeelden tonen het effect van de verschillende waarden van $WhatIfPreference. Ze laten zien hoe u de WhatIf parameter voor het overschrijven van de voorkeurswaarde voor een specifieke opdracht.

In dit voorbeeld ziet u het effect van de variabele $WhatIfPreference die is ingesteld op de standaardwaarde False. Gebruik Get-ChildItem om te controleren of het bestand bestaat. Remove-Item verwijdert het bestand. Nadat het bestand is verwijderd, kunt u de verwijdering controleren met 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

In dit voorbeeld ziet u het effect van het gebruik van de WhatIf-parameter wanneer de waarde van$WhatIfPreference False is.

Controleer of het bestand bestaat.

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

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

Gebruik de WhatIf parameter om te bepalen het resultaat van een poging om het bestand te verwijderen.

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

Controleer of het bestand niet is verwijderd.

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

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

In dit voorbeeld ziet u het effect van de variabele $WhatIfPreference die is ingesteld op de waarde Waar. Wanneer u gebruikt Remove-Item om een bestand te verwijderen, wordt het pad van het bestand weergegeven, maar het bestand wordt niet verwijderd.

Probeer een bestand te verwijderen. Er wordt een bericht weergegeven over wat er zou gebeuren als Remove-Item het zou worden uitgevoerd, maar het bestand wordt niet verwijderd.

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

Gebruik Get-ChildItem om te controleren of het bestand niet is verwijderd.

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

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

In dit voorbeeld ziet u hoe u een bestand verwijdert wanneer de waarde van$WhatIfPreference Waar is. Hierbij wordt de WhatIf-parameter gebruikt met de waarde $false. Gebruik Get-ChildItem om te controleren of het bestand is verwijderd.

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

Hier volgen enkele voorbeelden van de Get-Process cmdlet die geen ondersteuning biedt voor WhatIf en Stop-Process die WhatIf wel ondersteunt. De $WhatIfPreference waarde van de variabele is Waar.

Get-Process biedt geen ondersteuning voor WhatIf. Wanneer de opdracht wordt uitgevoerd, wordt het Winword-proces weergegeven.

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 biedt ondersteuning voor WhatIf. Het Winword-proces wordt niet gestopt.

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

U kunt het WhatIf-gedrag Stop-Process overschrijven met behulp van de WhatIf-parameter met de waarde $false. Het Winword-proces is gestopt.

Stop-Process -Name Winword -WhatIf:$false

Gebruik om te controleren of het Winword-proces is gestopt 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

Zie ook