about_WQL
Kurze Beschreibung
Beschreibt die WMI-Abfragesprache (WQL), die zum Abrufen von WMI-Objekten in Windows PowerShell verwendet werden kann.
Lange Beschreibung
WQL ist die WMI-Abfragesprache (Windows Management Instrumentation), die zum Abrufen von Informationen aus WMI verwendet wird.
Sie müssen WQL nicht zum Ausführen einer WMI-Abfrage in Windows PowerShell verwenden.
Stattdessen können Sie die Parameter der Get-WmiObject
Oder Get-CimInstance
Cmdlets verwenden. WQL-Abfragen sind etwas schneller als Standardbefehle Get-WmiObject
, und die verbesserte Leistung ist offensichtlich, wenn die Befehle auf Hunderten von Systemen ausgeführt werden. Achten Sie jedoch darauf, dass die Zeit zum Schreiben einer erfolgreichen WQL-Abfrage die Leistungsverbesserung nicht überwiegt.
Die grundlegenden WQL-Anweisungen, die Sie für die Verwendung von WQL benötigen, sind SELECT
, WHERE
und FROM
.
Wann WQL verwendet werden soll
Vergessen Sie nicht, dass Sie auch Windows PowerShell verwenden, wenn Sie mit WMI und insbesondere mit WQL arbeiten. Wenn eine WQL-Abfrage nicht wie erwartet funktioniert, ist es einfacher, einen standardmäßigen Windows PowerShell-Befehl zu verwenden, als die WQL-Abfrage zu debuggen.
Es sei denn, Sie geben massive Datenmengen aus bandbreitenbeschränkten Remotesystemen zurück, es ist selten produktiv, stundenlang zu verbringen, um eine komplizierte WQL-Abfrage zu perfektionieren, wenn ein akzeptables PowerShell-Cmdlet vorhanden ist, das dasselbe tut.
Verwenden der SELECT-Anweisung
Eine typische WMI-Abfrage beginnt mit einer SELECT
Anweisung, die alle Eigenschaften oder bestimmte Eigenschaften einer WMI-Klasse abruft. Um alle Eigenschaften einer WMI-Klasse auszuwählen, verwenden Sie ein Sternchen (*
). Das FROM
Schlüsselwort gibt die WMI-Klasse an.
Eine SELECT
Anweisung weist das folgende Format auf:
SELECT <property> FROM <WMI-class>
Die folgende SELECT
Anweisung wählt beispielsweise alle Eigenschaften (*
) aus den Instanzen der Win32_Bios WMI-Klasse aus.
SELECT * FROM Win32_Bios
Hinweis
PowerShell zeigt nur die Standardobjekteigenschaften an. Diese Eigenschaften werden in der Types.ps1xml
Datei definiert. Verwenden Sie das Select-Object
Cmdlet oder ein Format-*
Cmdlet, um zusätzliche Eigenschaften anzuzeigen.
Wenn Sie eine bestimmte Eigenschaft einer WMI-Klasse auswählen möchten, platzieren Sie den Eigenschaftsnamen zwischen den SchlüsselwörternSELECT
.FROM
Die folgende Abfrage wählt nur den Namen des BIOS aus der Win32_Bios WMI-Klasse aus. Der Befehl speichert die Abfrage in der $queryName
Variablen.
SELECT Name FROM Win32_Bios
Wenn Sie mehrere Eigenschaften auswählen möchten, trennen Sie die Eigenschaftennamen mithilfe von Kommas.
Die folgende WMI-Abfrage wählt den Namen und die Version der Win32_Bios WMI-Klasse aus. Der Befehl speichert die Abfrage in der $queryNameVersion
Variablen.
SELECT name, version FROM Win32_Bios
Verwenden der WQL-Abfrage
Es gibt drei Möglichkeiten zum Verwenden der WQL-Abfrage im Windows PowerShell-Befehl.
- Verwenden des Cmdlets
Get-WmiObject
- Verwenden des Cmdlets
Get-CimInstance
- Verwenden Sie die
[wmisearcher]
Zugriffstaste.
Verwenden des Cmdlets "Get-WmiObject"
Die einfachste Methode zum Verwenden der WQL-Abfrage besteht darin, sie in Anführungszeichen (als Zeichenfolge) einzuschließen und dann die Abfragezeichenfolge als Wert des Abfrageparameters des Get-WmiObject
Cmdlets zu verwenden, wie im folgenden Beispiel gezeigt.
Get-WmiObject -Query "SELECT * FROM Win32_Bios"
SMBIOSBIOSVersion : 8BET56WW (1.36 )
Manufacturer : LENOVO
Name : Default System BIOS
SerialNumber : R9FPY3P
Version : LENOVO - 1360
Sie können die WQL-Anweisung auch in einer Variablen speichern und dann die Variable als Wert des Query-Parameters verwenden, wie im folgenden Befehl gezeigt.
$query = "SELECT * FROM Win32_Bios"
Get-WmiObject -Query $query
Sie können beide Formate mit einer beliebigen WQL-Anweisung verwenden. Der folgende Befehl verwendet die Abfrage in der $queryName
Variablen, um nur die Eigenschaften Name und Version des System-BIOS abzurufen.
$queryNameVersion = "SELECT Name, Version FROM Win32_Bios"
Get-WmiObject -Query $queryNameVersion
__GENUS : 2
__CLASS : Win32_BIOS
__SUPERCLASS :
__DYNASTY :
__RELPATH :
__PROPERTY_COUNT : 2
__DERIVATION : {}
__SERVER :
__NAMESPACE :
__PATH :
Name : S03KT39A
Version : LENOVO - 1270
PSComputerName :
Denken Sie daran, dass Sie die Parameter des Get-WmiObject
Cmdlets verwenden können, um dasselbe Ergebnis zu erhalten. Der folgende Befehl ruft beispielsweise auch die Werte der Eigenschaften Name und Version von Instanzen der Win32_Bios WMI-Klasse ab.
Get-WmiObject -Class Win32_Bios -Property Name, Version
__GENUS : 2
__CLASS : Win32_BIOS
__SUPERCLASS :
__DYNASTY :
__RELPATH :
__PROPERTY_COUNT : 2
__DERIVATION : {}
__SERVER :
__NAMESPACE :
__PATH :
Name : S03KT39A
Version : LENOVO - 1270
PSComputerName :
Verwenden des Cmdlets "Get-CimInstance"
Ab Windows PowerShell 3.0 können Sie das Get-CimInstance
Cmdlet verwenden, um WQL-Abfragen auszuführen.
Get-CimInstance
ruft Instanzen von CIM-kompatiblen Klassen ab, einschließlich WMI-Klassen. Die CIM-Cmdlets, die Windows PowerShell 3.0 eingeführt haben, führen dieselben Aufgaben wie die WMI-Cmdlets aus. Die CIM-Cmdlets entsprechen den WS-Management -Standards (WSMan) und dem Standard Common Information Model (CIM), mit dem die Cmdlets dieselben Techniken zum Verwalten von Windows-Computern und Computern verwenden können, auf denen andere Betriebssysteme ausgeführt werden.
Der folgende Befehl verwendet das Get-CimInstance
Cmdlet, um eine WQL-Abfrage auszuführen.
Jede WQL-Abfrage, mit Get-WmiObject
der verwendet werden kann, kann auch mit Get-CimInstance
.
Get-CimInstance -Query "SELECT * FROM Win32_Bios"
SMBIOSBIOSVersion : S03KT39A
Manufacturer : LENOVO
Name : S03KT39A
SerialNumber : MJ0AETTX
Version : LENOVO - 1270
Get-CimInstance
gibt ein CimInstance -Objekt zurück, anstelle des managementObject , das Get-WmiObject
zurückgegeben wird, aber die Objekte sind ziemlich ähnlich.
PS> (Get-CimInstance -Query "SELECT * FROM Win32_Bios").GetType().FullName
Microsoft.Management.Infrastructure.CimInstance
PS> (Get-WmiObject -Query "SELECT * FROM Win32_Bios").GetType().FullName
System.Management.ManagementObject
Verwenden der wmisearcher-Typbeschleuniger
Die [wmisearcher]
Typbeschleuniger erstellt ein ManagementObjectSearcher-Objekt aus einer WQL-Anweisungszeichenfolge. Das ManagementObjectSearcher-Objekt verfügt über viele Eigenschaften und Methoden, aber die einfachste Methode ist die Get-Methode, die die angegebene WMI-Abfrage aufruft und die resultierenden Objekte zurückgibt.
Mithilfe dieser [wmisearcher]
Klasse erhalten Sie einfachen Zugriff auf die ManagementObjectSearcher .NET-Klasse. Auf diese Weise können Sie WMI abfragen und die Art und Weise konfigurieren, wie die Abfrage durchgeführt wird.
So verwenden Sie die [wmisearcher]
Typbeschleuniger:
- Wandeln Sie die WQL-Zeichenfolge in ein ManagementObjectSearcher-Objekt um .
- Rufen Sie die Get-Methode des ManagementObjectSearcher-Objekts auf.
Der folgende Befehl wandelt z. B. die Abfrage "Alle auswählen" um, speichert das Ergebnis in der $bios
Variablen und ruft dann die Get()
Methode des ManagementObjectSearcher-Objekts in der $bios
Variablen auf.
$bios = [wmisearcher]"SELECT * FROM Win32_Bios"
$bios.Get()
SMBIOSBIOSVersion : 8BET56WW (1.36 )
Manufacturer : LENOVO
Name : Default System BIOS
SerialNumber : R9FPY3P
Version : LENOVO - 1360
Sie können die [wmisearcher]
Typbeschleuniger verwenden, um die Abfrage oder die Variable zu umwandeln. Im folgenden Beispiel wird die [wmisearcher]
Typbeschleuniger verwendet, um die Variable zu umwandeln. Das Ergebnis ist identisch.
[wmisearcher]$bios = "SELECT * FROM Win32_Bios"
$bios.Get()
SMBIOSBIOSVersion : S03KT39A
Manufacturer : LENOVO
Name : S03KT39A
SerialNumber : MJ0AETTX
Version : LENOVO - 1270
Wenn Sie die [wmisearcher]
Typbeschleuniger verwenden, ändert sie die Abfragezeichenfolge in ein ManagementObjectSearcher-Objekt , wie in den folgenden Befehlen dargestellt.
$a = "SELECT * FROM Win32_Bios"
$a.GetType().FullName
System.String
$a = [wmisearcher]"SELECT * FROM Win32_Bios"
$a.GetType().FullName
System.Management.ManagementObjectSearcher
Dieses Befehlsformat funktioniert für jede Abfrage. Der folgende Befehl ruft den Wert der Name-Eigenschaft der Win32_Bios WMI-Klasse ab.
$biosname = [wmisearcher]"Select Name from Win32_Bios"
$biosname.Get()
__GENUS : 2
__CLASS : Win32_BIOS
__SUPERCLASS :
__DYNASTY :
__RELPATH :
__PROPERTY_COUNT : 1
__DERIVATION : {}
__SERVER :
__NAMESPACE :
__PATH :
Name : S03KT39A
PSComputerName :
Verwenden der grundlegenden WQL WHERE-Anweisung
Eine WHERE
Anweisung legt Bedingungen für die Daten fest, die eine SELECT
Anweisung zurückgibt.
Die WHERE
Anweisung weist das folgende Format auf:
WHERE <property> <operator> <value>
Zum Beispiel:
WHERE Name = 'Notepad.exe'
Die WHERE
Anweisung wird mit der SELECT
Anweisung verwendet, wie im folgenden Beispiel gezeigt.
SELECT * FROM Win32_Process WHERE Name = 'Notepad.exe'
Bei Verwendung der WHERE
Anweisung muss der Eigenschaftsname und der Wert korrekt sein.
Beispielsweise ruft der folgende Befehl die Editor-Prozesse auf dem lokalen Computer ab.
Get-WmiObject -Query "SELECT * FROM Win32_Process WHERE name='Notepad.exe'"
Der folgende Befehl schlägt jedoch fehl, da der Prozessname die .exe
Dateierweiterung enthält.
Get-WmiObject -Query "SELECT * FROM Win32_Process WHERE name='Notepad'"
WHERE-Anweisungsvergleichsoperatoren
Die folgenden Operatoren sind in einer WQL-Anweisung WHERE
gültig.
Operator Description
-----------------------
= Equal
!= Not equal
<> Not equal
< Less than
> Greater than
<= Less than or equal
>= Greater than or equal
LIKE Wildcard match
IS Evaluates null
ISNOT Evaluates not null
ISA Evaluates a member of a WMI class
Es gibt andere Operatoren, aber dies sind diejenigen, die zum Erstellen von Vergleichen verwendet werden.
Die folgende Abfrage wählt beispielsweise die Eigenschaften "Name " und "Priority " aus Prozessen in der Win32_Process Klasse aus, wobei die Prozesspriorität größer oder gleich 11 ist. Das Get-WmiObject
Cmdlet führt die Abfrage aus.
$highPriority = "Select Name, Priority from Win32_Process " +
"WHERE Priority >= 11"
Get-WmiObject -Query $highPriority
Verwenden der WQL-Operatoren im Parameter "-Filter"
Die WQL-Operatoren können auch im Wert des Filterparameters der Get-WmiObject
Cmdlets sowie Get-CimInstance
im Wert der Abfrageparameter dieser Cmdlets verwendet werden.
Mit dem folgenden Befehl werden beispielsweise die Eigenschaften Name und ProcessID der letzten fünf Prozesse mit ProcessID-Werten größer als 1004 angezeigt. Der Befehl verwendet den Parameter "Filter ", um die ProcessID-Bedingung anzugeben.
$getWmiObjectSplat = @{
Class = 'Win32_Process'
Property = 'Name', 'ProcessID'
Filter = "ProcessID >= 1004"
}
Get-WmiObject @getWmiObjectSplat |
Sort-Object ProcessID |
Select-Object Name, ProcessID -Last 5
Name ProcessID
---- ---------
SROSVC.exe 4220
WINWORD.EXE 4664
TscHelp.exe 4744
SnagIt32.exe 4748
WmiPrvSE.exe 5056
verwenden des LIKE-Operators
Mit dem LIKE
Operator können Sie Mithilfe von Wildcardzeichen die Ergebnisse einer WQL-Abfrage filtern.
Like Operator Description
--------------------------------------------------
[] Character in a range [a-f] or a set
of characters [abcdef]. The items in
a set don't need to be consecutive or
listed in alphabetical order.
^ Character not in a range [^a-f] or
not in a set [^abcdef]. The items in
a set don't need to be consecutive or
listed in alphabetical order.
% A string of zero or more characters
_ One character.
(underscore) NOTE: To use a literal underscore
in a query string, enclose it in
square brackets [_].
Wenn der LIKE
Operator ohne Wildcardzeichen oder Bereichsoperatoren verwendet wird, verhält er sich wie der Gleichheitsoperator (=
) und gibt nur Objekte zurück, wenn sie eine genaue Übereinstimmung für das Muster sind.
Sie können den Bereichsvorgang mit dem Prozentzeichen (%
) kombinieren, um einfache, aber leistungsstarke Filter zu erstellen.
LIKE-Operatorbeispiele
Beispiel 1: [<Bereich>]
Die folgenden Befehle starten Editor und suchen dann nach einer Instanz der Win32_Process Klasse mit einem Namen, der mit einem Buchstaben zwischen "H" und "N" beginnt (Groß-/Kleinschreibung wird nicht beachtet).
Die Abfrage sollte jeden Prozess von Hotepad.exe
bis zu Notepad.exe
.
Notepad # Starts Notepad
$query = "SELECT * FROM Win32_Process WHERE Name LIKE '[H-N]otepad.exe'"
Get-WmiObject -Query $query | Select Name, ProcessID
Name ProcessID
---- ---------
notepad.exe 1740
Beispiel 2: [<Bereich>] und %
Mit den folgenden Befehlen werden alle Prozesse ausgewählt, die einen Namen haben, der mit einem Buchstaben zwischen A und P beginnt (Groß-/Kleinschreibung wird nicht beachtet), gefolgt von null oder mehr Buchstaben in einer beliebigen Kombination.
Das Get-WmiObject
Cmdlet führt die Abfrage aus, das Select-Object
Cmdlet ruft die Eigenschaften Name und ProcessID ab, und das Sort-Object
Cmdlet sortiert die Ergebnisse alphabetisch nach Name.
$query = "SELECT * FROM Win32_Process WHERE name LIKE '[A-P]%'"
Get-WmiObject -Query $query |
Select-Object -Property Name, ProcessID |
Sort-Object -Property Name
Beispiel 3: Nicht im Bereich (^)
Der folgende Befehl ruft Prozesse ab, deren Namen nicht mit einem der folgenden Buchstaben beginnen: A, S, W, P, R, C, U, N
und gefolgt von null oder mehr Buchstaben.
$query = "SELECT * FROM Win32_Process WHERE name LIKE '[^ASWPRCUN]%'"
Get-WmiObject -Query $query |
Select-Object -Property Name, ProcessID |
Sort-Object -Property Name
Beispiel 4: Beliebige Zeichen -- oder keines (%)
Mit den folgenden Befehlen werden Prozesse mit Namen abgerufen, die mit calc
.
Das Prozentsymbol (%
) ist das WQL-Wildcardzeichen. Sie entspricht dem Sternchen (*
) in PowerShell.
$query = "SELECT * FROM Win32_Process WHERE Name LIKE 'calc%'"
Get-WmiObject -Query $query | Select-Object -Property Name, ProcessID
Name ProcessID
---- ---------
calc.exe 4424
Beispiel 5: Ein Zeichen (_)
Mit den folgenden Befehlen werden Prozesse mit Namen abgerufen, die das folgende Muster aufweisen, c_lc.exe
wobei das Unterstrichzeichen ein beliebiges Zeichen darstellt. Dieses Muster entspricht einem beliebigen Namen von durch calc.exe
czlc.exe
oder c9lc.exe
, aber nicht mit Namen, in denen "c" und "l" durch mehrere Zeichen voneinander getrennt sind.
$query = "SELECT * FROM Win32_Process WHERE Name LIKE 'c_lc.exe'"
Get-WmiObject -Query $query | Select-Object -Property Name, ProcessID
Name ProcessID
---- ---------
calc.exe 4424
Beispiel 6: Genaue Übereinstimmung
Mit den folgenden Befehlen werden Prozesse mit dem Namen abgerufen WLIDSVC.exe
. Obwohl die Abfrage das LIKE
Schlüsselwort verwendet, ist eine genaue Übereinstimmung erforderlich, da der Wert keine Wildcardzeichen enthält.
$query = "SELECT * FROM Win32_Process WHERE name LIKE 'WLIDSVC.exe'"
Get-WmiObject -Query $query | Select-Object -Property Name, ProcessID
```powershell
```output
Name ProcessID
---- ---------
WLIDSVC.exe 84
Verwenden des OR-Operators
Verwenden Sie das OR
Schlüsselwort, um mehrere unabhängige Bedingungen anzugeben. Das OR
Schlüsselwort wird in der WHERE
Klausel angezeigt. Sie führt einen inklusiven OR
Vorgang mit zwei (oder mehr) Bedingungen aus und gibt Elemente zurück, die eine der Bedingungen erfüllen.
Der OR
Operator weist das folgende Format auf:
WHERE <property> <operator> <value> OR <property> <operator> <value> ...
Die folgenden Befehle rufen beispielsweise alle Instanzen der Win32_Process WMI-Klasse ab, geben sie jedoch nur zurück, wenn der Prozessname lautet winword.exe
oder excel.exe
.
$q = "SELECT * FROM Win32_Process WHERE Name='winword.exe'" +
" OR Name='excel.exe'"
Get-WmiObject -Query $q
Die OR
Anweisung kann mit mehr als zwei Bedingungen verwendet werden. In der folgenden Abfrage ruft die OR
Anweisung , , Excel.exe
oder Powershell.exe
.Winword.exe
$q = "SELECT * FROM Win32_Process WHERE Name='winword.exe'" +
" OR Name='excel.exe' OR Name='powershell.exe'"
Verwenden des AND-Operators
Verwenden Sie das AND
Schlüsselwort, um mehrere verwandte Bedingungen anzugeben. Das AND
Schlüsselwort wird in der WHERE
Klausel angezeigt. Es werden Elemente zurückgegeben, die alle Bedingungen erfüllen.
Der AND
Operator weist das folgende Format auf:
WHERE <property> <operator> <value> `AND` <property> <operator> <value> ...
Die folgenden Befehle rufen z. B. Prozesse ab, die einen Namen Winword.exe
und die Prozess-ID von 6512 aufweisen.
Beachten Sie, dass die Befehle das Get-CimInstance
Cmdlet verwenden.
$q = "SELECT * FROM Win32_Process WHERE Name = 'winword.exe' " +
"AND ProcessID =6512"
Get-CimInstance -Query $q
ProcessId Name HandleCount WorkingSetSize VirtualSize
--------- ---- ----------- -------------- -----------
# 6512 WINWORD.EXE 768 117170176 633028608
Alle Operatoren, einschließlich der LIKE
Operatoren, sind mit den OR
Operatoren gültig AND
. Außerdem können Sie die OR
Operatoren und AND
Operatoren in einer einzelnen Abfrage mit Klammern kombinieren, die WMI mitteilen, welche Klauseln zuerst verarbeitet werden sollen.
Dieser Befehl verwendet das Windows PowerShell-Fortsetzungszeichen (`
) dividieren den Befehl in zwei Zeilen.
Suchen nach Nullwerten
Die Suche nach NULL-Werten in WMI ist eine Herausforderung, da sie zu unvorhersehbaren Ergebnissen führen kann. Null
ist nicht null und entspricht nicht einer leeren Zeichenfolge. Einige WMI-Klasseneigenschaften werden initialisiert und andere nicht, daher funktioniert eine Suche nach NULL möglicherweise nicht für alle Eigenschaften.
Um nach Nullwerten zu suchen, verwenden Sie den Is-Operator mit einem Wert von null
.
Die folgenden Befehle rufen z. B. Prozesse ab, die einen Nullwert für die IntallDate-Eigenschaft aufweisen. Die Befehle geben viele Prozesse zurück.
$q = "SELECT * FROM Win32_Process WHERE InstallDate is null"
Get-WmiObject -Query $q
Im Gegensatz dazu ruft der folgende Befehl Benutzerkonten mit einem Nullwert für die Description-Eigenschaft ab. Dieser Befehl gibt keine Benutzerkonten zurück, obwohl die meisten Benutzerkonten keinen Wert für die Description-Eigenschaft haben.
$q = "SELECT * FROM Win32_UserAccount WHERE Description is null"
Get-WmiObject -Query $q
Um die Benutzerkonten zu finden, die keinen Wert für die Description-Eigenschaft haben, verwenden Sie den Gleichheitsoperator, um eine leere Zeichenfolge abzurufen. Um die leere Zeichenfolge darzustellen, verwenden Sie zwei aufeinander folgende einfache Anführungszeichen.
$q = "SELECT * FROM Win32_UserAccount WHERE Description = '' "
Verwenden von "true" oder "false"
Um boolesche Werte in den Eigenschaften von WMI-Objekten abzurufen, verwenden True
und False
.
Ihre Groß-/Kleinschreibung wird nicht beachtet.
Die folgende WQL-Abfrage gibt nur lokale Benutzerkonten von einem in eine Domäne eingebundenen Computer zurück.
$q = "SELECT * FROM Win32_UserAccount WHERE LocalAccount = True"
Get-CimInstance -Query $q
Um Domänenkonten zu finden, verwenden Sie den Wert "False", wie im folgenden Beispiel gezeigt.
$q = "SELECT * FROM Win32_UserAccount WHERE LocalAccount = False"
Get-CimInstance -Query $q
Verwenden des Escapezeichens
WQL verwendet den umgekehrten Schrägstrich (\
) als Escapezeichen. Dies unterscheidet sich von Windows PowerShell, das das Backtick-Zeichen (`
) verwendet.
Anführungszeichen und die zeichen, die für Anführungszeichen verwendet werden, müssen häufig mit Escapezeichen versehen werden, damit sie nicht falsch interpretiert werden.
Um einen Benutzer zu finden, dessen Name ein einfaches Anführungszeichen enthält, verwenden Sie einen umgekehrten Schrägstrich, um das einfache Anführungszeichen zu escapen, wie im folgenden Befehl gezeigt.
$q = "SELECT * FROM Win32_UserAccount WHERE Name = 'Tim O\'Brian'"
Get-CimInstance -Query $q
Name Caption AccountType SID Domain
---- ------- ----------- --- ------
Tim O'Brian FABRIKAM\TimO 512 S-1-5-21-1457... FABRIKAM
In manchen Fällen muss der umgekehrte Schrägstrich ebenfalls escapet werden. Beispielsweise generieren die folgenden Befehle einen Fehler "Ungültige Abfrage" aufgrund des umgekehrten Schrägstrichs im Caption-Wert.
$q = "SELECT * FROM Win32_UserAccount WHERE Caption = 'Fabrikam\TimO'"
Get-CimInstance -Query $q
Get-CimInstance : Invalid query
At line:1 char:1
+ Get-CimInstance -Query $q
+ ~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Get-CimInstance], CimExcep
+ FullyQualifiedErrorId : HRESULT 0x80041017,Microsoft.Management.Infrastr
Um den umgekehrten Schrägstrich zu escapen, verwenden Sie ein zweites umgekehrtes Schrägstrich, wie im folgenden Befehl dargestellt.
$q = "SELECT * FROM Win32_UserAccount WHERE Caption = 'Fabrikam\\TimO'"
Get-CimInstance -Query $q