Erfordern einer verschlüsselten Verbindung mit einem Namespace

Sie können erfordern, dass Clientskripts und Anwendungen eine verschlüsselte Verbindung für die Authentifizierung einrichten, indem Sie den "RequireEncryption qualifier" zur MOF-Datei (Managed Object Format, MOF) hinzufügen, die den Namespace erstellt.

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. Die Qualifizierer "RequiresEncryption " bewirkt, dass WMI eingehende Datenanforderungen ablehnen kann, es sei denn, sie verwenden explizit verschlüsselte Authentifizierung. Weitere Informationen finden Sie unter Festlegen der Standardsicherheitsebene mit VBScript oder Festlegen derAuthentifizierung mit C++.

Sie können auch einen vorhandenen Namespace ändern, indem Sie dieses Attribut hinzufügen und dann die MOF-Datei erneut kompilieren. ErforderlichEncryption wird in MOF mit der Pragma-Namespace-Preprocessor-Anweisung verwendet.

Im folgenden Verfahren wird der Namespace so festgelegt, dass eine verschlüsselte Verbindung erforderlich ist.

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 den Namespace, der geändert wird, ist stamm\MyNamespace und die Datei wird MyNamespace_security.mof benannt. ErfordertEncryption verfügt über einen booleschen Datentyp, sodass er auf "True " oder " False" festgelegt werden muss.

    #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 Sicherheit auf die vom SVCHOST-Prozess erforderliche Ebene ausgibt, in der der WMI-Dienst ausgeführt wird. Weitere Informationen zu Diensthosts finden Sie unter Anbieterhosting und Sicherheit. Weitere Informationen zum Festlegen von Authentifizierungsstufen beim Herstellen einer Verbindung mit WMI-Namespaces finden Sie unter Festlegen der Standardsicherheitsebene mit C++, Festlegen der Authentifizierung mit C++oder Festlegen der Standardsicherheitsebene mit VBScript.

Wenn Sie Daten für eine asynchrone Rückrufverbindung zurückgeben, gibt WMI eine Zugriffsnachricht zurück, die der anfordernde Computer verweigert hat. WMI macht auch einen Protokolleintrag im NT-Ereignisprotokoll des Computers mit dem verschlüsselten Namespace, der angibt, dass eine sichere Verbindung nicht für den Client eingerichtet werden kann.

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

Festlegen von Namepace-Sicherheitsdeskriptoren

WbemAuthenticationLevelEnum

Sichern einer Remote-WMI-Verbindung