在 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 服務:
SWbemObject、SWbemServices和 SWbemRefresher 等腳本物件不會直接使用 Proxy。 相反地,腳本物件表示作為一個包裝層,呼叫上述 WMI 物件的 COM API。 如需在文稿中設定驗證的詳細資訊和程式碼範例,請參閱使用 VBScript 設定預設進程安全性層級 。