Wie man es repariert "Der WinRM-Client kann die Anfrage nicht verarbeiten. Die Ressourcen-URI ist nicht gültig: sie enthält keine Schlüssel, aber die ausgewählte Klasse ist kein Singleton".
Im WS-Management-Protokoll ist ein singleton class ist eine Klasse, die immer nur eine Instanz hat (z. B. die Betriebssystemkonfiguration oder die lokale Zeit). Für Singleton-Klassen reicht die Resource-URI aus, um die Ressource zu lokalisieren. Für Standardklassen, die jedoch mehrere Instanzen haben können (wie lokale Benutzer, Netzwerkadaptere oder Dienste), müssen Sie bestimmte Schlüssel (wie einen Namen oder eine ID) angeben, damit WinRM genau weiß, welche Instanz Sie verwalten möchten. Wenn Sie eine Multi-Instanz-Klasse mit einer grundlegenden URI ohne diese Schlüssel ansprechen, lehnt WinRM die Anfrage mit diesem spezifischen Fehler ab.
Schrittweise Lösungen
Je nachdem, wie Sie den Befehl ausführen, verwenden Sie eine der folgenden Methoden, um das Problem zu beheben:
Methode 1: Bereitstellung der erforderlichen Schlüssel im Befehl
Wenn Sie Drogen nehmen Get-WSManInstance oder ähnliche WSMan Cmdlets, müssen Sie die spezifischen Instanz-Tasten mit der -SelectorSet Parameter.
- Öffnen. PowerShell als Administrator.
- Ändern Sie Ihren Befehl, um den genauen Schlüssel der Instanz, die Sie abfragen möchten, einzubeziehen.
- Falsch (Fehler verursacht):
Get-WSManInstance -ResourceURI "wmicimv2/Win32_Service" -ComputerName "RemotePC" - Richtig (mit SelectorSet behoben):
Get-WSManInstance -ResourceURI "wmicimv2/Win32_Service" -SelectorSet @{Name="wuauserv"} -ComputerName "RemotePC"(Anmerkung: Ersetzen
"wuauserv"mit dem spezifischen Dienstnamen oder Instanzschlüssel, auf den Sie zielen möchten).
- Falsch (Fehler verursacht):
Methode 2: Umschalten auf CIM- oder WMI-Cmdlets (empfohlen)
Wenn Ihr Ziel einfach darin besteht, Remote-Windows Management Instrumentation (WMI) -Klassen abzufragen oder zu verwalten, ist die Verwendung von CIM-Cmdlets viel einfacher, da sie die Instanzformatierung automatisch über WinRM verwalten.
- Öffnen. PowerShell.
- Anstatt die rohen WS-Management-Cmdlets zu verwenden, verwenden Sie
Get-CimInstance.- Festes Kommando:
Get-CimInstance -ClassName Win32_Service -ComputerName "RemotePC"
- Festes Kommando:
- Wenn Sie für eine bestimmte Instanz filtern möchten, ohne manuelle URI-Erstellung, fügen Sie ein Filterargument hinzu:
- Befehl mit Filter fixiert:
Get-CimInstance -ClassName Win32_Service -Filter "Name = 'wuauserv'" -ComputerName "RemotePC"
- Befehl mit Filter fixiert:
Methode 3: WinRM-Verbindung Endpunktkonfiguration beheben
Wenn dieser Fehler bei der Verwendung einer externen Managementsoftware oder eines automatisierten Skripts auftritt, trifft die Software möglicherweise den falschen Standardkonfigurationsendpunkt.
- Öffnen. PowerShell als Administrator.
- Überprüfen Sie die aktuelle WinRM-Listerener-Konfiguration:
winrm e winrm/config/listener - Setzen Sie die WinRM-Konfiguration auf die Standard-Sichereinstellungen zurück, um ungültige benutzerdefinierte Routing-URIs zu löschen:
winrm quickconfig -q - Wiederaufsetzen des WinRM-Dienstes, um Änderungen anzuwenden:
Restart-Service WinRM
Es kann einige Fehler geben.. Learn Microsoft