共用方式為


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

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

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

您也可以新增此屬性來修改現有的命名空間,然後再次編譯MOF檔案。 RequiresEncryption 會與預處理器指令 pragma 命名空間MOF 搭配使用。

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

若要設定必要的加密

  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 事件記錄檔中的條目,以了解指出那些被拒絕的輸入資料請求,它們針對的是需要加密的命名空間。

設定命名空間安全性描述元

WbemAuthenticationLevelEnum

保護遠端 WMI 連線