about_Preference_Variables

Korte beschrijving

Variabelen waarmee het gedrag van PowerShell wordt aangepast.

Lange beschrijving

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

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 de bijbehorende standaardwaarden.

Variabele Standaardwaarde
$ConfirmPreference High
$DebugPreference SilentlyContinue
$ErrorActionPreference Continue
$ErrorView NormalView
$FormatEnumerationLimit 4
$InformationPreference SilentlyContinue
$LogCommandHealthEvent $False (niet geregistreerd)
$LogCommandLifecycleEvent $False (niet geregistreerd)
$LogEngineHealthEvent $True (geregistreerd)
$LogEngineLifecycleEvent $True (geregistreerd)
$LogProviderLifecycleEvent $True (geregistreerd)
$LogProviderHealthEvent $True (geregistreerd)
$MaximumAliasCount 4096
$MaximumDriveCount 4096
$MaximumErrorCount 256
$MaximumFunctionCount 4096
$MaximumHistoryCount 4096
$MaximumVariableCount 4096
$OFS Spatieteken (" ")
$OutputEncoding ASCIIEncoding 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 about_Environment_Variables voor meer informatie over deze omgevingsvariabelen.

  • env:PSExecutionPolicyPreference
  • $env:PSModulePath

Notitie

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

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 de $ConfirmPreference variabele weergegeven.

 $ConfirmPreference
High

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

$ConfirmPreference = "Medium"

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

Werken op afstand

Wanneer u opdrachten uitvoert op een externe computer, 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 uitvoert, bepaalt de waarde van de variabele van de externe computer $DebugPreference hoe PowerShell reageert op foutopsporingsberichten.

Zie about_Remote voor meer informatie over externe opdrachten.

$ConfirmPreference

Bepaalt of PowerShell u automatisch om bevestiging vraagt voordat u een cmdlet of functie uitvoert.

De $ConfirmPreference variabele neemt een van deConfirmImpact opsommingswaarden: Hoog, Gemiddeld, Laag of Geen.

Cmdlets en functies krijgen een risico van Hoog, Gemiddeld of Laag. Wanneer de waarde van de $ConfirmPreference 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 functie uitvoert.

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

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

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

Geldige waarden van $ConfirmPreference:

  • Geen: PowerShell vraagt niet automatisch. Als u een bevestiging van een bepaalde opdracht wilt aanvragen, gebruikt u de parameter Bevestigen 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 uitvoert. Als cmdlet of functie bijvoorbeeld 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 een bevestigingsparameter die u kunt gebruiken om bevestiging voor één opdracht aan te vragen of te onderdrukken.

Omdat de meeste cmdlets en functies gebruikmaken van de standaardrisicowaarde, ConfirmImpact, gemiddeld en de standaardwaarde $ConfirmPreferencehoog is, treedt automatische bevestiging zelden op. U kunt echter automatische bevestiging activeren door de waarde van $ConfirmPreferenceGemiddeld of Laag te wijzigen.

Voorbeelden

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

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

Gebruik -Confirm dit om 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  [S] Suspend
[?] Help (default is "Y"):

In het volgende voorbeeld ziet u het effect van het wijzigen van de waarde van $ConfirmPreferenceGemiddeld. 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 een waarde van $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  [S] Suspend
[?] Help (default is "Y"):
Remove-Item -Path C:\temp3.txt -Confirm:$false

$DebugPreference

Bepaalt hoe PowerShell reageert op foutopsporingsberichten die worden gegenereerd door een script, cmdlet of provider of door een Write-Debug opdracht op de opdrachtregel.

De $DebugPreference variabele neemt een van deActionPreference opsommingswaarden: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend of Break.

In sommige cmdlets worden foutopsporingsberichten weergegeven. Dit zijn meestal technische berichten die zijn ontworpen voor programmeurs en professionals voor technische ondersteuning. Foutopsporingsberichten worden standaard niet weergegeven, maar u kunt foutopsporingsberichten weergeven door de waarde van $DebugPreference.

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

