about_Preference_Variables
Korte beschrijving
Variabelen die het gedrag van PowerShell aanpassen.
Lange beschrijving
PowerShell bevat een set variabelen waarmee u het gedrag kunt aanpassen. Deze voorkeursvariabelen werken zoals de opties in gui-systemen.
De voorkeursvariabelen zijn van invloed op de PowerShell-besturingsomgeving en alle opdrachten worden uitgevoerd in de omgeving. Sommige cmdlets hebben parameters waarmee u het voorkeursgedrag voor een specifieke opdracht kunt overschrijven.
De volgende tabel bevat de voorkeursvariabelen en de bijbehorende standaardwaarden.
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.
Extern werken
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 de ConfirmImpact
opsommingswaarden: Hoog, Gemiddeld, Laag of Geen.
Aan cmdlets en functies wordt een risico van Hoog, Gemiddeld of Laag toegewezen.
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 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 om een cmdlet of functie uit te voeren.
Als u het bevestigingsgedrag voor alle cmdlets en functies in de sessie wilt wijzigen, wijzigt u $ConfirmPreference
de waarde van de variabele.
Als u de $ConfirmPreference
voor één opdracht wilt overschrijven, gebruikt u de 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 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 uitvoert. Bijvoorbeeld wanneer de cmdlet of functie een aanzienlijke invloed heeft 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 die confirmImpact wordt 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 de standaardwaarde van $ConfirmPreference
Hoog is, treedt automatische bevestiging zelden op. U kunt automatische bevestiging echter activeren door de waarde van $ConfirmPreference
te wijzigen in Gemiddeld of Laag.
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 een gemiddeld risico vormen, worden ze niet automatisch bevestigd en Remove-Item
wordt het bestand verwijderd. Toevoegen -Confirm
aan de opdracht vraagt de gebruiker om bevestiging.
$ConfirmPreference
High
Remove-Item -Path C:\temp1.txt
Gebruik -Confirm
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
[?] Help (default is "Y"):
In het volgende voorbeeld ziet u het effect van het wijzigen van de waarde van $ConfirmPreference
in Gemiddeld. Omdat de meeste cmdlets en functies een gemiddeld risico vormen, worden ze automatisch bevestigd. Als u de bevestigingsprompt voor één opdracht wilt onderdrukken, gebruikt u de parameter Confirm 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
$DebugPreference
Bepaalt hoe PowerShell reageert op foutopsporingsberichten die zijn gegenereerd door een script, cmdlet of provider, of door een Write-Debug
opdracht op de opdrachtregel.
De $DebugPreference
variabele neemt een van de ActionPreference
opsommingswaarden: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend of Break.
Sommige cmdlets geven foutopsporingsberichten weer. Dit zijn meestal technische berichten die zijn ontworpen voor programmeurs en professionals van technische ondersteuning. Foutopsporingsberichten worden standaard niet weergegeven, maar u kunt foutopsporingsberichten weergeven door de waarde van $DebugPreference
te wijzigen.
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:
- Break : voer het foutopsporingsprogramma in wanneer er een fout optreedt of wanneer er een uitzondering wordt gegenereerd.
- Stoppen: 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.
- 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.
Als u de algemene parameter Foutopsporing toevoegt aan een opdracht, verandert de waarde van de $DebugPreference
variabele in Doorgaan wanneer de opdracht is geconfigureerd om een foutopsporingsbericht te genereren.
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 , waarmee de foutopsporingsberichten met betrekking tot één opdracht worden weergegeven of verborgen.
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. 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 Continue . Het foutopsporingsbericht wordt weergegeven en de opdracht wordt verder verwerkt.
$DebugPreference = "Continue"
Write-Debug -Message "Hello, World"
DEBUG: Hello, World
In dit voorbeeld wordt de parameter Foutopsporing gebruikt met de waarde van $false
om 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 van het instellen op $DebugPreference
de stopwaarde . 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 van $false
om 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 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 [?] Help (default is "Y"):
In dit voorbeeld wordt de parameter Foutopsporing gebruikt met de waarde van $false
om 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-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 worden gegenereerd.
De $ErrorActionPreference
variabele gebruikt een van de ActionPreference
opsommingswaarden: SilentlyContinue, Stop, Continue, Inquire, 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 foutopsporingsprogramma in wanneer er een fout optreedt of wanneer een uitzondering wordt gegenereerd.
- Doorgaan: (standaard) 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. - Inquire: hiermee wordt het foutbericht weergegeven en wordt u gevraagd of u wilt doorgaan.
- SilentlyContinue: 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 stopwaarde een ActionPreferenceStopException-object voor de foutstroom.
- Onderbreken: hiermee wordt automatisch een werkstroomtaak onderbroken 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. Onderbreken is geen geldige waarde voor de
$ErrorActionPreference
variabele.
$ErrorActionPreference
en de parameter ErrorAction heeft geen invloed op hoe PowerShell reageert op afsluitfouten die de verwerking van cmdlets stoppen. Zie about_CommonParameters voor meer informatie over de algemene parameter ErrorAction.
Veel systeemeigen opdrachten schrijven naar stderr
als een alternatieve stream voor aanvullende informatie. Dit gedrag kan verwarring veroorzaken bij het bekijken van fouten of de aanvullende uitvoergegevens kunnen verloren gaan voor de gebruiker als $ErrorActionPreference
is ingesteld op een status die de uitvoer dempt.
Vanaf PowerShell 7.2 worden foutrecords die worden omgeleid vanuit systeemeigen opdrachten, zoals bij het gebruik van omleidingsoperators (2>&1
), niet naar de $Error
variabele geschreven en heeft de voorkeursvariabele $ErrorActionPreference
geen invloed op de omgeleide uitvoer.
PowerShell 7.3 heeft een experimentele functie toegevoegd waarmee u kunt bepalen hoe berichten waarnaar wordt geschreven stderr
, worden verwerkt.
Zie $PSNativeCommandUseErrorActionPreference voor meer informatie.
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 Continue. 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: Test Error
Hello World
In dit voorbeeld ziet u de $ErrorActionPreference
standaardwaarde Inquire. 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 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 $ErrorActionPreference
set op Stoppen. Ook wordt het extra object weergegeven dat is gegenereerd voor de $Error
variabele.
# Change the ErrorActionPreference to 'Stop'
$ErrorActionPreference = 'Stop'
# Error message 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 gebruikt een van de ErrorView
opsommingswaarden: NormalView, CategoryView of ConciseView.
De geldige waarden zijn als volgt:
ConciseView: (standaard) Biedt een beknopt foutbericht en een geherstructureerde 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 regels dat de fout bevat en een verwijzing naar de fout die aangeeft waar deze zich voordoet op die regel. Als de terminal virtuele terminal ondersteunt, worden ANSI-kleurcodes gebruikt om kleuraccenten te bieden. De accentkleur kan worden gewijzigd op
$Host.PrivateData.ErrorAccentColor
. GebruikGet-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 betrokken is bij de fout.
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 Beknopte weergave is. 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 Beknopte weergave is. Script.ps1
wordt uitgevoerd en genereert een fout vanuit de Get-Item
-instructie.
./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 ziet u dat de waarde van $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.
De volgende opdracht neemt het ErrorRecord-object dat is gekoppeld aan de meest recente fout in de foutmatrix, element 0, op en maakt de eigenschappen van het object in een lijst op.
$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
Bepaalt hoeveel geïnventareerde items in een weergave worden opgenomen. Deze variabele heeft geen invloed op de onderliggende objecten, alleen op de weergave. Wanneer de waarde van $FormatEnumerationLimit
kleiner 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 actieve services en één voor gestopte services. Er wordt een Get-Service
opdracht gebruikt om alle services op te halen en vervolgens worden de resultaten via de pijplijn verzonden naar de Group-Object
cmdlet, die de resultaten groepeert op basis van de 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
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
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 weergegeven items wilt verhogen, verhoogt u de waarde van $FormatEnumerationLimit
naar 1000. 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 gegevensstromen instellen die u wilt weergeven aan gebruikers. Met name informatieve berichten 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 de ActionPreference
opsommingswaarden: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend of Break.
De geldige waarden zijn als volgt:
- Break : voer het foutopsporingsprogramma in wanneer u naar de informatiestroom schrijft.
- 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 blijft actief.
- SilentlyContinue: (Standaard) Geen effect. De informatieve berichten worden niet weergegeven en het script wordt zonder onderbreking voortgezet.
$Log*Gebeurtenis
De variabelen logboek*gebeurtenisvoorkeur bepalen welke typen gebeurtenissen worden geschreven naar het PowerShell-gebeurtenislogboek in Logboeken. Standaard worden alleen engine- en providergebeurtenissen geregistreerd. Maar u kunt de variabelen logboek*gebeurtenisvoorkeur gebruiken om uw logboek aan te passen, zoals het vastleggen van gebeurtenissen over opdrachten.
De variabelen logboek*gebeurtenisvoorkeur 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 beveiligingsonderzonderingen in opdrachtdetectie. De standaardwaarde is$false
(niet geregistreerd).$LogEngineHealthEvent
: Registreert fouten en fouten van sessies. De standaardwaarde is$true
(geregistreerd).$LogEngineLifecycleEvent
: Registreert het openen en sluiten van sessies. De standaardwaarde is$true
(geregistreerd).$LogProviderHealthEvent
: registreert providerfouten, zoals lees- en schrijffouten, opzoekfouten en aanroepfouten. De standaardwaarde is$true
(geregistreerd).$LogProviderLifecycleEvent
: Logboeken die PowerShell-providers toevoegen en verwijderen. De standaardwaarde is$true
(geregistreerd). Zie about_Providers voor meer informatie over PowerShell-providers.
Als u een Log*Event wilt inschakelen, typt u de variabele met een waarde van $true
, bijvoorbeeld:
$LogCommandLifeCycleEvent = $true
Als u een gebeurtenistype wilt uitschakelen, typt u de variabele met een waarde van $false
, bijvoorbeeld:
$LogCommandLifeCycleEvent = $false
De gebeurtenissen die u inschakelt, zijn alleen effectief 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.
$MaximumHistoryCount
Bepaalt hoeveel opdrachten worden opgeslagen in de opdrachtgeschiedenis voor de huidige sessie.
Geldige waarden: 1 - 32768 (Int32
)
Standaardinstelling: 4096
Als u het aantal opdrachten wilt bepalen dat momenteel is opgeslagen in de opdrachtgeschiedenis, typt u:
(Get-History).Count
Als u de opdrachten wilt zien die zijn opgeslagen in uw sessiegeschiedenis, gebruikt u de Get-History
cmdlet. Zie about_History voor meer informatie.
$OFS
Het scheidingsteken voor uitvoervelden (OFS) geeft het teken op dat de elementen scheidt van een matrix die wordt geconverteerd naar een tekenreeks.
Geldige waarden: elke tekenreeks.
Standaardinstelling: spatie
Standaard bestaat de $OFS
variabele niet en is het scheidingsteken voor uitvoerbestanden een spatie, maar u kunt deze variabele toevoegen en instellen op een willekeurige tekenreeks. U kunt de waarde van $OFS
in 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 erop letten dat de $OFS
standaardwaarde elders in uw code niet 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 gegoten.
$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 $OFS
hebben.
$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 wordt de variabele verwijderd en wordt gecontroleerd of het scheidingsteken een spatie is.
Remove-Variable OFS
[string]$array
1 2 3 4
$OutputEncoding
Bepaalt de tekencoderingsmethode die PowerShell gebruikt bij het doorsniëren van gegevens in systeemeigen toepassingen.
Notitie
In de meeste scenario's moet de waarde voor $OutputEncoding
worden uitgelijnd met de waarde van [Console]::InputEncoding
.
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
Met de eerste opdracht wordt de waarde van $OutputEncoding
gevonden. Omdat de waarde een coderingsobject is, geeft u alleen de eigenschap EncodingName weer.
$OutputEncoding.EncodingName
In de resterende voorbeelden wordt het volgende PowerShell-script gebruikt dat is opgeslagen als hexdump.ps1
om het gedrag van $OutputEncoding
te illustreren.
$inputStream = [Console]::OpenStandardInput()
try {
$buffer = [byte[]]::new(1024)
$read = $inputStream.Read($buffer, 0, $buffer.Length)
Format-Hex -InputObject $buffer -Count $read
} finally {
$inputStream.Dispose()
}
In het volgende voorbeeld ziet u hoe de tekenreekswaarde café
wordt gecodeerd naar bytes wanneer deze hierboven wordt doorgesluisd naar hexdump.ps1
. Het laat zien dat de tekenreekswaarde is gecodeerd met behulp van het UTF8Encoding-schema .
'café' | pwsh -File ./hexdump.ps1
Label: Byte[] (System.Byte[]) <28873E25>
Offset Bytes Ascii
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
------ ----------------------------------------------- -----
0000000000000000 63 61 66 C3 A9 0D 0A caf�
In het volgende voorbeeld ziet u hoe de bytes veranderen wanneer de codering wordt gewijzigd in UnicodeEncoding.
$OutputEncoding = [System.Text.Encoding]::Unicode
'café' | pwsh -File ./hexdump.ps1
Label: Byte[] (System.Byte[]) <515A7DC3>
Offset Bytes Ascii
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
------ ----------------------------------------------- -----
0000000000000000 FF FE 63 00 61 00 66 00 E9 00 0D 00 0A 00 ÿþc a f é � �
$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
opsommingswaarden: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend of Break.
De geldige waarden zijn als volgt:
- Break : voer het foutopsporingsprogramma in wanneer u naar de voortgangsstroom schrijft.
- Stoppen: 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
ofA
, wordt de voortgangsbalk weergegeven. - Doorgaan: (standaard) Hiermee wordt de voortgangsbalk weergegeven en wordt de uitvoering voortgezet.
- SilentlyContinue: de opdracht wordt uitgevoerd, maar de voortgangsbalk wordt niet weergegeven.
$PSDefaultParameterValues
Hiermee geeft u standaardwaarden voor de parameters van cmdlets en geavanceerde functies.
De waarde van $PSDefaultParameterValues
is een hash-tabel waarin 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 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 schakelt u het automatisch importeren van modules in de sessie in en uit. De $PSModuleAutoloadingPreference
variabele bestaat standaard niet. Het standaardgedrag wanneer de variabele niet is gedefinieerd, is hetzelfde als $PSModuleAutoloadingPreference = 'All'
.
Als u een module automatisch wilt importeren, moet u een opdracht in de module ophalen of gebruiken.
De $PSModuleAutoloadingPreference
variabele neemt een van de PSModuleAutoLoadingPreference
opsommingswaarden:
All
: 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 bijvoorbeeld typtMyModule\MyCommand
, importeert PowerShell de module MyModule .None
: Hiermee schakelt u het automatisch importeren van modules uit. Gebruik deImport-Module
cmdlet om een module te importeren.
Zie about_Modules voor meer informatie over het automatisch importeren van modules.
$PSNativeCommandArgumentPassing
PowerShell 7.3 heeft de manier gewijzigd waarop de opdrachtregel voor systeemeigen opdrachten wordt geparseerd.
De nieuwe $PSNativeCommandArgumentPassing
voorkeursvariabele bepaalt dit gedrag.
Waarschuwing
Het nieuwe gedrag is een belangrijke wijziging van het vorige gedrag. Hierdoor kunnen scripts en automatisering worden onderbroken die de verschillende problemen omzeilen bij het aanroepen van systeemeigen toepassingen.
Met de automatische variabele $PSNativeCommandArgumentPassing
kunt u het gedrag tijdens runtime selecteren. De geldige waarden zijn Legacy
, Standard
en Windows
. Legacy
is het historische gedrag.
De $PSNativeCommandArgumentPassing
variabele wordt standaard gedefinieerd, maar de waarde is platformspecifiek.
- In Windows is de voorkeur ingesteld op
Windows
. - Op niet-Windows-platforms is de voorkeur ingesteld op
Standard
. - Als u de
$PSNativeCommandArgumentPassing
variabele hebt verwijderd, gebruikt PowerShell hetStandard
gedrag.
Het gedrag van Windows
de modus en Standard
is hetzelfde, behalve dat PowerShell in Windows
de modus het gedrag van argumentdoorgifte Legacy
gebruikt wanneer u de volgende bestanden uitvoert.
cmd.exe
cscript.exe
find.exe
sqlcmd.exe
wscript.exe
- Bestanden die eindigen op:
.bat
.cmd
.js
.vbs
.wsf
Als de $PSNativeCommandArgumentPassing
is ingesteld op Legacy
of Standard
, controleert de parser niet op deze bestanden. Zie about_Parsing voor voorbeelden van het nieuwe gedrag.
PowerShell 7.3 heeft ook de mogelijkheid toegevoegd om parameterbinding te traceren voor systeemeigen opdrachten. Zie Trace-Command voor meer informatie.
$PSNativeCommandUseErrorActionPreference
Deze voorkeursvariabele is beschikbaar in PowerShell 7.3 en hoger met de PSNativeCommandErrorActionPreference
functie ingeschakeld.
Als deze functie is ingeschakeld, veroorzaken systeemeigen opdrachten met niet-nul afsluitcodes fouten op $ErrorActionPreference
basis van wanneer $PSNativeCommandUseErrorActionPreference
is $true
.
Notitie
PSNativeCommandUseErrorActionPreference
is een experimentele functie die is toegevoegd in PowerShell 7.3. Zie Experimentele functies gebruiken voor meer informatie.
Sommige systeemeigen opdrachten, zoals robocopy , gebruiken niet-nul afsluitcodes om andere informatie dan fouten weer te geven. In dergelijke gevallen kunt u het gedrag tijdelijk uitschakelen en voorkomen dat niet-nul afsluitcodes fouten veroorzaken.
& {
# Disable $PSNativeCommandUseErrorActionPreference for this scriptblock
$PSNativeCommandUseErrorActionPreference = $false
robocopy.exe D:\reports\operational "\\reporting\ops" CY2022Q4.md
if ($LASTEXITCODE -gt 8) {
throw "robocopy failed with exit code $LASTEXITCODE"
}
}
In dit voorbeeld wordt de $PSNativeCommandUseErrorActionPreference
variabele gewijzigd in een scriptblok. De wijziging is lokaal in het scriptblock. Wanneer het scriptblock wordt afgesloten, wordt de variabele teruggezet naar de vorige waarde.
$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 standaardnaam van de systeemtoepassing is WSMAN
, maar u kunt deze voorkeursvariabele gebruiken om de standaardinstelling te wijzigen.
De toepassingsnaam is het laatste knooppunt in een verbindings-URI. De naam van de toepassing in de volgende voorbeeld-URI is WSMAN
bijvoorbeeld .
http://Server01:8080/WSMAN
De standaardtoepassingsnaam wordt gebruikt wanneer de externe opdracht geen verbindings-URI of toepassingsnaam opgeeft.
De WinRM-service gebruikt de naam van de toepassing 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 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 het maken van nieuwe sessies in de huidige sessie.
Deze voorkeursvariabele wordt ingesteld op de lokale computer, maar hiermee wordt een sessieconfiguratie opgegeven 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 microsoft.PowerShell-sessieconfiguratie op de externe computer aan.
Als u alleen een configuratienaam opgeeft, wordt de volgende schema-URI vooraf ingesteld:
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
cmdlets , Enter-PSSession
of Invoke-Command
.
U kunt de waarde van deze variabele op elk gewenst moment wijzigen. Wanneer u dit doet, moet u er rekening mee houden dat de sessieconfiguratie die u selecteert, op de externe computer moet bestaan. Als dit niet het probleem is, 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 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 voorkeursvariabele $PSSessionOption
in elke PowerShell-sessie wilt gebruiken, voegt u een New-PSSessionOption
opdracht toe waarmee de $PSSessionOption
variabele wordt gemaakt aan uw PowerShell-profiel. 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 standaardinstellingen 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 object PSSessionOption als de waarde van de parameter SessionOption in cmdlets waarmee een sessie wordt gemaakt, zoals New-PSSession
, Enter-PSSession
en Invoke-Command
.
$PSStyle
Vanaf PowerShell 7.2 hebt u nu toegang tot de $PSStyle
automatische variabele om de weergave van ANSI-tekenreeksuitvoer weer te geven en te wijzigen. $PSStyle
is een exemplaar van de klasse PSStyle . De leden van deze klasse definiëren tekenreeksen die ANSI-escapereeksen bevatten waarmee de weergave van tekst in de terminal wordt bepaald.
De basisleden retourneren tekenreeksen van ANSI-escapereeksen die zijn toegewezen aan hun namen. De waarden zijn ingesteld om aanpassingen toe te staan. Met de eigenschapsnamen kunt u gemakkelijker gedecoreerde tekenreeksen maken met behulp van tabvoltooiing. Bijvoorbeeld:
"$($PSStyle.Background.BrightCyan)Power$($PSStyle.Underline)$($PSStyle.Bold)Shell$($PSStyle.Reset)"
De leden Achtergrond en Voorgrond hebben ook een methode om een FromRgb()
24-bits kleur op te geven.
Zie about_ANSI_Terminals voor meer informatie over$PSStyle
.
$Transcript
Wordt gebruikt door Start-Transcript
om de naam en locatie van het transcriptbestand op te geven. Als u geen waarde opgeeft voor de path-parameter , 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 transcripten op de volgende locatie op met de standaardnaam:
- In Windows:
$HOME\Documents
- In Linux of macOS:
$HOME
De standaardbestandsnaam is: PowerShell_transcript.<computername>.<random>.<timestamp>.txt
.
$VerbosePreference
Bepaalt hoe PowerShell reageert op uitgebreide berichten die zijn gegenereerd door een script, cmdlet of provider, zoals de berichten die worden gegenereerd door de cmdlet Write-Verbose . Uitgebreide berichten beschrijven de acties die zijn uitgevoerd om een opdracht uit te voeren.
Standaard worden uitgebreide berichten niet weergegeven, maar u kunt dit gedrag wijzigen door de waarde van $VerbosePreference
te wijzigen.
De $VerbosePreference
variabele gebruikt een van de ActionPreference
opsommingswaarden: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend of Break.
De geldige waarden zijn als volgt:
- Break : voer het foutopsporingsprogramma in wanneer u naar de uitgebreide stream schrijft.
- Stoppen: 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) Het uitgebreide bericht wordt niet weergegeven. Wordt uitgevoerd.
U kunt de algemene parameter Uitgebreid 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 parameter Uitgebreid 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 Message , maar schrijft geen bericht naar de PowerShell-console.
Write-Verbose -Message "Verbose message test."
Wanneer de parameter Uitgebreid 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 parameter Uitgebreid gebruikt met een waarde van $false
die de waarde Doorgaan 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 parameter Uitgebreid gebruikt met een waarde van $false
die de 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 [?] Help (default is "Y"):
In dit voorbeeld wordt de parameter Uitgebreid gebruikt met een waarde van $false
die 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 zijn 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
te wijzigen.
De $WarningPreference
variabele gebruikt een van de ActionPreference
opsommingswaarden: SilentlyContinue, Stop, Continue, Inquire, Ignore, Suspend of Break.
De geldige waarden zijn als volgt:
- Break : voer het foutopsporingsprogramma in wanneer er een waarschuwingsbericht wordt geschreven.
- Stoppen: geeft het waarschuwingsbericht en een foutbericht weer en stopt met uitvoeren.
- Inquire: geeft het waarschuwingsbericht weer en vraagt vervolgens om toestemming om door te gaan.
- Doorgaan: (standaard) Geeft het waarschuwingsbericht weer en gaat vervolgens verder met uitvoeren.
- 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 [?] Help (default is "Y"):
In dit voorbeeld wordt de parameter WarningAction gebruikt met de waarde SilentlyContinue. De opdracht wordt 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 [?] 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 wordt de opdracht niet uitgevoerd.
De geldige waarden zijn als volgt:
- False (0, niet ingeschakeld): (Standaard) WhatIf wordt niet automatisch ingeschakeld. Als u dit 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 parameter WhatIf 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 parameter WhatIf 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 Onwaar. Gebruik Get-ChildItem
om te controleren of het bestand bestaat.
Remove-Item
hiermee verwijdert u 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 parameter WhatIf wanneer de waarde van $WhatIfPreference
Onwaar 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 van een poging om het bestand te verwijderen te bepalen.
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 True. Wanneer u gebruikt Remove-Item
om een bestand te verwijderen, 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 niet wordt 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. De parameter WhatIf wordt 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 voorbeelden van de Get-Process
cmdlet die WhatIf niet ondersteunt en Stop-Process
die wel WhatIf ondersteunt. De $WhatIfPreference
waarde van de variabele is True.
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 wordt niet gestopt.
Stop-Process -Name Winword
What if: Performing the operation "Stop-Process" on target "WINWORD (15024)".
U kunt het Stop-Process
WhatIf-gedrag overschrijven met behulp van de WhatIf-parameter met de waarde .$false
Het Winword-proces is gestopt.
Stop-Process -Name Winword -WhatIf:$false
Gebruik Get-Process
om te controleren of het Winword-proces is gestopt.
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