Anfordern einer verschlüsselten Verbindung mit einem Namespace

Sie können festlegen, dass Clientskripts und Anwendungen eine verschlüsselte Verbindung für die Authentifizierung verwenden, indem Sie der MOF-Datei (Managed Object Format), die den Namespace erstellt, den RequireEncryption-Qualifizierer hinzufügen.

Eine verschlüsselte Verbindung mit einem WMI-Namespace gibt RPC_C_AUTHN_LEVEL_PKT_PRIVACY (oder PktPrivacy in einem Skript) für die Authentifizierung an. Der RequiresEncryption-Qualifizierer bewirkt, dass WMI eingehende Datenanforderungen ablehnt, es sei denn, sie verwenden explizit die verschlüsselte Authentifizierung. Weitere Informationen finden Sie unter Festlegen der Sicherheitsstufe für Standardprozesse mit VBScript oder Festlegen der Authentifizierung mit C++.

Sie können auch einen vorhandenen Namespace ändern, indem Sie dieses Attribut hinzufügen und dann die MOF-Datei erneut kompilieren. RequiresEncryption wird in MOF mit der Präprozessoranweisung pragma namespace verwendet.

Das folgende Verfahren legt fest, dass der Namespace eine verschlüsselte Verbindung anfordert.

So legen Sie die erforderliche Verschlüsselung fest

  1. Erstellen Sie eine MOF-Datei (Managed Object Format), oder ändern Sie Ihre vorhandene MOF-Datei, die den Namespace definiert.

    Das folgende Codebeispiel zeigt, dass der Namespace, der geändert wird, root\MyNamespace ist und die Datei den Namen MyNamespace_security.mof hat. RequiresEncryption hat den Datentyp „Boolesch“, daher muss die Einstellung auf TRUE oder FALSE festgelegt werden.

    #pragma namespace("\\\\.\\Root\\MyNamespace") 
    
    [RequiresEncryption(TRUE)] 
    instance of __systemSecurity { };
    
  2. Führen Sie mofcomp.exe aus, um die MOF-Datei zu kompilieren.

    c:\mofcomp MyNamespace_security.mof

    Verwenden Sie in C++ die IMoFCompiler-Methoden.

WMI lehnt einen Client ab, der die Standardauthentifizierungsebene verwendet, da DCOM die Sicherheitsebene gemäß den Anforderungen des SVCHOST-Prozesses aushandelt, in dem der WMI-Dienst ausgeführt wird. Weitere Informationen zu Diensthosts finden Sie unter Anbieterhosting und Sicherheit. Weitere Informationen zum Festlegen von Authentifizierungsebenen beim Herstellen einer Verbindung mit WMI-Namespaces finden Sie unter Festlegen der Sicherheitsstufe für Standardprozesse mit C++, Festlegen der Authentifizierung mit C++ oder Festlegen der Sicherheitsstufe für Standardprozesse mit VBScript.

Bei der Rückgabe von Daten über eine asynchrone Rückrufverbindung gibt WMI die Meldung „Zugriff verweigert“ an den anfordernden Computer zurück. WMI erstellt außerdem einen Protokolleintrag im NT-Ereignisprotokoll des Computers mit dem verschlüsselten Namespace, der besagt, dass keine sichere Verbindung mit dem Client hergestellt werden kann.

Ab Windows Vista ist die Datei „WbemCore.log“ nicht mehr vorhanden. Sie können das NT-Ereignisprotokoll auf Einträge überprüfen, die abgelehnte eingehende Datenanforderungen an Namespaces angeben, die Verschlüsselung erfordern.

Festlegen von Sicherheitsbeschreibungen für Namespaces

WbemAuthenticationLevelEnum

Schützen einer WMI-Remoteverbindung