保護遠端 WMI 連線

若要使用 WMI 連線到遠端電腦,請確定已針對連線啟用正確的 DCOM 設定和 WMI 命名空間安全性設定。

WMI 具有遠端連線中目的電腦所需的預設模擬、驗證和驗證服務 (NTLM 或 Kerberos) 設定。 您的本機電腦可能會使用目標系統不接受的不同預設值。 您可以在連線呼叫中變更這些設定。

本主題將討論下列各節:

WMI 的 DCOM 模擬和驗證設定

WMI 具有遠端系統所需的預設 DCOM 模擬、驗證和驗證服務 (NTLM 或 Kerberos) 設定。 您的本機系統可能會使用目標遠端系統不接受的不同預設值。 您可以在連線呼叫中變更這些設定。 如需詳細資訊,請參閱 設定用戶端應用程式進程安全性 。 不過,針對驗證服務,建議您指定 RPC_C_AUTHN_DEFAULT 並允許 DCOM 為目的電腦選擇適當的服務。

您可以在 C++ 中為 CoInitializeSecurity CoSetProxyBlanket 的呼叫 提供參數中的設定。 在腳本中,您可以在對 SWbemLocator.連線 的 呼叫中建立安全性設定伺服器 、在 SWbemSecurity 物件或腳本 Moniker 字串中。

如需所有 C++ 模擬常數的清單,請參閱 使用 C++ 設定預設進程安全性層級。 如需使用 Moniker 連線的 Visual Basic 常數和腳本字串,請參閱 使用 VBScript 設定預設進程安全性層級。

下表列出目的電腦 (電腦 B) 在遠端連線中所需的預設 DCOM 模擬、驗證和驗證服務設定。 如需詳細資訊,請參閱保護遠端 WMI 連線。

電腦 B 作業系統 模擬層級腳本字串 驗證層級腳本字串 驗證服務
Windows Vista 或更新版本 Impersonate Pkt Kerberos

 

WMI 遠端連線受到 使用者帳戶控制 (UAC) Windows 防火牆 的影響。 如需詳細資訊,請參閱 從 Vista 遠端連線 WMI,以及 透過 Windows 防火牆 連線。

請注意,連線到本機電腦上的 WMI 具有 PktPrivacy 的預設驗證層級

將 DCOM 安全性設定為允許使用者從遠端存取電腦

WMI 中的安全性與連線到 WMI 命名空間有關。 WMI 使用 DCOM 來處理遠端呼叫。 無法連線到遠端電腦的其中一個原因是 DCOM 失敗(錯誤 「DCOM Access Denied」 decimal -2147024891 或十六進位0x80070005)。 如需 C++ 應用程式 WMI 中 DCOM 安全性的詳細資訊,請參閱 設定用戶端應用程式進程安全性

您可以使用 管理員istrative Tools 中找到的 DCOM Config 公用程式 ( DCOMCnfg.exe ) 來設定 WMI 主控台 DCOM 設定。 此公用程式會公開可讓特定使用者透過 DCOM 從遠端連線到電腦的設定。 預設允許管理員istrators 群組的成員從遠端連線到電腦。 使用此公用程式,您可以設定安全性來啟動、存取及設定 WMI 服務。

下列程式說明如何授與特定使用者和群組的 DCOM 遠端啟動和啟用許可權。 如果電腦 A 遠端連線到電腦 B,您可以在電腦 B 上設定這些許可權,以允許不屬於電腦 B 上管理員istrators 群組的使用者或群組,在電腦 B 上執行 DCOM 啟動和啟用呼叫。