De geldige waarden zijn als volgt:

  • Stop: Geeft het foutopsporingsbericht weer en stopt met uitvoeren. Hiermee wordt een fout naar de console geschreven.
  • Inquire: Geeft het foutopsporingsbericht weer en vraagt u of u wilt doorgaan. Wanneer de algemene parameter Foutopsporing wordt toegevoegd aan een opdracht, wordt de waarde van de $DebugPreference variabele gewijzigd in Inquire wanneer de opdracht is geconfigureerd om een foutopsporingsbericht te genereren.
  • Doorgaan: geeft het foutopsporingsbericht weer en gaat verder met de uitvoering.
  • SilentlyContinue: (Standaard) Geen effect. Het foutopsporingsbericht wordt niet weergegeven en de uitvoering wordt zonder onderbreking voortgezet.

Voorbeelden

In de volgende voorbeelden ziet u 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 foutopsporingsberichten, inclusief berichten die zijn gegenereerd door cmdlets en scripts. In de voorbeelden ziet u de parameter Foutopsporing , die de foutopsporingsberichten met betrekking tot één opdracht weergeeft of verbergt.

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

$DebugPreference
SilentlyContinue
Write-Debug -Message "Hello, World"
Write-Debug -Message "Hello, World" -Debug
DEBUG: Hello, World
Confirm
Continue with this operation?
[Y] Yes  [A] Yes to All  [H] Halt Command  [S] Suspend
[?] Help (default is "Y"):

In dit voorbeeld ziet u het effect van $DebugPreference de waarde Continue . 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 Foutopsporing gebruikt met de waarde voor het onderdrukken van $false het bericht voor één opdracht. 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 wordt 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 Foutopsporing gebruikt met de waarde voor het onderdrukken van $false het bericht voor één opdracht. 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 van het instellen op $DebugPreference de waarde Inquire . 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  [S] Suspend
[?] Help (default is "Y"):

In dit voorbeeld wordt de parameter Foutopsporing gebruikt met de waarde voor het onderdrukken van $false het bericht voor één opdracht. 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-afsluitfout, 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 door de Write-Error cmdlet zijn gegenereerd.

De $ErrorActionPreference variabele neemt een van deActionPreference opsommingswaarden: SilentlyContinue, Stop, Continue, Inquire, Ignore of Suspend.

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:

  • Doorgaan: (standaard) Geeft het foutbericht weer en blijft 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.
  • Inquire: Geeft het foutbericht weer en vraagt u of u wilt doorgaan.
  • SilentlyContinue: Geen effect. Het foutbericht wordt niet weergegeven en de uitvoering wordt zonder onderbreking voortgezet.
  • Stop: Geeft het foutbericht weer en stopt met uitvoeren. Naast de gegenereerde fout genereert de stopwaarde een ActionPreferenceStopException-object naar de foutstroom.
  • Onderbreken: Hiermee wordt automatisch een werkstroomtaak onderbroken om verder onderzoek mogelijk te maken. Na onderzoek kan de werkstroom worden hervat. De waarde Onderbreken is bedoeld voor gebruik per opdracht, niet voor gebruik als opgeslagen voorkeur. Onderbreken is geen geldige waarde voor de $ErrorActionPreference variabele.

$ErrorActionPreference en de parameter ErrorAction heeft geen invloed op de wijze waarop PowerShell reageert op afsluitfouten die de verwerking van cmdlets stoppen. Zie about_CommonParameters voor meer informatie over de algemene parameter ErrorAction.

Voorbeelden

In deze voorbeelden ziet u het effect van de verschillende waarden van de $ErrorActionPreference variabele. De parameter ErrorAction wordt gebruikt om de $ErrorActionPreference waarde te overschrijven.

In dit voorbeeld ziet u de $ErrorActionPreference standaardwaarde, Doorgaan. Er wordt een niet-afsluitfout 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 -Message  'Test Error' ; Write-Host 'Hello World' : Test Error
    + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
    + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException

Hello World

In dit voorbeeld ziet u de $ErrorActionPreference standaardwaarde Inquire. Er wordt een fout gegenereerd en er wordt een actieprompt 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 ziet u de $ErrorActionPreference set 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 ziet u de $ErrorActionPreferenceset stoppen. Het toont 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 -Message 'Test Error' ; Write-Host 'Hello World' : Test Error
At line:1 char:1
+ Write-Error -Message 'Test Error' ; Write-Host 'Hello World'
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
    + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException

The running command stopped because the preference variable "ErrorActionPreference"
or common parameter is set to Stop: Test Error

Write-Error -Message 'Test Error' ; Write-Host 'Hello World' : Test Error
At line:1 char:1
+ Write-Error -Message 'Test Error' ; Write-Host 'Hello World'
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
    + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException

