THEMA
Einstellungsvariablen
KURZBESCHREIBUNG
Variablen zur Anpassung des Verhaltens von Windows PowerShell
DETAILBESCHREIBUNG
Windows PowerShell enthält einen Satz von Variablen, mit denen
Sie das Verhalten anpassen können. Diese "Einstellungsvariablen"
werden analog zu den Optionen in GUI-basierten Systemen verwendet.
Die Einstellungsvariablen wirken sich auf die Betriebssystemumge-
bung von Windows PowerShell sowie auf alle in der Umgebung
ausgeführten Befehle aus. In vielen Fällen verfügen die Cmdlets
über Parameter, mit denen Sie das bevorzugte Verhalten für einen
bestimmten Befehl überschreiben können.
In der folgenden Tabelle sind die Einstellungsvariablen und ihre
Standardwerte aufgeführt.
Variable Standardwert
-------- -------------
$ConfirmPreference High
$DebugPreference SilentlyContinue
$ErrorActionPreference Continue
$ErrorView NormalView
$FormatEnumerationLimit 4
$LogCommandHealthEvent False (nicht protokolliert)
$LogCommandLifecycleEvent False (nicht protokolliert)
$LogEngineHealthEvent True (protokolliert)
$LogEngineLifecycleEvent True (protokolliert)
$LogProviderLifecycleEvent True (protokolliert)
$LogProviderHealthEvent True (protokolliert)
$MaximumAliasCount 4096
$MaximumDriveCount 4096
$MaximumErrorCount 256
$MaximumFunctionCount 4096
$MaximumHistoryCount 64
$MaximumVariableCount 4096
$OFS (Leerzeichen (" "))
$OutputEncoding ASCIIEncoding-Objekt
$ProgressPreference Continue
$PSEmailServer (None)
$PSSessionApplicationName WSMAN
$PSSessionConfigurationName https://schemas.microsoft.com/powershell/microsoft.powershell
$PSSessionOption (Siehe unten)
$VerbosePreference SilentlyContinue
$WarningPreference Continue
$WhatIfPreference 0
Windows PowerShell enthält auch folgende Umgebungsvariablen, in
denen Benutzereinstellungen gespeichert werden. Weitere
Informationen über die Umgebungsvariablen finden Sie unter
"about_environment_variables".
Variable
--------
PSModulePath
ARBEITEN MIT EINSTELLUNGSVARIABLEN
In diesem Dokument werden die einzelnen Einstellungsvariablen
beschrieben.
Um den aktuellen Wert einer bestimmten Einstellungsvariable
anzuzeigen, geben Sie den Namen der Variablen ein. Daraufhin wird
der Wert von Windows PowerShell angezeigt. Mit dem folgenden
Befehl wird beispielsweise der Wert der Variablen
"$ConfirmPreference" angezeigt.
PS> $ConfirmPreference
High
Um den Wert einer Variable zu ändern, verwenden Sie eine
Zuweisungsanweisung. In der folgenden Anweisung wird
beispielsweise der Variablen "$ConfirmPreference" der Wert
"Medium" zugewiesen.
PS> $ConfirmPreference = "Medium"
Die Werte, die Sie festlegen, gelten wie alle Variablen für das
aktuelle Windows PowerShell-Fenster. Fügen Sie die Werte dem
Windows PowerShell-Profil hinzu, wenn diese für alle Windows
PowerShell-Fenster gelten sollen. Weitere Informationen finden
Sie unter "about_profiles".
REMOTE ARBEITEN
Wenn Sie Befehle auf einem Remotecomputer ausführen, sind die
Remotebefehle nur von den Einstellungen im Windows PowerShell-Client
auf dem Remotecomputer abhängig. Wenn Sie beispielsweise einen
Remotebefehl ausführen, bestimmt der Wert der Variablen
"$DebugPreference" auf dem Remotecomputer, wie PowerShell auf
Debugmeldungen reagiert.
Weitere Informationen über Remotebefehle finden Sie unter
"about_remote".
$ConfirmPreference
------------------
Gibt an, welche Cmdlet-Aktionen automatisch eine Bestätigung vom
Benutzer anfordern, bevor sie ausgeführt werden.
Wenn der Wert "$ConfirmPreference" (High, Medium, Low, None)
größer oder gleich dem Risiko der Cmdlet-Aktion (High, Medium,
Low, None) ist, fordert Windows PowerShell vor dem Ausführen der
Aktion automatisch eine Bestätigung vom Benutzer an.
Mit dem Confirm-Parameter eines Cmdlet können Sie die Einstellung
für einen bestimmten Befehl überschreiben.
Gültige Werte:
None: Cmdlet-Aktionen werden nicht automatisch bestätigt. Benutzer
müssen die Bestätigung für bestimmte Befehle mit dem Confirm-Parameter
anfordern.
Low: Cmdlet-Aktionen mit niedrigem, mittlerem oder hohem Risiko werden
automatisch bestätigt. Mit "-Confirm:$false" können Sie die
Bestätigung für einen bestimmten Befehl unterdrücken.
Medium: Cmdlet-Aktionen mit mittlerem oder hohem Risiko werden
automatisch bestätigt. Mit "-confirm" können Sie die Bestätigung
für einen bestimmten Befehl aktivieren. Mit "confirm:$false" können
Sie die Bestätigung für einen bestimmten Befehl unterdrücken.
High: Cmdlet-Handlungen mit hohem Risiko werden
(Standard) automatisch bestätigt. Mit "-confirm" können Sie die Bestätigung
für einen bestimmten Befehl aktivieren. Mit "-confirm:$false"
können Sie die Bestätigung für einen bestimmten Befehl unterdrücken.
DETAILBESCHREIBUNG
Wenn sich eine Cmdlet-Aktion erheblich auf das System
auswirkt, beispielsweise durch das Löschen von Daten oder
Nutzen einer erheblichen Menge an Systemressourcen, können
Sie von Windows PowerShell vor dem Ausführen der Aktion
automatisch zur Bestätigung aufgefordert werden.
Beispiel:
PS> remove-item pref2.txt
Bestätigung
Möchten Sie diese Aktion wirklich ausführen?
Ausführen des Vorgangs "Datei entfernen" für das Ziel
"C:\pref2.txt".
[J] Ja [A] Ja, alle [N] Nein [K] Nein, keine [H] Anhalten [?] Hilfe (Der Standardwert ist "J"):
Die Schätzung des Risikos ist Teil des Cmdlet "ConfirmImpact".
Eine Änderung ist nicht möglich.
Cmdlets, die möglicherweise ein Risiko für das System
darstellen, verfügen über einen Confirm-Parameter, mit dem
Sie eine Bestätigung für einen bestimmten Befehl anfordern
oder unterdrücken können.
Da die meisten Cmdlets den Standardrisikowert "Medium" verwenden,
und der Standardwert von "$ConfirmPreference" gleich "High" ist,
erfolgt nur selten eine automatische Bestätigung. Sie können die
automatische Bestätigung jedoch aktivieren, indem Sie den Wert von
"$ConfirmPreference" in "Medium" oder "Low" ändern.
BEISPIELE
In diesem Beispiel werden die Auswirkungen des Standardwerts von
"$ConfirmPreference" veranschaulicht. Beim Wert "High" werden nur
Cmdlet-Aktionen mit hohem Risiko bestätigt. Da die meisten Aktionen
ein mittleres Risiko aufweisen, werden sie nicht automatisch
bestätigt. Mit dem Confirm-Parameter des Cmdlet können Sie jedoch
eine Bestätigung für einen bestimmten Befehl anfordern.
PS> $confirmpreference #Aktuellen Wert der Variablen abrufen
High
PS> remove-item temp1.txt #Datei löschen
PS> #Gelöscht ohne Bestätigung
PS> remove-item temp2.txt -confirm #Confirm-Parameter verwenden
Bestätigung
Möchten Sie diese Aktion wirklich ausführen?
Ausführen des Vorgangs "Datei entfernen" für das Ziel
"C:\temp2.txt".
[J] Ja [A] Ja, alle [N] Nein [K] Nein, keine [H] Anhalten [?] Hilfe (Der Standardwert ist "J"):
In diesem Beispiel werden die Auswirkungen einer Änderung des
Werts von "$ConfirmPrefernce" in "Medium" veranschaulicht. Da
die meisten Cmdlet-Aktionen ein mittleres Risiko aufweisen,
werden sie automatisch bestätigt. Mit dem Confirm-Parameter
und dem Wert "$false" können Sie die Bestätigungsaufforderung
für einen bestimmten Befehl unterdrücken.
PS> $confirmpreference = "Medium"
#Werts von "$ConfirmPreference" ändern
PS> remove-item temp2.txt
#Bestätigung nach Löschen einer Datei
Bestätigung
Möchten Sie diese Aktion wirklich ausführen?
Ausführen des Vorgangs "Datei entfernen" für das Ziel
"C:\temp2.txt".
[J] Ja [A] Ja, alle [N] Nein [K] Nein, keine [H] Anhalten
[?] Hilfe (Der Standardwert ist "J"):
PS> remove-item temp3.txt -confirm:$false #Bestätigung mit
dem Confirm-Parameter unterdrücken
PS>
$DebugPreference
------------------
Bestimmt, wie PowerShell auf Debugmeldungen reagiert, die von einem
Skript, Cmdlet oder Anbieter oder durch einen Write-Debug-Befehl in
der Befehlszeile generiert werden.
Bei den Debugmeldungen, die von einigen Cmdlets angezeigt
werden, handelt es sich um sehr technische Meldungen, die für
Programmierer und Mitarbeiter des technischen Supports
bestimmt sind. Standardmäßig werden Debugmeldungen nicht
angezeigt. Sie können Debugmeldungen jedoch anzeigen, indem
Sie den Wert von "$DebugPreference" ändern.
Sie können auch den allgemeinen Debug-Parameter eines Cmdlet
verwenden, um die Debugmeldungen für einen bestimmten Befehl
anzuzeigen oder auszublenden. Weitere Informationen erhalten
Sie mit folgendem Befehl: "get-help about_commonparameters".
Gültige Werte:
Stop: Zeigt die Debugmeldung an und beendet die
Ausführung. Schreibt einen Fehler in die Konsole.
Inquire: Zeigt die Debugmeldung an und
fragt, ob Sie fortfahren möchten.
Continue: Zeigt die Debugmeldung an und
fährt mit der Ausführung fort.
SilentlyContinue : Keine Auswirkungen. Die Debugmeldung wird nicht
(Standard) angezeigt und die Ausführung ohne
Unterbrechung fortgesetzt.
BEISPIELE
In den folgenden Beispielen werden die Auswirkungen einer
Änderung der Werte von "$DebugPreference" bei Eingabe eines
Write-Debug-Befehls in der Befehlszeile veranschaulicht. Die
Änderung wirkt sich auf alle Debugmeldungen einschließlich der
Meldungen aus, die von Cmdlets und Skripts generiert wurden.
Weiterhin wird in den Beispielen die Verwendung des allgemeinen
Debug-Parameters veranschaulicht, der die Debugmeldungen für
einen einzelnen Befehl anzeigt oder ausblendet.
In diesem Beispiel werden die Auswirkungen des Standardwerts
"SilentlyContinue" veranschaulicht. Die Debugmeldung wird nicht
angezeigt und die Verarbeitung fortgesetzt. Der abschließende
Befehl überschreibt die Einstellung für einen einzelnen Befehl
mit dem Debug-Parameter.
PS> $debugpreference # Aktuellen Wert abrufen
SilentlyContinue $DebugPreference
PS> write-debug "Hallo, Welt"
PS> # Die Debugmeldung wird nicht angezeigt.
PS> write-debug "Hallo, Welt" -Debug # Debug-Parameter verwenden
DEBUG: Hallo, Welt # Debugmeldung wird angefordert
Bestätigung?
Vorgang fortsetzen?
[J] Ja [A] Ja, alle [B] Befehl anhalten [H] Anhalten [?] Hilfe (Der Standardwert ist "J"):
In diesem Beispiel werden die Auswirkungen des Werts "Continue"
veranschaulicht. Der abschließende Befehl verwendet den
Debug-Parameter mit dem Wert "$false", um die Meldung für einen
einzelnen Befehl zu unterdrücken.
PS> $debugpreference = "Continue" # Wert in "Continue" ändern
PS> write-debug "Hallo, Welt"
DEBUG: Hallo, Welt # Die Debugmeldung wird
PS> angezeigt und die Verarbeitung fortgesetzt.
PS> write-debug "Hallo, Welt" -Debug:$false
# Debug-Parameter mit
"false" verwenden
PS> # Die Debugmeldung wird nicht angezeigt.
In diesem Beispiel werden die Auswirkungen des Werts "Stop"
veranschaulicht. Der abschließende Befehl verwendet den
Debug-Parameter mit dem Wert "$false", um die Meldung für einen
einzelnen Befehl zu unterdrücken.
PS> $debugpreference = "Stop" # Wert in "Stop" ändern
PS> write-debug "Hallo, Welt"
DEBUG: Hallo, Welt
Write-Debug : Die Befehlsausführung wurde beendet, da die
Shellvariable "DebugPreference" auf Stop festgelegt ist.
Bei Zeile:1 Zeichen:12
+ write-debug <<<< "Hallo, Welt"
PS> write-debug "Hallo, Welt" -Debug:$false
# Debug-Parameter mit
"$false" verwenden
PS> # Die Debugmeldung wird nicht angezeigt
und die Verarbeitung nicht beendet.
In diesem Beispiel werden die Auswirkungen des Werts "Inquire"
veranschaulicht. Der abschließende Befehl verwendet den
Debug-Parameter mit dem Wert "$false", um die Meldung für einen
einzelnen Befehl zu unterdrücken.
PS> $debugpreference = "Inquire"
PS> write-debug "Hallo, Welt"
DEBUG: Hallo, Welt
Bestätigung
Vorgang fortsetzen?
[J] Ja [A] Ja, alle [B] Befehl anhalten [H] Anhalten [?] Hilfe (Der Standardwert ist "J"):
PS> write-debug "Hallo, Welt" -Debug:$false
# Debug-Parameter mit
"$false" verwenden
PS> # Die Debugmeldung wird nicht angezeigt
und die Verarbeitung ohne
Unterbrechung fortgesetzt.
$ErrorActionPreference
----------------------
Bestimmt, wie Windows PowerShell in der Befehlszeile oder in einem
Skript, Cmdlet oder Anbieter auf einen Fehler ohne Abbruch (ein
Fehler, durch den die Cmdlet-Verarbeitung nicht beendet wird)
reagiert, beispielsweise auf Fehler, die vom Cmdlet "Write-Error"
generiert werden.
Sie können auch den allgemeinen ErrorAction-Parameter eines
Cmdlet verwenden, um die Einstellung für einen bestimmten
Befehl zu überschreiben. Weitere Informationen erhalten Sie
mit folgendem Befehl: "get-help about_commonparameters".
Gültige Werte:
Stop: Zeigt die Fehlermeldung an und beendet die
Ausführung.
Inquire: Zeigt die Fehlermeldung an und
fragt, ob Sie fortfahren möchten.
Continue: Zeigt die Fehlermeldung an und
setzt die Ausführung fort.
SilentlyContinue: Keine Auswirkungen. Die Fehlermeldung
(Standard) wird nicht angezeigt und die Ausführung
ohne Unterbrechung fortgesetzt.
Der allgemeine $ErrorActionPreference-Parameter und der
allgemeine ErrorAction-Parameter haben keine Auswirkungen auf
die Reaktion von Windows PowerShell auf Fehler mit Abbruch
(Fehler, durch die die Cmdlet-Verarbeitung beendet wird).
Weitere Informationen über den allgemeinen ErrorAction-Parameter
erhalten Sie mit folgendem Befehl: "get-help about_commonpara
meters".
BEISPIELE
In diesen Beispielen werden die Auswirkungen verschiedener Werte
von "$ErrorActionPreference" sowie die Verwendung des allgemeinen
ErrorAction-Parameters zum Überschreiben der Einstellung für
einen einzelnen Befehl veranschaulicht. Der ErrorAction-Parameter
verfügt über die gleichen gültigen Werte wie die Variable
"$ErrorActionPreference".
In diesem Beispiel werden die Auswirkungen des Werts "Continue"
(Standard) veranschaulicht.
PS> $erroractionpreference
Continue # Wert der Einstellung anzeigen
PS> write-error "Hallo, Welt"
# Fehler ohne Abbruch generieren
write-error "Hallo, Welt" : Hallo, Welt
# Die Fehlermeldung wird angezeigt
und die Ausführung fortgeführt.
PS> write-error "Hallo, Welt" -ErrorAction:SilentlyContinue
# ErrorAction-Parameter mit dem Wert
"SilentlyContinue" verwenden
PS>
# Die Fehlermeldung wird nicht
angezeigt und die Ausführung fortgeführt.
In diesem Beispiel werden die Auswirkungen des Werts
"SilentlyContinue" veranschaulicht.
PS> $ErrorActionPreference = "SilentlyContinue"
# Wert der Einstellung ändern
PS> write-error "Hallo, Welt"
# Fehlermeldung generieren
PS>
# Fehlermeldung unterdrücken
PS> write-error "Hallo, Welt" -erroraction:continue
# ErrorAction-Parameter mit dem Wert
"Continue" verwenden
write-error "Hallo, Welt" -erroraction:continue: Hallo, Welt
# Die Fehlermeldung wird
angezeigt und die Ausführung fortgesetzt.
In diesem Beispiel werden die Auswirkungen eines realen Fehlers
veranschaulicht. In diesem Fall wird die nicht vorhandene Datei
"nofile.txt" vom Befehl abgerufen. Außerdem wird im Beispiel die
Einstellung mit dem allgemeinen ErrorAction-Parameter überschrieben.
PS> $erroractionpreference
SilentlyContinue # Wert der Einstellung anzeigen
PS> get-childitem -path nofile.txt
PS> # Fehlermeldung unterdrücken
PS> $ErrorActionPreference = "Continue"
# Wert in \\"Continue\\" ändern
PS> get-childitem -path nofile.txt
Get-ChildItem : Der Pfad 'C:\nofile.txt' kann nicht gefunden
werden, da er nicht vorhanden ist.
Bei Zeile:1 Zeichen:4
+ get-childitem <<<< nofile.txt
PS> get-childitem -path nofile.txt -erroraction SilentlyContinue
# ErrorAction-Parameter verwenden
PS>
# Fehlermeldung unterdrücken
PS > $ErrorActionPreference = "Inquire"
# Wert in \\"Inquire\\" ändern
PS> get-childitem -path nofile.txt
Bestätigung
Der Pfad 'C:\nofile.txt' kann nicht gefunden werden, da er nicht vorhanden ist.
[J] Ja [A] Ja, alle [B] Befehl anhalten [H] Anhalten [?] Hilfe (der Standardwert ist "J"): a
Get-ChildItem : Der Pfad 'C:\nofile.txt' kann nicht gefunden
werden, da er nicht vorhanden ist.
Bei Zeile:1 Zeichen:4
+ get-childitem <<<< nofile.txt
PS> $ErrorActionPreference = "Continue"
# Wert in \\"Continue\\" ändern
PS> Get-Childitem nofile.txt -erroraction "Inquire"
# Einstellungswert mit dem
ErrorAction-Parameter überschreiben
Bestätigung
Der Pfad 'C:\nofile.txt' kann nicht gefunden werden, da er nicht vorhanden ist.
[J] Ja [A] Ja, alle [B] Befehl anhalten [H] Anhalten [?] Hilfe (Der Standardwert ist "J"):
$ErrorView
----------
Bestimmt das Anzeigeformat von Fehlermeldungen in Windows
PowerShell.
Gültige Werte:
NormalView : Eine detaillierte Ansicht
(Standard) für die meisten Benutzer. Besteht aus einer Beschreibung des
Fehlers, dem Namen des Objekts für den Fehler sowie Pfeilen
(<<<<), die auf die Worte im Befehl zeigen, die den Fehler
verursacht haben.
CategoryView: Eine kompaktere strukturierte
Ansicht für Produktionsumgebungen. Das Format
ist:{Category}: ({TargetName}:{TargetType}):[{Activity}],
{Reason}
Weitere Informationen über die Felder in CategoryView finden
Sie unter "ErrorCategoryInfo-Klasse" im Windows PowerShell-SDK.
BEISPIELE
In diesem Beispiel werden die Auswirkungen der ErrorView-Werte
veranschaulicht.
In diesem Beispiel wird veranschaulicht, wie ein Fehler angezeigt
wird, wenn "$ErrorView" den Wert "NormalView" aufweist. In diesem
Fall wird eine nicht vorhandene Datei mit dem Befehl
"Get-ChildItem" gesucht.
PS> $ErrorView # Wert überprüfen
NormalView
PS> get-childitem nofile.txt # Nicht vorhandene Datei suchen
Get-ChildItem : Der Pfad 'C:\nofile.txt' kann nicht gefunden
werden, da er nicht vorhanden ist.
Bei Zeile:1 Zeichen:14
+ get-childitem <<<< nofile.txt
In diesem Beispiel wird veranschaulicht, wie der gleiche Fehler
angezeigt wird, wenn "$ErrorView" den Wert "CategoryView" aufweist.
PS> $ErrorView = "CategoryView" # Wert ändern in
CategoryView
PS> get-childitem nofile.txt
ObjectNotFound: (C:\nofile.txt:String) [Get-ChildItem], ItemNotFoundException
In diesem Beispiel wird veranschaulicht, dass sich der Wert von
ErrorView nur auf die Fehleranzeige auswirkt und die Struktur des
Fehlerobjekts in der automatischen Variablen "$error" dadurch
nicht geändert wird. Informationen über die automatische Variable
"$error" finden Sie unter "about_automatic_variables".
Dieser Befehl akzeptiert das ErrorRecord-Objekt, das mit dem
letzten Fehler im Fehlerarray verknüpft ist (Element 0), und
formatiert alle Eigenschaften des Fehlerobjekts in einer Liste.
PS> $error [0] | format-list -property * -force
Ausnahme : System.Management.Automation.ItemNotFoundException : Der Pfad
'C:\nofile.txt' kann nicht gefunden werden, da er nicht vorhanden ist. at
System.Management.Automation.SessionStateInternal.GetChildItems(String
path, Boolean recurse, CmdletProviderContext context) at
System.Management.Automation.ChildItemCmdletProviderIntrinsics.Get(String path,
Boolean recurse, 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
$FormatEnumerationLimit
-----------------------
Bestimmt, wie viele Elemente in einer Anzeige aufgelistet
werden. Diese Variable wirkt sich nicht auf die zugrunde
liegenden Objekte, sondern nur auf die Anzeige aus.
Wenn der Wert von $FormatEnumerationLimit kleiner als die
Anzahl der aufgelisteten Elemente ist, fügt Windows
PowerShell Auslassungspunkte (...) hinzu, um nicht angezeigte
Elemente anzugeben.
Gültige Werte: Ganze Zahlen (Int32)
Standardwert: 4
BEISPIELE
In diesem Beispiel wird gezeigt, wie die Variable
"$FormatEnumerationLimit" verwendet wird, um die Anzeige von
aufgelisteten Elementen zu verbessern.
Mit dem Befehl in diesem Beispiel wird eine Tabelle
generiert, in der alle Dienste, die auf dem Computer
ausgeführt werden, in zwei Gruppen aufgelistet werden: eine
Gruppe für Dienste, die gerade ausgeführt werden, und eine
Gruppe für Dienste, die beendet wurden. Dabei werden mit
einem Get-Service-Befehl alle Dienste abgerufen, und das
Ergebnis wird über die Pipeline an das Cmdlet "Group-Object"
übergeben, um die Ergebnisse nach dem Dienststatus zu gruppieren.
Die Ergebnisanzeige enthält eine Tabelle, in der der Status
in der Spalte "Name" und der Prozess mit diesem Status in der
Spalte "Group" aufgeführt werden. (Die Spaltenbezeichnungen
können mit einer Hashtabelle geändert werden. Weitere
Informationen finden Sie in den Beispielen unter "get-help
format-table -examples".)
Die Spalte "Group" enthält maximal 4 Dienste für jeden
Status. Um die Anzahl der aufgeführten Elemente zu erhöhen,
erhöhen Sie den Wert von $FormatEnumerationLimit auf 1000.
Die Liste in der Spalte "Group" in der Ergebnisanzeige wird
nun durch die Zeilenlänge beschränkt. Im abschließenden
Befehl des Beispiels werden mit dem Wrap-Parameter von
Format-Table alle Prozesse in der jeweiligen Statusgruppe
angezeigt.
PS> $formatenumerationlimit # Aktuellen Wert suchen
4
PS> get-service | group-object -property status
# Alle Dienste nach
Status auflisten
Count Name Group
----- ---- -----
60 Running {AdtAgent, ALG, Ati Hotkeywähler, AudioSrv...}
41 Stopped {Alerter, AppMgmt, aspnet_state, ATI Smart...}
# Die Liste wird nach 4
Elementen abgeschnitten.
PS> $formatenumerationlimit = 1000
# Grenze auf 1000 erhöhen
PS> get-service | group-object -property status
# Befehl wiederholen
Count Name Group
----- ---- -----
60 Running {AdtAgent, ALG, Ati Hotkeywähler, AudioSrv, BITS, CcmExec...
41 Stopped {Alerter, AppMgmt, aspnet_state, ATI Smart, Browser, CiSvc...
PS> get-service | group-object -property status | format-table -wrap
# Wrap-Parameter hinzufügen
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, FastUserSwitchingCompatibi
lity, HTTPFilter, ImapiService, Mapsvc, Messenger,
mnmsrvc, MSDTC, MSIServer, msvsmon80, NetDDE, NetDDEdsdm,
NtmsSvc, NVSvc, ose, RasAuto, RDSessMgr, RemoteAccess,
RpcLocator, RSVP, SCardSvr, SwPrv, SysmonLog, TlntSvr,
upnphost, UPS, VSS, WmdmPmSN, Wmi, WmiApSrv, xmlprov}
$Log*Event
----------
Die Log*Event-Einstellungsvariablen bestimmen, welche Typen
von Ereignissen in das Windows PowerShell-Ereignisprotokoll
in der Ereignisanzeige geschrieben werden. Standardmäßig
werden nur Modul- und Anbieterereignisse protokolliert. Sie
können das Ereignisprotokoll jedoch mit den Log*Event-
Einstellungsvariablen anpassen, um beispielsweise
Befehlsereignisse zu protokollieren.
Die Log*Event-Einstellungsvariablen sind folgende:
$LogCommandHealthEvent: Protokolliert Fehler und
Ausnahmen bei der Initialisierung und Verarbeitung von
Befehlen. Standard = $false (nicht protokolliert).
$LogCommandLifecycleEvent:
Protokolliert das Starten und Beenden von Befehlen
und Befehlspipelines sowie Sicherheitsausnahmen in
der Befehlserkennung. Standard = $false (nicht
protokolliert).
$LogEngineHealthEvent: Protokolliert Fehler von
Sitzungen. Standard = $true (protokolliert).
$LogEngineLifecycleEvent: Protokolliert das Öffnen und
Schließen von Sitzungen. Standard = $true (protokolliert).
$LogProviderHealthEvent: Protokolliert Anbieterfehler wie
Lese- und Schreibfehler, Suchfehler und Aufruffehler.
Standard = $true (protokolliert).
$LogProviderLifecycleEvent: Protokolliert das Hinzufügen
und Entfernen von Windows PowerShell-Anbietern.
Standard = $true (protokolliert). (Weitere
Informationen über die Windows PowerShell-Anbieter
erhalten Sie mit folgendem Befehl:
"get-help about_provider".
Geben Sie die Variable mit dem Wert "$true" ein, um ein
Log*Event zu aktivieren, beispielsweise:
$LogCommandLifecycleEvent
- oder -
$LogCommandLifeCycleEvent = $true
Geben Sie die Variable mit dem Wert "$false" ein, um einen
Ereignistyp zu deaktivieren, beispielsweise:
$LogCommandLifeCycleEvent = $false
Die Ereignisse, die Sie aktivieren, wirken sich nur auf die
aktuelle Windows PowerShell- Konsole aus. Um die
Konfiguration für alle Konsolen zu übernehmen, speichern Sie
die Variableneinstellungen im Windows PowerShell-Profil.
$MaximumAliasCount
------------------
Bestimmt, wie viele Aliase in einer Windows PowerShell-
Sitzung zulässig sind. Der Standardwert 4096 ist für die
meisten Verwendungszwecke ausreichend. Er kann jedoch an die
individuellen Anforderungen angepasst werden.
Gültige Werte: 1024 - 32768 (Int32)
Standard: 4096
Um die Aliase im System zu zählen, geben Sie Folgendes ein:
(get-alias).count
$MaximumDriveCount
------------------
Bestimmt, wie viele Windows PowerShell-Laufwerke in einer
angegebenen Sitzung zulässig sind. Dazu gehören
Dateisystemlaufwerke und Datenspeicher, die von Windows
PowerShell-Anbietern verfügbar gemacht und als Laufwerke
angezeigt werden, beispielsweise das Laufwerk "Alias:" und
das Laufwerk "HKLM:".
Gültige Werte: 1024 - 32768 (Int32)
Standard: 4096
Um die Aliase im System zu zählen, geben Sie Folgendes ein:
(get-psdrive).count
$MaximumErrorCount
------------------
Bestimmt, wie viele Fehler im Fehlerverlauf für die Sitzung
gespeichert werden.
Gültige Werte: 256 - 32768 (Int32)
Standard: 256
Objekte, die die einzelnen gespeicherten Fehler darstellen,
werden in der automatischen Variablen "$Error" gespeichert.
Diese Variable enthält ein Array von Fehlerdatensatzobjekten
mit einem Objekt pro Fehler. Der aktuellste Fehler stellt das
erste Objekt im Array ($Error [0]) dar.
Um die Fehler im System zu zählen, verwenden Sie die
Count-Eigenschaft des $Error-Arrays. Geben Sie Folgendes ein:
$Error.count
Mit der Arraynotation können Sie bestimmte Fehler anzeigen.
Geben Sie beispielsweise Folgendes ein, um den aktuellsten
Fehler anzuzeigen:
$Error[0]
Um den ältesten gespeicherten Fehler anzuzeigen, geben Sie
Folgendes ein:
$Error[($Error.Count -1]
Um die Eigenschaften des ErrorRecord-Objekts anzuzeigen,
geben Sie Folgendes ein:
$Error[0] | format-list -property * -force
In diesem Befehl überschreibt der Force-Parameter die
spezielle Formatierung von ErrorRecord-Objekten und stellt
das konventionelle Format wieder her.
Um alle Fehler aus dem Fehlerverlauf zu löschen, verwenden
Sie die Clear-Methode des Fehlerarrays.
PS> $Error.count
17
PS> $Error.clear()
PS>
PS> $Error.count
0
Um alle Eigenschaften und Methoden eines Fehlerarrays zu
suchen, verwenden Sie das Get-Member-Cmdlet mit dem
InputObject-Parameter. Wenn Sie eine Auflistung von Objekten
über die Pipeline an Get-Member übergeben, zeigt Get-Member
die Eigenschaften und Methoden der Objekte in der Auflistung
an. Wenn Sie die InputObject-Parameter von Get-Member
verwenden, zeigt Get-Member die Eigenschaften und Methoden der
Auflistung an.
$MaximumFunctionCount
------------------
Bestimmt, wie viele Funktionen in einer angegebenen Sitzung
zulässig sind.
Gültige Werte: 1024 - 32768 (Int32)
Standard: 4096
Um die Funktionen in der Sitzung anzuzeigen, verwenden Sie
das Windows PowerShell-Laufwerk "Function:", das vom Windows
PowerShell-Funktionsanbieter verfügbar gemacht wird. (Geben
Sie "get-help function" ein, um weitere Informationen über
den Funktionsanbieter zu erhalten.)
Um die Funktionen in der aktuellen Sitzung aufzulisten, geben
Sie Folgendes ein:
get-childitem function:
Um die Anzahl der Funktionen in der aktuellen Sitzung zu
bestimmen, geben Sie Folgendes ein:
(get-childitem function:).count
$MaximumHistoryCount
------------------
Bestimmt, wie viele Befehle im Befehlsverlauf für die
aktuelle Sitzung gespeichert werden.
Gültige Werte: 1 - 32768 (Int32)
Standard: 64
Um die Anzahl der Befehle zu bestimmen, die derzeit im
Befehlsverlauf gespeichert sind, geben Sie Folgendes ein:
(get-history).count
Mit dem Cmdlet "Get-History" können Sie den Befehl anzeigen,
der im Befehlsverlauf gespeichert wurde. Weitere
Informationen erhalten Sie mit folgendem Befehl: "get-help
about_history".
$MaximumVariableCount
------------------
Bestimmt, wie viele Variablen - einschließlich automatischer
Variablen, Einstellungsvariablen sowie in Befehlen und
Skripts erstellter Variablen - in einer angegebenen Sitzung
zulässig sind.
Gültige Werte: 1024 - 32768 (Int32)
Standard: 4096
Um die Variablen in der Sitzung anzuzeigen, verwenden Sie das
Cmdlet "Get-Variable" sowie die Features des Windows
PowerShell-Laufwerks "Variable:" und des Windows
PowerShell-Variablenanbieters. Informationen über den
Variablenanbieter erhalten Sie mit folgendem Befehl:
"get-help variable".
Um die aktuelle Anzahl von Variablen im System zu suchen,
geben Sie Folgendes ein:
(get-variable).count
$OFS
----
Ausgabetrennzeichen. Gibt das Zeichen an, das die Elemente
eines Arrays trennt, wenn das Array in eine Zeichenfolge
konvertiert wird.
Gültige Werte: eine beliebige Zeichenfolge.
Standard: Leerzeichen
Standardmäßig ist die Variable "$OFS" nicht vorhanden, und
das Ausgabetrennzeichen ist ein Leerzeichen. Sie können diese
Variable jedoch hinzufügen und auf eine beliebige
Zeichenfolge festlegen.
BEISPIELE
In diesem Beispiel wird gezeigt, wie ein Leerzeichen zur Trennung
der Werte verwendet wird, wenn ein Array in eine Zeichenfolge
konvertiert wird. In diesem Fall wird ein Array von ganzen Zahlen
in einer Variablen gespeichert, und die Variable wird in eine
Zeichenfolge umgewandelt.
PS> $array = 1,2,3 # Array von ganzen Zahlen speichern
PS> [string]$array # Array in eine Zeichenfolge umwandeln
1 2 3 # Elemente durch Leerzeichen trennen
Um das Trennzeichen zu ändern, fügen Sie die Variable "$OFS"
hinzu, indem Sie ihr einen Wert zuweisen. Um ordnungsgemäß zu
funktionieren, muss die Variable den Namen "$OFS" tragen.
PS> $OFS = "+" # "$OFS" erstellen und "+" zuweisen
PS> [string]$array # Befehl wiederholen
1+2+3 # Elemente durch Pluszeichen trennen
Um das Standardverhalten wiederherzustellen, können Sie dem Wert
von "$OFS" ein Leerzeichen (" ") zuweisen oder die Variable
löschen. Mit diesem Befehl wird die Variable gelöscht, und es
wird überprüft, ob das Trennzeichen ein Leerzeichen ist.
PS> Remove-Variable OFS # "$OFS" löschen
PS>
PS> [string]$array # Befehl wiederholen
1 2 3 # Elemente durch Leerzeichen trennen
$OutputEncoding
---------------
Bestimmt den Typ der Zeichencodierung, die von Windows
PowerShell beim Senden von Text an andere Anwendungen
verwendet wird. Wenn eine Anwendung beispielsweise
Unicode-Zeichenfolgen an Windows PowerShell zurückgibt, muss
der Wert möglicherweise geändert werden, um die Zeichen
ordnungsgemäß zu senden.
Gültige Werte: Objekte, die von einer Encoding-Klasse
abgeleitet wurden, beispielsweise ASCIIEncoding,
SBCSCodePageEncoding, UTF7Encoding, UTF8Encoding,
UTF32Encoding und UnicodeEncoding.
Standard: ASCIIEncoding-Objekt (System.Text.ASCIIEncoding)
BEISPIELE
In diesem Beispiel wird veranschaulicht, wie der Befehl
FINDSTR in Windows PowerShell auf einem Computer verwendet
wird, der für eine Sprache mit Unicode-Zeichen wie Chinesisch
lokalisiert wurde.
Mit dem ersten Befehl wird der Wert von "$OutputEncoding"
gesucht. Da der Wert ein Codierungsobjekt darstellt, sollte
nur die EncodingName-Eigenschaft angezeigt werden.
PS> $OutputEncoding.EncodingName # Aktuellen Wert suchen
US-ASCII
In diesem Beispiel werden mit einem FINDSTR-Befehl zwei
chinesischen Zeichen in der Datei "Test.txt" gesucht. Wenn der
FINDSTR-Befehl in der Windows-Eingabeaufforderung (Cmd.exe)
ausgeführt wird, sucht FINDSTR die Zeichen in der Textdatei.
Wenn Sie den gleichen FINDSTR-Befehl jedoch in Windows
PowerShell ausführen, werden die Zeichen nicht gefunden, da
sie von Windows PowerShell in ASCII-Text statt in Unicode-Text
an FINDSTR gesendet werden.
PS> findstr <Unicode-Zeichen> # findstr für die Suche verwenden
PS> # Nichts gefunden
Legen Sie den Wert von "$OutputEncoding" auf den Wert der
OutputEncoding-Eigenschaft der Konsole fest, die auf dem für
Windows ausgewählten Gebietsschema basiert, um den Befehl in
Windows PowerShell zu verwenden. Verwenden Sie doppelte
Doppelpunkte (::) im Befehl, da OutputEncoding eine statische
Eigenschaft der Konsole ist.
PS> $OutputEncoding = [console]::outputencoding
PS> # Gleichen Wert festlegen wie
OutputEncoding-Eigenschaft
der Konsole
PS> $OutputEncoding.EncodingName
OEM United States
# Ergebniswert suchen
Nach dieser Änderung werden die Zeichen vom Befehl FINDSTR
gefunden.
PS> findstr <Unicode-Zeichen>
test.txt: <Unicode-Zeichen>
# findstr für die Suche verwenden Sucht die
Zeichen in der Textdatei.
$ProgressPreference
-------------------
Bestimmt, wie PowerShell auf Statusaktualisierungen reagiert, die
von einem Skript, Cmdlet oder Anbieter generiert werden,
beispielsweise die Statusleisten, die vom Cmdlet "Write-Progress"
generiert werden. Mit dem Cmdlet "Write-Progress" werden
Statusleisten erstellt, die den Status eines Befehls darstellen.
Gültige Werte:
Stop: Zeigt keine Statusleiste an. Stattdessen
wird eine Fehlermeldung angezeigt,
und die Ausführung wird beendet.
Inquire: Zeigt keine Statusleiste an.
Fordert eine Berechtigung an,
um fortzufahren. Wenn Sie mit
J oder A antworten, wird
die Statusleiste angezeigt.
Continue: Zeigt die Statusleiste an und fährt
(Standard) mit der Ausführung fort.
SilentlyContinue: Führt den Befehl aus, zeigt jedoch
keine Statusleiste an.
$PSEmailServer
--------------
Gibt den Standard-E-Mail-Server an, der zum Senden von E-Mails
verwendet wird. Diese Einstellungsvariable wird beispielsweise
von Cmdlets wie "Send-MailMessage" verwendet, die E-Mails senden.
$PSSessionApplicationName
---------------------------
Gibt den Standardanwendungsnamen für einen Remotebefehl mit
WS-Management-Technologie an.
Der Standardanwendungsname des Systems ist WSMAN. Sie können
die Standardeinstellung jedoch mit der Einstellungsvariablen
ändern.
Der Anwendungsname ist der letzte Knoten in einem
Verbindungs-URI. So lautet der Anwendungsname im folgenden
Beispiel-URI WSMAN.
http://Server01:8080/WSMAN
Der Standardanwendungsname wird verwendet, wenn der
Remotebefehl keinen Verbindungs-URI oder Anwendungsnamen angibt.
Der WinRM-Dienst wählt mit dem Anwendungsnamen einen Listener
für die Verbindungsanforderung aus. Der Wert dieses Parameters
sollte mit dem Wert der URLPrefix-Eigenschaft eines Listeners
auf dem Remotecomputer übereinstimmen.
Um den Systemstandard und den Wert dieser Variablen zu
überschreiben und einen anderen Anwendungsnamen für eine
bestimmte Sitzung auszuwählen, verwenden Sie den
ConnectionURI-Parameter oder den ApplicationName-Parameter der
Cmdlets "New-PSSession", "Enter-PSSession" oder "Invoke-Command".
Diese Einstellungsvariable wird auf dem lokalen Computer
festgelegt, gibt jedoch einen Listener auf dem Remotecomputer
an. Wenn der angegebene Anwendungsname auf dem Remotecomputer
nicht vorhanden ist, führt der Befehl zum Einrichten der
Sitzung zu einem Fehler.
$PSSessionConfigurationName
---------------------------
Gibt die Standardsitzung an, die für PSSessions verwendet
wird, die in der aktuellen Sitzung erstellt wurden.
Diese Einstellungsvariable wird auf dem lokalen Computer
festgelegt, gibt jedoch eine Sitzungskonfiguration auf dem
Remotecomputer an.
Der Wert der $PSSessionConfigurationName-Variablen ist ein
vollqualifizierter Ressourcen-URI.
Der Standardwert:
https://schemas.microsoft.com/powershell/microsoft.powershell
gibt die Microsoft.PowerShell-Sitzungskonfiguration auf dem
Remotecomputer an.
Wenn Sie nur den Konfigurationsnamen angeben, wird der
folgende Schema-URI vorangestellt:
https://schemas.microsoft.com/powershell/
Sie können die Standardeinstellung überschreiben und mit dem
ConfigurationName-Parameter des Cmdlet "New-PSSession",
"Enter-PSSession" oder "Invoke-Command" eine andere
Sitzungskonfiguration für eine bestimmte Sitzung auswählen.
Sie können den Wert dieser Variablen jederzeit ändern.
Bedenken Sie dabei, dass die ausgewählte Sitzungskonfiguration
auf dem Remotecomputer vorhanden sein muss. Andernfalls führt
der Befehl zum Erstellen einer Sitzung für die Sitzungskonfigu-
ration zu einem Fehler.
Diese Einstellungsvariable hat keine Auswirkungen auf die lokalen
Sitzungskonfigurationen, die verwendet werden, wenn Remotebenutzer
eine Sitzung erstellen, die eine Verbindung mit diesem Computer
herstellt. Sie können mit den Berechtigungen für die lokalen
Sitzungskonfigurationen jedoch bestimmen, von welchen Benutzern diese
verwendet werden dürfen.
$PSSessionOption
----------------
Legt die Standardwerte für fortgeschrittene Benutzeroptionen
in einer Remotesitzung fest. Durch Konfiguration dieser
Optionen werden die Standardwerte des Systems für
Sitzungsoptionen überschrieben.
Sie können auch benutzerdefinierte Optionen für eine
bestimmte Remotesitzung festlegen, indem Sie den
SessionOption-Parameter in Cmdlets konfigurieren, mit denen
eine Sitzung erstellt wird, beispielsweise "New-PSSession",
"Enter-PSSession" und "Invoke-Command". Der SessionOption-Para-
meterwert hat Vorrang gegenüber den Standardeinstellungen im
System und in der Variablen.
Die Variable "$PSSessionOption" enthält ein PSSessionOption-Objekt
(System.Management.Automation.Remoting.PSSessionObject).
Jede Eigenschaft des Objekts stellt eine
Sitzungsoption dar. Beispielsweise deaktiviert die
NoCompression-Eigenschaft die Datenkomprimierung während der
Sitzung.
Um die Einstellungsvariable "$PSSessionOption" zu erstellen,
verwenden Sie das Cmdlet "New-PSSessionOption". Speichern Sie
die Ausgabe in der Variablen "$PSSessionOption".
Beispiel:
$PSSessionOption = New-PSSessionOption -NoCompression
Um die Einstellungsvariable "$PSSessionOption" in allen
Windows PowerShell-Sitzungen zu verwenden, fügen Sie dem
Windows PowerShell-Profil einen New-PSSessionOption-Befehl
hinzu, mit dem die Variable "$PSSessionOption" erstellt wird.
Weitere Informationen über das Cmdlet "New-PSSessionOption"
finden Sie im Hilfethema für New-PSSessionOption. Weitere
Informationen über Remotebefehle und Sitzungen finden Sie
unter "about_Remote" und unter "about_PSSessions".
Weitere Informationen zur Verwendung von Profilen finden Sie
unter "about_Profiles".
$VerbosePreference
------------------
Bestimmt, wie PowerShell auf ausführliche Meldungen reagiert,
die von einem Skript, Cmdlet oder Anbieter generiert wurden,
beispielsweise Meldungen, die vom Cmdlet "Write-Verbose"
generiert werden. In der Regel werden in ausführlichen
Meldungen die Aktionen zur Ausführung eines Befehls beschrieben.
Standardmäßig werden ausführliche Meldungen nicht angezeigt.
Sie können dieses Verhalten jedoch ändern, indem Sie den Wert
von "$VerbosePreference" ändern.
Sie können auch den allgemeinen Verbose-Parameter eines
Cmdlet verwenden, um die ausführlichen Meldungen für einen
bestimmten Befehl anzuzeigen oder auszublenden. Weitere
Informationen erhalten Sie mit folgendem Befehl: "get-help
about_commonparameters".
Gültige Werte:
Stop: Zeigt die ausführliche Meldung sowie eine
Fehlermeldung an und beendet die Ausführung.
Inquire: Zeigt die ausführliche Meldung und
anschließend eine Eingabeaufforderung an, in der Sie
gefragt werden, ob Sie fortfahren möchten.
Continue: Zeigt die ausführliche Meldung
an und setzt die Ausführung fort.
SilentlyContinue: Zeigt keine ausführliche
(Standard) Meldung an. Setzt die Ausführung fort.
BEISPIELE
Diese Beispiele veranschaulichen die Auswirkungen der
verschiedenen Werte von "$VerbosePreference" sowie der Verwendung
des allgemeinen Verbose-Parameters zum Überschreiben des
Einstellungswerts.
In diesem Beispiel werden die Auswirkungen des Werts
"SilentlyContinue" (Standard) veranschaulicht.
PS> $VerbosePreference # Aktuellen Wert suchen
SilentlyContinue
PS> Write-Verbose "Ausführlicher Meldungstest"
PS> # Ausführliche Meldung schreiben
# Meldung wird nicht angezeigt
PS> Write-Verbose "Ausführlicher Meldungstest" -verbose
VERBOSE: Ausführlicher Meldungstest
# Verbose-Parameter verwenden
In diesem Beispiel werden die Auswirkungen des Werts "Continue"
veranschaulicht.
PS> $VerbosePreference = "Continue"
# Wert in \\"Continue\\" ändern
PS> Write-Verbose "Ausführlicher Meldungstest"
# Ausführliche Meldung
schreiben
VERBOSE: Ausführlicher Meldungstest
# Meldung wird angezeigt
PS> Write-Verbose "Ausführlicher Meldungstest" -verbose:$false
# Verbose-Parameter mit
dem Wert "$false" verwenden
PS>
# Meldung wird nicht angezeigt
In diesem Beispiel werden die Auswirkungen des Werts "Stop"
veranschaulicht.
PS> $VerbosePreference = "Stop"
# Wert in \\"Stop\\" ändern
PS> Write-Verbose "Ausführlicher Meldungstest"
# Ausführliche Meldung schreiben
VERBOSE: Ausführlicher Meldungstest
Write-Verbose: Die Befehlsausführung wurde beendet, da die
Shellvariable "VerbosePreference" auf Stop festgelegt ist.
Bei Zeile:1 Zeichen:14
+ Write-Verbose <<<< "Ausführlicher Meldungstest"
PS> Write-Verbose "Ausführlicher Meldungstest" -verbose:$false
# Verbose-Parameter mit dem
Wert "$false" verwenden
PS>
# Meldung wird nicht angezeigt
In diesem Beispiel werden die Auswirkungen des Werts "Inquire"
veranschaulicht.
PS> $VerbosePreference = "Inquire"
# Wert in \\"Inquire\\" ändern
PS> Write-Verbose "Ausführlicher Meldungstest"
VERBOSE: Ausführlicher Meldungstest
# Ausführliche Meldung schreiben
Bestätigung
Vorgang fortsetzen?
[J] Ja [A] Ja, alle [B] Befehl anhalten [H] Anhalten [?] Hilfe (der Standardwert ist "J"): a
PS>
PS> Write-Verbose "Ausführlicher Meldungstest" -verbose:$false
# Verbose-Parameter verwenden
PS>
# Meldung wird nicht angezeigt
$WarningPreference
------------------
Bestimmt, wie PowerShell auf Warnmeldungen reagiert, die von
einem Skript, Cmdlet oder Anbieter generiert wurden,
beispielsweise Meldungen, die vom Cmdlet "Write-Warning"
generiert werden.
Standardmäßig werden Warnmeldungen angezeigt, und die
Ausführung wird fortgesetzt. Sie können dieses Verhalten
jedoch ändern, indem Sie den Wert von "$WarningPreference" ändern.
Sie können auch den allgemeinen WarningAction-Parameter eines
Cmdlet verwenden, um zu bestimmen, wie Windows PowerShell auf
Warnungen eines bestimmten Befehls reagiert. Weitere
Informationen erhalten Sie mit folgendem Befehl: "get-help
about_commonparameters".
Gültige Werte:
Stop: Zeigt die Warnmeldung sowie eine
Fehlermeldung an und beendet die Ausführung.
Inquire: Zeigt die Warnmeldung an und
fordert dann eine Berechtigung zum Fortfahren an.
Continue: Zeigt die Warnmeldung an und setzt
(Standard) die Ausführung fort.
SilentlyContinue: Zeigt keine Warnmeldung an. Setzt die
Ausführung fort.
BEISPIELE
Diese Beispiele veranschaulichen die Auswirkungen der
verschiedenen Werte von "$WarningPreference" sowie der Verwendung
des allgemeinen WarningAction-Parameters zum Überschreiben des
Einstellungswerts.
In diesem Beispiel werden die Auswirkungen des Werts "Continue"
(Standard) veranschaulicht.
PS> $WarningPreference # Aktuellen Wert suchen
Continue
# Warnmeldung schreiben
PS> Write-Warning "Dieser Vorgang kann zum Löschen von Daten führen."
WARNING: Dieser Vorgang kann zum Löschen von Daten führen.
# WarningAction-Parameter für \\"
Write-Warning" verwenden.
"Dieser Vorgang kann zum
Löschen von Daten führen".
PS> Write-Warning "Dieser Vorgang kann zum Löschen von Daten führen." -warningaction silentlycontinue
In diesem Beispiel werden die Auswirkungen des Werts
"SilentlyContinue" veranschaulicht.
PS> $WarningPreference = "SilentlyContinue"
# Wert in SilentlyContinue ändern
PS> Write-Warning "Dieser Vorgang kann zum Löschen von Daten führen."
PS> # Warnmeldung schreiben
PS> Write-Warning "Dieser Vorgang kann zum Löschen von
Daten führen." -warningaction stop
# WarningAction-Parameter zum Beenden
# der Verarbeitung,
wenn der Befehl die
WARNUNG: "Dieser Vorgang kann zum Löschen von Daten führen" generiert.
Write-Warning: Die Befehlsausführung wurde beendet, da
die Shellvariable "WarningPreference" auf Stop festgelegt ist.
Bei Zeile:1 Zeichen:14
+ Write-Warning <<<< "Dieser Vorgang kann zum Löschen von
Daten führen." -warningaction stop
In diesem Beispiel werden die Auswirkungen des Werts "Inquire"
veranschaulicht.
PS> $WarningPreference = "Inquire"
# Wert in \\"Inquire\\" ändern
PS> Write-Warning "Dieser Vorgang kann zum Löschen von Daten führen."
# Warnmeldung schreiben
WARNING: Dieser Vorgang kann zum Löschen von Daten führen.
Bestätigung
Vorgang fortsetzen?
[J] Ja [A] Ja, alle [B] Befehl anhalten [H] Anhalten [?] Hilfe (der Standardwert ist "J"): a
PS>
PS> Write-Warning "Dieser Vorgang kann zum Löschen von Daten führen." -warningaction silentlycontinue
PS> # WarningAction-Parameter zum Ändern der
# Antwort auf eine Warnung für
den aktuellen Befehl verwenden
In diesem Beispiel werden die Auswirkungen des Werts "Stop" veranschaulicht.
PS> $WarningPreference = "Stop"
# Wert in \\"Stop\\" ändern
PS> Write-Warning "Dieser Vorgang kann zum Löschen von Daten führen."
# Warnmeldung schreiben
WARNING: Dieser Vorgang kann zum Löschen von Daten führen.
Write-Warning: Die Befehlsausführung wurde beendet, da die
Shellvariable "WarningPreference" auf Stop festgelegt ist.
Bei Zeile:1 Zeichen:14
+ Write-Warning <<<< "Dieser Vorgang kann zum Löschen von
Daten führen."
PS> Write-Warning "Dieser Vorgang kann zum Löschen von
Daten führen." -warningaction inquire
WARNING: Dieser Vorgang kann zum Löschen von Daten führen.
Bestätigung
Vorgang fortsetzen?
[J] Ja [A] Ja, alle [B] Befehl anhalten [H] Anhalten [?] Hilfe (Der Standardwert ist "J"):
# WarningAction-Parameter zum Ändern der #Antwort auf eine
# Warnung für den aktuellen Befehl verwenden
$WhatIfPreference
------------------
Bestimmt, ob WhatIf automatisch für jeden Befehl aktiviert
wird, der den Parameter unterstützt. Wenn WhatIf aktiviert
wird, meldet das Cmdlet die erwarteten Auswirkungen des
Befehls, führt den Befehl jedoch nicht aus.
Gültige Werte:
0: WhatIf wird nicht automatisch
(Standard) aktiviert. Verwenden Sie den
WhatIf-Parameter des Befehls zur
manuellen Aktivierung.
1: WhatIf wird automatisch für alle Befehle
aktiviert, die den Parameter unterstützen. Der
WhatIf-Befehl kann mit dem Wert "False" verwendet werden,
um den Befehl manuell zu deaktivieren (WhatIf:$false).
DETAILBESCHREIBUNG
Wenn WhatIf von einem Cmdlet unterstützt wird, meldet das
Cmdlet die erwarteten Auswirkungen des Befehls, statt den
Befehl auszuführen. So meldet Windows PowerShell als Antwort
auf einen Remove-Item-Befehl, welche Elemente gelöscht
würden, anstatt die Datei "test.txt" zu löschen. Durch einen
nachfolgenden Get-Childitem-Befehl wird bestätigt, dass die
Datei nicht gelöscht wurde.
PS> remove-item test.txt
WhatIf: Der Vorgang "Remove-Item" wird für das Ziel "Item:
C:\test.txt" ausgeführt.
PS> get-childitem test.txt
Verzeichnis: Microsoft.PowerShell.Core\FileSystem::C:
Modus LastWriteTime Length Name
---- ------------- ------ ----
-a--- 29.07.2006 19:15 84 test.txt
BEISPIELE
In diesen Beispielen werden die Auswirkungen der verschiedenen
Werte von "$WhatIfPreference" veranschaulicht. Außerdem wird
gezeigt, wie mit dem Cmdlet "WhatIf" der Einstellungswert für
einen bestimmten Befehl überschrieben wird.
In diesem Beispiel werden die Auswirkungen des Standardwerts 0
(nicht aktiviert) veranschaulicht.
PS> $whatifpreference
0 # Aktuellen Wert überprüfen
PS> get-childitem test.txt | format-list FullName
FullName : C:\test.txt
# Vorhandensein der Datei
überprüfen
PS> remove-item test.txt
PS> # Datei löschen
PS> get-childitem test.txt | format-list -property FullName
# Löschen der Datei überprüfen
Get-ChildItem : Der Pfad 'C:\test.txt' kann nicht
gefunden werden, da er nicht vorhanden ist.
Bei Zeile:1 Zeichen:14
+ get-childitem <<<< test.txt | format-list fullname
In diesem Beispiel werden die Auswirkungen des WhatIf-Parameters
mit dem Wert 0 für "$WhatIfPreference" veranschaulicht.
PS> get-childitem test2.txt | format-list -property FullName
FullName : C:\test2.txt
# Vorhandensein der Datei überprüfen
PS> remove-item test2.txt -whatif
WhatIf: Der Vorgang "Remove File" wird für das Ziel "C:\test2.txt" ausgeführt.
# WhatIf-Parameter verwenden
PS> get-childitem test2.txt | format-list -property FullName
FullName : C:\test2.txt
# Sicherstellen, dass die Datei
nicht gelöscht wurde
In diesem Beispiel werden die Auswirkungen des Werts 1 (WhatIf
aktiviert) veranschaulicht. Wenn Sie ein Cmdlet mit Remove-Item
löschen, wird von Remove-Item der Pfad für die zu löschende Datei
angezeigt, die Datei wird jedoch nicht gelöscht.
PS> $whatifpreference = 1
PS> $whatifpreference
1 # Wert ändern
PS> remove-item test.txt
WhatIf: Der Vorgang "Remove File" wird für das Ziel "C:\test.txt" ausgeführt.
# Versuchen, eine Datei zu löschen
PS> get-childitem test.txt | format-list FullName
FullName : C:\test.txt
# Vorhandensein der Datei überprüfen
In diesem Beispiel wird gezeigt, wie eine Datei gelöscht wird,
wenn der Wert von "$WhatIfPreference" 1 ist. Dabei wird der
WhatIf-Parameter mit dem Wert "$false" verwendet.
PS> remove-item test.txt -whatif:$false
# WhatIf-Parameter mit \\"$false\\" verwenden
In diesem Beispiel wird veranschaulicht, dass einige Cmdlets das
Verhalten von WhatIf unterstützen und andere nicht. In diesem
Beispiel weist "$WhatIfPreference" den Wert 1 (aktiviert) auf,
und ein Get-Process-Befehl, der WhatIf nicht unterstützt, wird
ausgeführt; das Verhalten von WhatIf wird jedoch von einem
Stop-Process-Befehl ausgeführt.
Sie können das WhatIf-Verhalten des Stop-Process-Befehls mit dem
WhatIf-Parameter und dem Wert "$false" überschreiben.
PS> $whatifpreference = 1
# Wert in 1 ändern
PS> get-process winword
# Ein Get-Process-Befehl wird
abgeschlossen.
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
234 8 6324 15060 154 0.36 2312 WINWORD
PS> stop-process -name winword
WhatIf: Der Vorgang "Stop-Process" wird für das Ziel "WINWORD (2312)" ausgeführt.
# Stop-Process-Befehl verwendet WhatIf
PS> stop-process -name winword -whatif:$false
PS> # WhatIf:$false überschreibt die
Einstellung
PS> get-process winword
Get-Process: Der Prozess "winword" kann nicht gefunden
werden. Überprüfen Sie den Prozessnamen, und rufen Sie das
Cmdlet erneut auf.
Bei Zeile:1 Zeichen:12
+ get-process <<<< winword
# Beenden des Prozesses überprüfen
SIEHE AUCH
about_Automatic_Variables
about_CommonParameters
about_Environment_Variables
about_Profiles
about_Remote
about_Scopes
about_Variables