設定用戶端應用程式進程安全性
呼叫 WMI 介面的用戶端應用程式可以控制其進程的安全性層級。 所有 WMI 應用程式都會透過 COM 存取 WMI,而且您可以呼叫 COM 函式 CoInitializeSecurity 來設定處理程式的安全性。 對 WMI 進行異步呼叫的應用程式,以及註冊為事件使用者的應用程式,會在呼叫 WMI 時設定安全性層級。
如果您未明確呼叫 CoInitializeSecurity,COM 會以隱含方式呼叫登錄中的值。 不過,登錄值可能設置模擬和驗證的較低設定,無法提供WMI所需的安全性。 如需詳細資訊,請參閱 使用 C++設定預設進程安全性層級。
不建議異步存取 WMI。 異步回呼可讓未經驗證的用戶將數據提供給接收器。 這對您的腳本和應用程式構成安全性風險。 若要消除風險,請使用半同步或同步通訊,或在用戶端應用程式中執行適當的存取檢查。 如需詳細資訊,請參閱 呼叫 方法。
呼叫任何 WMI Proxy (IWbemServices、IEnumWbemClassObject、IWbemCallResult或 IWbemRefresher) 使用跨進程指標。 如需預設值和建議的詳細資訊,請參閱 在 IWbemServices 和其他 Proxy 上設定安全性。
下列程式描述您必須執行的步驟,以設定應用程式程式上的 WMI 安全性。
在應用程式程序上設定 WMI 的安全性
- 判斷用戶端應用程式執行所在的 Windows作系統所需的安全性層級。
- 呼叫 COM CoInitializeSecurity 函式,以設定用戶端應用程式執行之進程的預設安全性。 這會宣告其他應用程式需要多少安全性,才能存取應用程式執行的進程。
- 如果您需要變更個別 Proxy 上的安全性,例如,在另一次呼叫 IWbemServices時,呼叫 CoSetProxyBlanket。
- 如果您需要控制需要更多許可權的遠端硬體或系統物件,請使用 AdjustTokenPrivileges 函式來啟用必要的許可權。 請注意,您無法啟用尚未被指派給該進程的權限。 如需詳細資訊,請參閱 檢查私用物件的存取。
如需設定預設進程安全性等級的詳細資訊,請參閱 使用 C++ 設定預設行程安全性層級,以及使用 VBScript 設定預設進程安全性層級。