$ErrorView

Bepaalt de weergave-indeling van foutberichten in PowerShell.

De $ErrorView variabele gebruikt een van de ErrorView opsommingswaarden: NormalView of CategoryView.

De geldige waarden zijn als volgt:

  • NormalView: (standaard) 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 betrokken is.

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

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

Zie de 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 NormalView is. 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 wordt $ErrorView gewijzigd in CategoryView.

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

In dit voorbeeld ziet u dat de waarde $ErrorView alleen van invloed is op de foutweergave. De structuur van het foutobject dat is opgeslagen in de $Error automatische variabele, wordt niet gewijzigd. Zie about_automatic_variables voor informatie over de $Error automatische variabele.

Met de volgende opdracht wordt het object ErrorRecord gebruikt dat is gekoppeld aan de meest recente fout in de foutmatrix, 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ïnventareerde items worden opgenomen in een weergave. Deze variabele heeft geen invloed op de onderliggende objecten, alleen op de weergave. Wanneer de waarde kleiner $FormatEnumerationLimit is dan het aantal geïnventareerde 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 $FormatEnumerationLimit variabele gebruikt om de weergave van geïnventareerde items te verbeteren.

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

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

De huidige waarde van $FormatEnumerationLimit.

$FormatEnumerationLimit
4

Geef een lijst weer van alle services gegroepeerd op status. Er worden maximaal vier services vermeld in de kolom Groep voor elke status, omdat $FormatEnumerationLimit deze een waarde van 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 weergegeven items wilt verhogen, verhoogt u de waarde van $FormatEnumerationLimit1000. Gebruik Get-Service en Group-Object om 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 de $InformationPreference variabele kunt u voorkeuren voor informatiestromen instellen die u wilt weergeven aan gebruikers. Specifieke informatieberichten die u hebt toegevoegd aan opdrachten of scripts door de cmdlet Write-Information toe te voegen. Als de parameter InformationAction wordt gebruikt, overschrijft de waarde ervan de waarde van de $InformationPreference variabele. Write-Information is geïntroduceerd in PowerShell 5.0.

De $InformationPreference variabele neemt een van deActionPreference opsommingswaarden: SilentlyContinue, Stop, Continue, Inquire, Ignore of Suspend.

De geldige waarden zijn als volgt:

  • Stoppen: Stopt een opdracht of script bij een exemplaar van de Write-Information opdracht.
  • Inquire: Geeft het informatieve bericht weer dat u opgeeft in een Write-Information opdracht en vraagt vervolgens of u wilt doorgaan.
  • Doorgaan: Geeft het informatieve bericht weer en wordt uitgevoerd.
  • Onderbreken: Hiermee wordt een werkstroomtaak automatisch onderbroken nadat een Write-Information opdracht is uitgevoerd, zodat gebruikers de berichten kunnen zien voordat ze verdergaan. De werkstroom kan naar eigen goeddunken van de gebruiker worden hervat.
  • SilentlyContinue: (Standaard) Geen effect. De informatieve berichten worden niet weergegeven en het script wordt zonder onderbreking voortgezet.

$Log*gebeurtenis

De variabelen voor logboek*gebeurtenisvoorkeur 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 logboek*Gebeurtenisvoorkeur gebruiken om uw logboek aan te passen, zoals logboekregistratie van gebeurtenissen over opdrachten.

De variabelen voor logboek*gebeurtenisvoorkeur zijn als volgt:

  • $LogCommandHealthEvent: registreert fouten en uitzonderingen in de initialisatie en verwerking van opdrachten. De standaardwaarde is $false (niet geregistreerd).
  • $LogCommandLifecycleEvent: registreert het starten en stoppen van opdrachten en opdrachtpijplijnen en beveiligingsonderzonderingen 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 about_Providers voor informatie over PowerShell-providers.

Als u een logboek*gebeurtenis wilt inschakelen, typt u de variabele met een waarde van $truebijvoorbeeld:

$LogCommandLifeCycleEvent = $true

Als u een gebeurtenistype wilt uitschakelen, typt u de variabele met een waarde van $falsebijvoorbeeld:

$LogCommandLifeCycleEvent = $false

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

$MaximumAliasCount

Bepaalt hoeveel aliassen zijn toegestaan in een PowerShell-sessie. De standaardwaarde is 4096 en dat moet voldoende zijn voor de meeste toepassingen. U kunt zich aanpassen $MaximumAliasCount aan uw behoeften.

