需要對命名空間進行加密連線

您可以將 RequiresEncryption 限定詞新增至 Managed 物件格式 (MOF) 建立命名空間的 .mof 檔案,以要求用戶端腳本和應用程式建立驗證的加密連線。

WMI 命名空間的加密連線會在腳本) 中指定 RPC_C_AUTHN_LEVEL_PKT_PRIVACY (或 PktPrivacy 來進行驗證。 RequiresEncryption 限定符會導致 WMI 拒絕任何傳入的資料要求,除非它們明確使用加密驗證。 如需詳細資訊,請參閱 使用 VBScript 設定預設進程安全性層級 或使用 C++ 設定驗證

您也可以藉由新增此屬性來修改現有的命名空間,然後再次編譯 MOF 檔案。 RequiresEncryption 用於 MOFpragma 命名空間 預處理器指令。

下列程式會將命名空間設定為需要加密的連線。

若要設定必要的加密

  1. 建立 Managed 物件格式 (MOF) 檔案,或修改定義命名空間的現有 MOF 檔案。

    下列程式碼範例顯示將修改的命名空間是 root\MyNamespace ,且檔案名為 MyNamespace_security.mofRequiresEncryption 具有布林資料類型,因此必須設定為 TrueFalse

    #pragma namespace("\\\\.\\Root\\MyNamespace") 
    
    [RequiresEncryption(TRUE)] 
    instance of __systemSecurity { };
    
  2. 執行 mofcomp.exe 以編譯 MOF 檔案。

    c:\mofcomp MyNamespace_security.mof

    在 C++ 中,使用 IMoFCompiler 方法。

WMI 會拒絕使用預設驗證層級的用戶端,因為 DCOM 會將安全性交涉到執行 WMI 服務所在的 SVCHOST 進程所需的層級。 如需服務主機的詳細資訊,請參閱 提供者裝載和安全性。 如需連線至 WMI 命名空間時設定驗證層級的詳細資訊,請參閱 使用 C++ 設定預設進程安全性層級、使用 C++設定驗證,或使用 VBScript 設定預設進程安全性層級

在非同步回呼連線上傳回資料時,WMI 會將拒絕存取訊息傳回給要求的電腦。 WMI 也會在電腦的 NT 事件記錄檔中建立記錄專案,其中包含加密的命名空間,指出無法建立與用戶端的安全連線。

從 Windows Vista 開始,WbemCore.log 檔案已不存在。 您可以檢查 NT 事件記錄檔中的專案,指出對需要加密之命名空間拒絕的輸入資料要求。

設定 Namepace 安全性描述元

WbemAuthenticationLevelEnum

保護遠端 WMI 連線