若要使用 WMI 連線到遠端電腦,請確定已針對連線啟用正確的 DCOM 設定和 WMI 命名空間安全性設定。
WMI 具有預設的模擬、驗證和驗證服務(NTLM 或 Kerberos)設定,這些是遠端連線中目標電腦所需的。 您的本機電腦可能會使用目標系統不接受的不同預設值。 您可以在連線呼叫中變更這些設定。
本主題將討論下列各節:
- WMI 的 DCOM 模擬和驗證設定
- 將DCOM安全性設定為允許使用者從遠端存取電腦
- 允許使用者存取特定 WMI 命名空間
- 將命名空間安全性設定為要求遠端連線使用資料加密
- 相關主題
WMI 的 DCOM 模擬和驗證設定
WMI 具有遠端系統所需的預設 DCOM 模擬、驗證和驗證服務設定(NTLM 或 Kerberos)。 您的本機系統可能會使用目標遠程系統不接受的不同預設值。 您可以在連線呼叫中變更這些設定。 如需詳細資訊,請參閱 設定用戶端應用程式進程安全性。 不過,針對驗證服務,建議您指定 RPC_C_AUTHN_DEFAULT 並允許DCOM為目標計算機選擇適當的服務。
您可以在 C++ 中提供呼叫 CoInitializeSecurity 或 CoSetProxyBlanket 參數中的設定。 在腳本中,您可以在呼叫 SWbemLocator.ConnectServer、在 SWbemSecurity 物件中,或在腳本 moniker 字符串中建立安全性設定。
如需所有C++模擬常數的清單,請參閱 使用 C++設定預設進程安全性層級。 如需使用Moniker連線的Visual Basic常數和腳本字串,請參閱 使用 VBScript 設定預設進程安全性層級。
下表列出目標電腦 (計算機 B) 在遠端連線中所需的預設 DCOM 模擬、驗證和驗證服務設定。 如需詳細資訊,請參閱保護遠端 WMI 連線。
| 電腦 B 作業系統 | 偽裝層級腳本字串 | 驗證層級腳本字串 | 驗證服務 |
|---|---|---|---|
| Windows Vista 或更新版本 | 冒充 | Pkt | Kerberos |
WMI 遠端聯機會受到 用戶帳戶控制 (UAC) 和 Windows 防火牆影響。 如需詳細資訊,請參閱 從 Vista 遠端連線到 WMI,透過 Windows 防火牆連線。
請注意,連線到本機電腦上的 WMI 時,其預設驗證層級為 PktPrivacy。
將 DCOM 安全性設定為允許使用者從遠端存取電腦
WMI 中的安全性與連線到 WMI 命名空間有關。 WMI 使用 DCOM 來處理遠端話叫。 無法連接到遠端計算機的其中一個原因是由於 DCOM 失敗(錯誤 "DCOM Access Denied",十進位 -2147024891 或十六進位 0x80070005)。 如需 C++ 應用程式 WMI 中 DCOM 安全性的詳細資訊,請參閱 設定用戶端應用程式進程安全性。
您可以使用 [系統管理工具]中找到的 DCOM 組態公用程式DCOMCnfg.exe來設定 WMI 的 DCOM 設定。 此公用程式會公開可讓特定使用者透過DCOM從遠端連線到電腦的設定。 根據預設,系統允許系統管理員群組的成員從遠端連線到計算機。 使用此公用程式,您可以設定安全性來啟動、存取及設定 WMI 服務。
下列程序說明如何授與特定使用者和群組的 DCOM 遠端啟動和啟用許可權。 如果電腦 A 從遠端連線到電腦 B,您可以在電腦 B 上設定這些許可權,以允許不屬於電腦 B 上 Administrators 群組的使用者或群組,在電腦 B 上執行 DCOM 啟動和啟用呼叫。
為使用者或群組授與DCOM遠端啟動和啟用許可權
按一下[開始],按一下[執行],輸入DCOMCNFG,然後按一下[確定]。
在 [元件服務] 對話框中,展開 元件服務,展開 [計算機],然後在 [我的計算機] 上按兩下 滑鼠右鍵,然後按兩下 [屬性]。
在 [我的電腦的屬性] 對話框中,點擊 [COM 安全性] 標籤。
在 [啟動和啟用許可權] 下,點擊 [編輯限制]。
在 [啟動許可權] 對話框中,如果您的名稱或群組未出現在 [群組或使用者名稱] 清單中,請遵循下列步驟,:
- 在 [啟動許可權] 對話框中,按一下 [新增]。
- 在 [選取 [使用者、計算機或群組] 對話框中,在 [輸入物件名稱以選取] 方塊中新增您的名稱和群組,然後按一下 [確定]。
在 [啟動許可權] 對話框中,選取 [群組或用戶名稱] 方塊中的使用者和群組。 在 [使用者的許可權] 底下的 [允許] 欄中,選取 [遠端啟動] 和 [遠端啟用],然後按一下 [確定] 。
下列程序說明如何授與特定使用者和群組的DCOM遠端訪問許可權。 如果電腦 A 從遠端連線到電腦 B,您可以在電腦 B 上設定這些許可權,以允許不屬於電腦 B 上 Administrators 群組的使用者或群組連線到電腦 B。
授與 DCOM 遠端存取權限
- 點選 [開始],點選 [執行],輸入 DCOMCNFG,然後點選 [確定]。
- 在 [元件服務] 對話框中,展開 元件服務,展開 [計算機],然後在 [我的計算機] 上按兩下 滑鼠右鍵,然後按兩下 [屬性]。
- 在 [[我的計算機屬性] 對話框中,按兩下 [COM 安全性] 索引標籤。
- 在 [訪問許可權]下,點擊 [編輯限制] 。
- 在 [訪問許可權] 對話框中,在 [群組或使用者名稱] 方塊中選取 [匿名登入] 名稱。 在 [使用者的許可權] 底下的 [允許] 欄位中,選取 [遠端訪問],然後按一下 [確定]。
允許使用者存取特定 WMI 命名空間
您可以在命名空間的 WMI 控制件中設定 [遠端啟用] 權限,以允許或不允許使用者存取特定 WMI 命名空間。 如果使用者嘗試連線到不允許存取的命名空間,他們會收到錯誤0x80041003。 根據預設,只有系統管理員才啟用此許可權。 系統管理員可以為非系統管理員使用者啟用對特定 WMI 命名空間的遠端訪問。
下列程式會設定非系統管理員用戶的遠端啟用許可權。
設定遠程啟用許可權
使用 WMI 控制件連線到遠端電腦。
在 [安全性] 索引標籤中,選取命名空間,然後按一下 [安全性]。
找出適當的帳戶,並在 [許可權] 列表中勾選 [遠端啟用]。
將命名空間安全性設定為要求遠端連線進行數據加密
系統管理員或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")
相關主題