Geldige waarden: 1024 - 32768 (Int32)

Standaard: 4096

Als u de aliassen op uw systeem wilt tellen, typt u:

(Get-Alias).count

$MaximumDriveCount

Bepaalt hoeveel PowerShell-stations zijn toegestaan in een bepaalde sessie. Bestandssysteemstations en gegevensarchieven die worden weergegeven door PowerShell-providers, worden bijvoorbeeld weergegeven als stations, zoals de Alias: stations.HKLM:

Geldige waarden: 1024 - 32768 (Int32)

Standaard: 4096

Als u de aliassen op uw systeem wilt tellen, typt u:

(Get-PSDrive).count

$MaximumErrorCount

Bepaalt hoeveel fouten worden opgeslagen in de foutgeschiedenis voor de sessie.

Geldige waarden: 256 - 32768 (Int32)

Standaard: 256

Objecten die elke bewaarde fout vertegenwoordigen, worden opgeslagen in de $Error automatische variabele. $Error bevat een matrix met foutrecordobjecten. De meest recente fout is het eerste object in de matrix. $Error[0]

Als u de fouten in uw systeem wilt tellen, gebruikt u de eigenschap Count van de $Error matrix.

$Error.count

Als u een specifieke fout wilt weergeven, gebruikt u de [0] matrixnotatie om de meest recente fout te zien.

$Error[0]

Als u de oudste bewaarde fout wilt weergeven, typt u:

