在 WMI 中設定驗證

在呼叫進程外部或遠端 WMI 服務進行呼叫時,WMI 會使用分散式版本的元件物件模型 (DCOM) 。 跨進程和遠端呼叫是透過 Proxy 進行,這需要驗證呼叫程式的認證。

連線到電腦和 WMI 命名空間時,您可以設定驗證層級。 若要連線到 WMI,請在 C++ 中呼叫 IWbemLocator::ConnectServer 。 在腳本或 Visual Basic 中,您可以使用 SWbemLocator.ConnectServer 或 透過 Moniker 字串連線到 WMI。 在電腦之間連線時,DCOM 安全性和 WMI 都需要特定驗證層級。 所需的層級會根據您要連線的作業系統而有所不同。 如需詳細資訊,請參閱 連線到遠端電腦上的 WMI

WMI 通常會在共用服務主機中執行,並且與主機中的其他進程共用相同的驗證。 若要使用不同的驗證層級執行 WMI 程式,請使用 winmgmt 命令搭配 /standalonehost 參數執行 WMI,並一般設定 WMI 的驗證層級。 如需詳細資訊,請參閱 維護 WMI 安全性

如需如何設定 WMI 連線驗證的詳細資訊和程式碼範例,請參閱 使用 VBScript 設定驗證服務 和使用 C++ 設定驗證。 這些主題也包含列出 C++ 和腳本驗證常數的資料表。

在 WMI 中使用 Proxy

若要設定 Proxy 的驗證,請呼叫 CoSetProxyBlanket 函式。 如需詳細資訊和程式碼範例,請參閱 在 IWbemServices 和其他 Proxy 上設定安全性

下列 適用于 WMI 物件的 COM API 會直接在 C++ 或 C# 中使用 Proxy 來呼叫進程或遠端 WMI 服務:

腳本物件,例如 SWbemObjectSWbemServicesSWbemRefresher 不會直接使用 Proxy。 相反地,腳本物件代表呼叫上述 WMI 物件的 COM API 的包裝函式或圖層。 如需在腳本中設定驗證的詳細資訊和程式碼範例,請參閱 使用 VBScript 設定預設進程安全性等級