設定用戶端應用程式進程安全性
呼叫 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 設定預設進程安全性層級。