$Error[($Error.Count -1]

De parameter Force overschrijft de speciale opmaak van ErrorRecord-objecten en keert terug naar de conventionele indeling. Als u de eigenschappen van het object ErrorRecord wilt weergeven, typt u de volgende opdracht:

$Error[0] | Format-List -Property * -Force

In dit voorbeeld $Error.Count wordt het aantal fouten weergegeven. Als u alle fouten uit de foutgeschiedenis wilt verwijderen, gebruikt u de Clear methode van de foutmatrix.

$Error.Count
17
$Error.Clear()
$Error.Count
0

Als u alle eigenschappen en methoden van een foutmatrix wilt vinden, gebruikt u de cmdlet met de Get-Member parameter InputObject . Wanneer u de parameter InputObject gebruikt, Get-Member worden de eigenschappen en methoden van de verzameling weergegeven.

Get-Member -InputObject $Error

Wanneer u een verzameling objecten doorsluist naar Get-Member, Get-Member worden de eigenschappen en methoden van de objecten in de verzameling weergegeven.

$Error | Get-Member

$MaximumFunctionCount

Bepaalt hoeveel functies zijn toegestaan in een bepaalde sessie.

Geldige waarden: 1024 - 32768 (Int32)

Standaard: 4096

Als u de functies in uw sessie wilt zien, gebruikt u het PowerShell-station Function: dat wordt weergegeven door de PowerShell-provider Function . About_Function_Provider voor meer informatie over de Functionprovider.

Als u de functies in de huidige sessie wilt weergeven, typt u:

Get-ChildItem Function:

Als u de functies in de huidige sessie wilt tellen, typt u:

(Get-ChildItem Function:).Count

$MaximumHistoryCount

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

Geldige waarden: 1 - 32768 (Int32)

Standaard: 4096

Als u het aantal opdrachten wilt bepalen dat momenteel is opgeslagen in de opdrachtgeschiedenis, typt u:

(Get-History).Count

Gebruik de cmdlet om de opdrachten weer te geven die zijn opgeslagen in uw Get-History sessiegeschiedenis. Zie about_History voor meer informatie.

$MaximumVariableCount

Bepaalt hoeveel variabelen zijn toegestaan in een bepaalde sessie, inclusief automatische variabelen, voorkeursvariabelen en de variabelen die u in opdrachten en scripts maakt.

Geldige waarden: 1024 - 32768 (Int32)

Standaard: 4096

Als u de variabelen in uw sessie wilt zien, gebruikt u de Get-Variable cmdlet en de functies van het PowerShell-station Variable: en de PowerShell-provider Variable . Zie about_Variable_Provider voor meer informatie.

Als u het huidige aantal variabelen in het systeem wilt zoeken, typt u:

(Get-Variable).Count

$OFS

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

Geldige waarden: elke tekenreeks.

Standaard: spatie

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

Notitie

Als u de standaardwaarde van een spatie (" ") verwacht in de uitvoer van uw script, module of configuratie, moet u ervoor zorgen dat de $OFS standaardwaarde niet ergens anders 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 als een tekenreeks gecast.

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

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

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

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

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

$OutputEncoding

Bepaalt de tekencoderingsmethode die PowerShell gebruikt wanneer tekst naar andere toepassingen wordt verzonden.

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 coderingsklasse, zoals ASCIIEncoding, UTF7Encoding, UTF8Encoding, UTF32Encoding en UnicodeEncoding.

Standaard: ASCIIEncoding-object .

Voorbeelden

In dit voorbeeld ziet u hoe u de Opdracht Windows findstr.exe werkt in PowerShell op een computer die is gelokaliseerd voor een taal die Unicode-tekens gebruikt, zoals Chinees.

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

$OutputEncoding.EncodingName

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

findstr <Unicode-characters>

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

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

Nadat de codering is gewijzigd, worden met de findstr.exe opdracht de Unicode-tekens gevonden.

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 deActionPreference opsommingswaarden: SilentlyContinue, Stop, Continue, Inquire, Ignore of Suspend.

De geldige waarden zijn als volgt:

  • Stop: de voortgangsbalk wordt niet weergegeven. In plaats daarvan wordt een foutbericht weergegeven en wordt de uitvoering gestopt.
  • Inquire: de voortgangsbalk wordt niet weergegeven. Vraagt om toestemming om door te gaan. Als u antwoordt met Y of A, wordt de voortgangsbalk weergegeven.
  • Doorgaan: (standaard) Geeft de voortgangsbalk weer en gaat door met de uitvoering.
  • SilentlyContinue: voert de opdracht uit, maar geeft de voortgangsbalk niet weer.

$PSDefaultParameterValues

Hiermee geeft u standaardwaarden op voor de parameters van cmdlets en geavanceerde functies. De waarde van $PSDefaultParameterValues is een hash-tabel 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 about_Parameters_Default_Values voor meer informatie over deze voorkeursvariabele.

$PSEmailServer

Hiermee geeft u de standaard e-mailserver 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

Schakelt automatisch importeren van modules in de sessie in en uit. Alles is de standaardinstelling. Als u een module wilt importeren, haalt u een opdracht op of gebruikt u deze in de module. 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 dePSModuleAutoLoadingPreference opsommingswaarden: None, ModuleQualified of All.

Geldige waarden zijn:

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

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

$PSSessionApplicationName

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

De standaardtoepassingsnaam van het systeem 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 WSMANbijvoorbeeld .

http://Server01:8080/WSMAN

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

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

Als u de standaardwaarde 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 wordt ingesteld op de lokale computer, maar hiermee wordt een listener op de externe computer opgegeven. Als de toepassingsnaam die u opgeeft niet bestaat op de externe computer, mislukt de opdracht om de sessie tot stand te brengen.

$PSSessionConfigurationName

Hiermee geeft u de standaardsessieconfiguratie op die wordt gebruikt voor PSSessions die in de huidige sessie zijn gemaakt.

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

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

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

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

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 New-PSSession, Enter-PSSessionof Invoke-Command cmdlets.

U kunt de waarde van deze variabele op elk gewenst moment wijzigen. Wanneer u dit doet, moet de sessieconfiguratie die u selecteert bestaan op de externe computer. Als dit niet het probleem is, mislukt de opdracht om een sessie te maken 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 configuraties van de lokale sessies gebruiken om te bepalen welke gebruikers ze mogen gebruiken.

$PSSessionOption

Hiermee worden de standaardwaarden voor geavanceerde gebruikersopties in een externe sessie ingesteld. 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 about_Remote en about_PSSessions voor meer informatie over externe opdrachten en sessies.

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

$PSSessionOption = New-PSSessionOption -NoCompression

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

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

Als u aangepaste sessieopties wilt instellen, gebruikt u de New-PSSessionOption 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, zoals New-PSSession, Enter-PSSessionen Invoke-Command.

$Transcript

Wordt gebruikt om Start-Transcript de naam en locatie van het transcriptbestand op te geven. Als u geen waarde opgeeft voor de parameter Path , Start-Transcript gebruikt u het pad in de waarde van de $Transcript globale variabele. Als u deze variabele niet hebt gemaakt, Start-Transcript slaat u de transcripties in de $Home\My Documents map op 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 $VerbosePreference.

De $VerbosePreference variabele neemt een van deActionPreference opsommingswaarden: SilentlyContinue, Stop, Continue, Inquire, Ignore of Suspend.

De geldige waarden zijn als volgt:

  • Stop: Geeft het uitgebreide bericht en een foutbericht weer en stopt met uitvoeren.
  • Inquire: Geeft het uitgebreide bericht weer en geeft vervolgens een prompt weer waarin u wordt gevraagd of u wilt doorgaan.
  • Doorgaan: geeft het uitgebreide bericht weer en gaat vervolgens verder met de uitvoering.
  • SilentlyContinue: (Standaard) geeft het uitgebreide bericht niet weer. Wordt uitgevoerd.

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 about_CommonParameters voor meer informatie.

Voorbeelden

In deze voorbeelden ziet u het effect van de verschillende waarden van $VerbosePreference en de uitgebreide parameter 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 parameter Bericht , 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 Continue . 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 uitgebreide parameter gebruikt met een waarde die $false de waarde Continue overschrijft. Het bericht wordt niet weergegeven.

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

In dit voorbeeld ziet u het effect van de stopwaarde. 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 uitgebreide parameter gebruikt met een waarde die $falsede stopwaarde overschrijft. Het bericht wordt niet weergegeven.

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

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

$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  [S] Suspend
[?] Help (default is "Y"):

In dit voorbeeld wordt de uitgebreide parameter gebruikt met een waarde die $false de Waarde Inquire overschrijft. 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 $WarningPreference.

De $WarningPreference variabele neemt een van deActionPreference opsommingswaarden: SilentlyContinue, Stop, Continue, Inquire, Ignore of Suspend.

De geldige waarden zijn als volgt:

  • Stop: Geeft het waarschuwingsbericht en een foutbericht weer en wordt vervolgens gestopt met uitvoeren.
  • Inquire: Geeft het waarschuwingsbericht weer en vraagt vervolgens om toestemming om door te gaan.
  • Doorgaan: (standaard) Geeft het waarschuwingsbericht weer en wordt vervolgens uitgevoerd.
  • SilentlyContinue: het waarschuwingsbericht wordt niet weergegeven. Wordt uitgevoerd.

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

Voorbeelden

In deze voorbeelden ziet u het effect van de verschillende waarden van $WarningPreference. De parameter WarningAction overschrijft 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 $WarningPreference variabele gewijzigd in de waarde Inquire . 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  [S] Suspend
[?] 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 Inquire . 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  [S] Suspend
[?] Help (default is "Y"):

$WhatIfPreference

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

De geldige waarden zijn als volgt:

  • False (0, niet ingeschakeld): (Standaard) WhatIf wordt niet automatisch ingeschakeld. Als u deze handmatig wilt inschakelen, gebruikt u de WhatIf-parameter van de cmdlet.
  • Waar (1, ingeschakeld): 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

In deze voorbeelden ziet u het effect van de verschillende waarden van $WhatIfPreference. Ze laten zien hoe u de WhatIf-parameter gebruikt om de voorkeurswaarde voor een specifieke opdracht te overschrijven.

In dit voorbeeld ziet u het effect van de $WhatIfPreference variabele die is ingesteld op de standaardwaarde False. Gebruik Get-ChildItem dit bestand 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 $WhatIfPreferenceonwaar 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 parameter WhatIf om het resultaat te bepalen van het verwijderen van het bestand.

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 $WhatIfPreference variabele die is ingesteld op de waarde Waar. Wanneer u Remove-Item een bestand verwijdert, wordt het pad van het bestand weergegeven, maar wordt het bestand niet verwijderd.

Probeer een bestand te verwijderen. Er wordt een bericht weergegeven over wat er zou gebeuren als Remove-Item het werd 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 dit bestand 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 $WhatIfPreferencewaar is. De parameter WhatIf wordt gebruikt met een waarde van $false. Gebruik Get-ChildItem dit 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

Hieronder vindt u voorbeelden van de Get-Process cmdlet die geen ondersteuning biedt voor WhatIf en Stop-Process die WhatIf wel ondersteunt. De waarde van de $WhatIfPreference 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 ondersteunt WhatIf. Het Winword-proces is niet gestopt.

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

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

Stop-Process -Name Winword -WhatIf:$false

Als u wilt controleren of het Winword-proces is gestopt, gebruikt u 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