Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Kurzbeschreibung
PowerShell unterscheidet so wenig wie möglich zwischen Groß- und Kleinschreibung und behält die Großschreibung bei.
Lange Beschreibung
Im Allgemeinen wird bei PowerShell die Groß-/Kleinschreibung unabhängig von der Groß-/Kleinschreibung beibehalten und das zugrunde liegende Betriebssystem nicht abgebrochen.
Windows-basierte Systeme berücksichtigen bei den meisten Vorgängen die Groß-/Kleinschreibung nicht. Nicht-Windows-Systeme beachten jedoch die Groß-/Kleinschreibung für die meisten Vorgänge, insbesondere für den Zugriff auf Dateisystem- und Umgebungsvariablen.
PowerShell wird bei allen Systemen für die folgenden Bereiche garantiert die Groß-/Kleinschreibung nicht beachtet:
- Variablennamen
- Operatornamen
- Nichtwörterbuchmitgliedszugriff
- Befehlsermittlung von PowerShell-Befehlen und Aliasen. Dies schließt ExternalScript- und Application-Befehle aus.
- Parameternamen und Aliase
- PowerShell-Sprachstichwörter
-
using namespace-Anweisungen - Typliterale
-
#Requires-Anweisungen - Schlüsselwörter der kommentarbasierten Hilfe
- PSProvider-Namen
- PSDrive-Namen
- Bereichsmodifizierer
Spezialfälle
Bei Modulnamen wird die Groß-/Kleinschreibung nicht beachtet (mit Ausnahmen)
Der Name des Moduls ist ein reines PowerShell-Konzept und wird unabhängig von der Groß- und Kleinschreibung behandelt. Es gibt jedoch eine eindeutige Zuordnung zu einem Ordnernamen, der im zugrunde liegenden Betriebssystem die Groß- und Kleinschreibung berücksichtigen kann. Das Importieren von zwei Modulen mit demselben Namen mit der Groß-/Kleinschreibung hat das gleiche Verhalten wie das Importieren von zwei Modulen mit demselben Namen aus unterschiedlichen Pfaden.
Der Name eines Moduls wird im Status der Sitzung unter Verwendung der Groß- und Kleinschreibung gespeichert, mit der es importiert wurde. Der Name, wie im Sitzungszustand gespeichert, wird verwendet
Update-Help, wenn Sie nach neuen Hilfedateien suchen. Der Webdienst, der die Hilfedateien für Microsoft bereitstellt, verwendet ein Dateisystem mit Groß-/Kleinschreibung. Wenn die Groß-/Kleinschreibung des importierten Namens des Moduls nicht übereinstimmt, kannUpdate-Helpdie Hilfedateien nicht finden und liefert einen Fehler.-
Bei
FileSystemNicht-Windows-Systemen wird zwischen Groß- undEnvironmentKleinschreibung unterschieden. Im Allgemeinen werden Vorgänge mit Pfaden oder Umgebungsvariablen bei solchen Systemen groß-/kleinschreibung beachtet.Bei der Zuordnung von Wildcards nach Anbieter-Cmdlets wird jedoch unabhängig vom System die Groß-/Kleinschreibung nicht beachtet.
PS /home/user01> New-Item -Path Temp:foo.txt -Force Directory: /tmp UnixMode User Group LastWriteTime Size Name -------- ---- ----- ------------- ---- ---- -rw-r--r-- user01 user01 1/6/2026 10:53 0 foo.txt PS /home/user01> (Get-Item -Path Temp:FOO.txt).Name Get-Item: Cannot find path 'Temp:/FOO.txt' because it does not exist. PS /home/user01> (Get-Item -Path Temp:F[O]*.txt).Name foo.txt PS /home/user01> (Get-Item -Path Env:hOM[E]).Name HOME Bei Parametersatznamen wird die Groß-/Kleinschreibung beachtet.
Der
DefaultParameterSetNameFall muss identisch mitParameterSetName..NET-Methoden weisen standardmäßig ein Verhalten mit Groß-/Kleinschreibung auf.
Beispiele sind:
- Entsprechende .NET-Methoden (ohne explizite Anmeldung) für allgemeine PowerShell-Operatoren wie:
-
Array.Contains(), ,String.Contains()String.Replace(), ,Regex.Match()Regex.Replace()
-
- Reflexion; Membernamen müssen die richtige Groß-/Kleinschreibung verwenden.
- Nicht literale Wörterbuchinstanziierung. Beispiel:
-
[hashtable]::new()weist Bei Schlüsseln mit Groß-/Kleinschreibung auf, während bei einem Hashtable-Literal@{}die Groß-/Kleinschreibung nicht beachtet wird. -
[ordered]::new()Bei Schlüsseln mit Groß-/Kleinschreibung wird die Groß-/Kleinschreibung beachtet, während bei schlüsseln[ordered] @{}die Groß-/Kleinschreibung nicht beachtet wird. Die[ordered]Typbeschleuniger ist in PowerShell v5.1 und früheren Versionen nicht verfügbar.
-
- Bei expliziten Aufrufen
Enum.Parse()wird standardmäßig die Groß-/Kleinschreibung beachtet, während PowerShell in der Regel Enumerationen ohne Groß-/Kleinschreibung behandelt.
- Entsprechende .NET-Methoden (ohne explizite Anmeldung) für allgemeine PowerShell-Operatoren wie:
-UniqueCmdlets:-
Select-Object -Uniqueund die Groß-/Get-UniqueKleinschreibung wird standardmäßig beachtet. Der-CaseInsensitiveSchalter wurde in PS v7.4 hinzugefügt. -
Sort-Object -Uniquedie Groß-/Kleinschreibung wird standardmäßig nicht beachtet, hat aber immer den-CaseSensitiveSchalter gehabt.
-
Compare-Objectdie Groß-/Kleinschreibung wird standardmäßig nicht beachtet, verfügt jedoch über einen-CaseSensitiveSchalter. Bei einem Vergleich von[char]Typen wird standardmäßig die Groß-/Kleinschreibung beachtet. Der Zeichenfolgenvergleich wird standardmäßig nicht beachtet.# Compare strings - Equal (no output) Compare-object -ReferenceObject a -DifferenceObject A # Compare chars - Different (output) Compare-object -ReferenceObject ([char] 'a') -DifferenceObject ([char] 'A')ConvertFrom-Json -AsHashtable:-
-AsHashtablewurde in PS v6 hinzugefügt. In PS v7.3 wurde eine Änderung vorgenommen, um JSON-Schlüssel beim Angeben dieses Parameters als Groß-/Kleinschreibung zu behandeln.- Bei dem Parameter wird ein Objekt vom Typ
Management.Automation.OrderedHashtableausgegeben, bei dem die Groß-/Kleinschreibung beachtet wird. - Ohne den Parameter werden JSON-Schlüssel als Groß-/Kleinschreibung behandelt. Ausgabe ist ein benutzerdefiniertes Objekt; Bei der letzten Groß-/Kleinschreibung wird die Groß-/Kleinschreibung nicht beachtet.
- Bei dem Parameter wird ein Objekt vom Typ
- https://github.com/PowerShell/PowerShell/issues/19928
-
-
Die Groß-/Kleinschreibung wird standardmäßig nicht beachtet, verfügt jedoch über einen
-CaseSensitiveSchalter.In Windows PowerShell v5.1
-CaseSensitivewird-AsHashtableeine Hashtabelle ohne Groß-/Kleinschreibung erzeugt. Doppelte Schlüssel führen zu einem Fehler.[pscustomobject] @{ Foo = 'Bar' }, [pscustomobject] @{ Foo = 'bar' } | Group-Object -Property Foo -CaseSensitive -AsHashtableGroup-Object : The objects grouped by this property cannot be expanded because there is a key duplication. Provide a valid value for the property, and then try again. At line:2 char:11 + Group-Object -Property Foo -CaseSensitive -AsHashtable + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Group-Object], Exception + FullyQualifiedErrorId : The objects grouped by this property cannot be expanded because there is a key duplication. Provide a valid value for the property, and then try again.,Microsoft.PowerShell.Comman ds.GroupObjectCommandIn PowerShell v7 und höher
-CaseSensitivewird eine Hashtabelle mit Groß-/-AsHashtableKleinschreibung erzeugt. Bei doppelten Schlüsseln tritt kein Fehler auf.[pscustomobject] @{ Foo = 'Bar' }, [pscustomobject] @{ Foo = 'bar' } | Group-Object -Property Foo -CaseSensitive -AsHashtableName Value ---- ----- Bar {@{Foo=Bar}} bar {@{Foo=bar}}
-
- Die Groß-/Kleinschreibung wird standardmäßig nicht beachtet, verfügt jedoch über einen
-CaseSensitiveSchalter.
- Die Groß-/Kleinschreibung wird standardmäßig nicht beachtet, verfügt jedoch über einen
Get-Commandund Befehlsermittlung/Aufruf:- Bei Dateisystemen bei Groß- und Kleinschreibung wird zwischen Groß- und
ExternalScriptApplicationKleinschreibung unterschieden. -
Get-CommandBei einem Wildcardabgleich mit diesen Typen wird auch die Groß-/Kleinschreibung beachtet. - Bei allen anderen
CommandTypeswird die Groß-/Kleinschreibung nicht beachtet.
- Bei Dateisystemen bei Groß- und Kleinschreibung wird zwischen Groß- und
-
Standardmäßig wird die Groß-/Kleinschreibung von Operatoren nicht beachtet.
-c*Bei Operatoren wird die Groß-/Kleinschreibung beachtet.-i*Bei Operatoren wird die Groß-/Kleinschreibung nicht beachtet.-replace/-ireplacedie Groß-/Kleinschreibung wird standardmäßig nicht beachtet, mit Ausnahmevon benannten Erfassungsgruppen, bei denen die Groß-/Kleinschreibung beachtet wird.'Bar' -replace '(?<a>a)', '${a}${a}' # Baar 'Bar' -replace '(?<a>a)', '${A}${A}' # B${A}${A}r
-
-splitund die Groß-/-isplitKleinschreibung wird nicht beachtet.-csplitdie Groß-/Kleinschreibung wird beachtet, es sei denn , dieIgnoreCaseOption wird angegeben.'Bar' -csplit 'A', 0 # Bar 'Bar' -csplit 'A', 0, 'IgnoreCase' # B # r
-
- Bei Dateisystemen mit Groß-/Kleinschreibung wird bei Tabstoppabschluss und Globbing die Groß-/Kleinschreibung nicht beachtet. Beispielsweise
TabExpansion2 -inputScript ./foowird die Ausführung auf Linux abgeschlossen./Foo.txt.
- Bei Dateisystemen mit Groß-/Kleinschreibung wird bei Tabstoppabschluss und Globbing die Groß-/Kleinschreibung nicht beachtet. Beispielsweise
usingAnweisung:- Bei Dateisystemen
using modulebei Groß-/Kleinschreibung und bei Angabe eines Pfads wird die Groß-/using assemblyKleinschreibung beachtet. -
using modulebei nur einem Modulnamen wird die Groß-/Kleinschreibung nicht beachtet. -
using namespacedie Groß-/Kleinschreibung wird immer nicht beachtet.
- Bei Dateisystemen
-
- Escapesequenzen wie
`nGroß-/Kleinschreibung werden beachtet.
- Escapesequenzen wie