共用方式為


設定用戶端應用程式進程安全性

呼叫 WMI 介面的用戶端應用程式可以控制其進程的安全性層級。 所有 WMI 應用程式都會透過 COM 存取 WMI,而且您可以呼叫 COM 函式 CoInitializeSecurity 來設定處理程式的安全性。 對 WMI 進行異步呼叫的應用程式,以及註冊為事件使用者的應用程式,會在呼叫 WMI 時設定安全性層級。

如果您未明確呼叫 CoInitializeSecurity,COM 會以隱含方式呼叫登錄中的值。 不過,登錄值可能設置模擬和驗證的較低設定,無法提供WMI所需的安全性。 如需詳細資訊,請參閱 使用 C++設定預設進程安全性層級。

不建議異步存取 WMI。 異步回呼可讓未經驗證的用戶將數據提供給接收器。 這對您的腳本和應用程式構成安全性風險。 若要消除風險,請使用半同步或同步通訊,或在用戶端應用程式中執行適當的存取檢查。 如需詳細資訊,請參閱 呼叫 方法

呼叫任何 WMI Proxy (IWbemServicesIEnumWbemClassObjectIWbemCallResultIWbemRefresher) 使用跨進程指標。 如需預設值和建議的詳細資訊,請參閱 在 IWbemServices 和其他 Proxy 上設定安全性

下列程式描述您必須執行的步驟,以設定應用程式程式上的 WMI 安全性。

在應用程式程序上設定 WMI 的安全性

  1. 判斷用戶端應用程式執行所在的 Windows作系統所需的安全性層級。
  2. 呼叫 COM CoInitializeSecurity 函式,以設定用戶端應用程式執行之進程的預設安全性。 這會宣告其他應用程式需要多少安全性,才能存取應用程式執行的進程。
  3. 如果您需要變更個別 Proxy 上的安全性,例如,在另一次呼叫 IWbemServices時,呼叫 CoSetProxyBlanket
  4. 如果您需要控制需要更多許可權的遠端硬體或系統物件,請使用 AdjustTokenPrivileges 函式來啟用必要的許可權。 請注意,您無法啟用尚未被指派給該進程的權限。 如需詳細資訊,請參閱 檢查私用物件的存取

如需設定預設進程安全性等級的詳細資訊,請參閱 使用 C++ 設定預設行程安全性層級,以及使用 VBScript 設定預設進程安全性層級