授與使用者或群組的 DCOM 遠端啟動和啟用許可權

  1. 按一下 [ 開始 ],按一下 [執行 ],輸入 DCOMCNFG ,然後按一下 [ 確定 ]。

  2. 在 [ 元件服務] 對話方塊中,依序展開 [元件服務 ] 和 [電腦 ],然後以滑鼠右鍵按一下 [我的電腦 ],然後按一下 [ 內容 ]。

  3. 在 [ 我的電腦內容 ] 對話方塊中,按一下 [ COM 安全性] 索引標籤。

  4. 在 [啟動和啟用許可權] 下 ,按一下 [ 編輯限制 ]。

  5. 在 [ 啟動許可權 ] 對話方塊中,如果您的名稱或群組未出現在 [群組或使用者名稱] 清單中 ,請遵循下列步驟:

    1. 在 [ 啟動許可權] 對話方塊中,按一下 [ 新增 ]。
    2. 在 [ 選取使用者、電腦或群組 ] 對話方塊中,在 [輸入要選取 的物件名稱] 方塊中 新增您的名稱和群組,然後按一下 [ 確定 ]。
  6. 在 [ 啟動許可權] 對話方塊中,選取 [群組或使用者名稱 ] 方塊中的 使用者和群組。 在 [ 使用者許可權] 底下的 [允許 ] 欄中,選取 [ 遠端啟動 ],然後選取 [ 遠端啟用 ],然後按一下 [ 確定 ]。

下列程式說明如何授與特定使用者和群組的 DCOM 遠端存取許可權。 如果電腦 A 從遠端連線到電腦 B,您可以在電腦 B 上設定這些許可權,以允許不屬於電腦 B 上管理員istrators 群組的使用者或群組連線到電腦 B。

授與 DCOM 遠端存取許可權

  1. 按一下 [ 開始 ],按一下 [執行 ],輸入 DCOMCNFG ,然後按一下 [ 確定 ]。
  2. 在 [ 元件服務] 對話方塊中,依序展開 [元件服務 ] 和 [電腦 ],然後以滑鼠右鍵按一下 [我的電腦 ],然後按一下 [ 內容 ]。
  3. 在 [ 我的電腦內容 ] 對話方塊中,按一下 [ COM 安全性] 索引標籤。
  4. 在 [存取權限] 底下 ,按一下 [ 編輯限制 ]。
  5. 在 [ 存取權限] 對話方塊中,選取 [群組或使用者名稱] 方塊中的 [匿名登入 名稱 ]。 在 [允許使用者的許可權] 下方 [允許 ] 資料行中,選取 [ 遠端存取 ],然後按一下 [ 確定 ]。

允許使用者存取特定 WMI 命名空間

您可以在命名空間的 WMI 控制項中設定 [遠端啟用] 許可權,以允許或不允許使用者存取特定 WMI 命名空間。 如果使用者嘗試連線到不允許存取的命名空間,他們會收到錯誤0x80041003。 根據預設,只有系統管理員才啟用此許可權。 系統管理員可以為非系統管理員使用者啟用對特定 WMI 命名空間的遠端存取。

下列程式會設定非系統管理員使用者的遠端啟用許可權。

設定遠端啟用許可權

  1. 使用 WMI 控制項連線遠端電腦。

    如需 WMI 控制項的詳細資訊,請參閱 使用 WMI 控制項 設定命名空間安全性。

  2. 在 [ 安全性] 索引標籤中,選取命名空間,然後按一下 [ 安全性 ]。

  3. 找出適當的帳戶,並在 [許可權 ] 清單中核 取 [ 遠端啟用 ]。

將命名空間安全性設定為需要遠端連線的資料加密

系統管理員或 MOF 檔案可以設定 WMI 命名空間,除非您在該命名空間的連線中使用封包隱私權( RPC_C_AUTHN_LEVEL_PKT_PRIVACY PktPrivacy 作為腳本中的 Moniker),否則不會傳回任何資料。 這可確保資料在透過網路時加密。 如果您嘗試設定較低的驗證層級,您將會收到拒絕存取的訊息。 如需詳細資訊,請參閱 要求對命名空間 進行加密連線。

下列 VBScript 程式碼範例示範如何使用 「pktPrivacy」 連線到加密的命名空間。

strComputer = "RemoteComputer"
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate,authenticationLevel=pktPrivacy}!\\" _
                              & strComputer & "\root\EncryptedNamespace")

使用 WMI 委派

使用 WMI 從遠端建立進程

保護 C++ 用戶端和提供者

保護腳本用戶端