2012-07-28 44 views
1

我有一個C#應用程序,它通過WMI連接到許多遠程系統,無論是在域中還是獨立的。該方案向wmi提供憑證並使用模擬。當手動運行(從控制檯)時,它連接良好,一切正常。但是,當從服務(作爲本地用戶運行)調用相同的.exe時,它在調用ManagementScope上的Connect()時總是獲得0x80070005(E_ACCESSDENIED)。嘗試從服務進行遠程WMI調用時訪問被拒絕

我已經搜索了很多,發現了許多類似主題上看似有用的文章,但都沒有奏效。 This one和他在MS網站上的[後續文章] [2]非常相似,除了我的連接失敗,而不是嘗試運行查詢時,所以感覺就像是本地系統權限問題。

我已經搞砸了DCOM權限,WMI遠程處理權限,模擬選項,策略選項,Windows防火牆等等,都沒有結果。有沒有人可以幫忙?

編輯:多一點挖掘我發現從MS的this small page,這真的指向我的錯誤(0x80070005)是連接期間發生的DCOM問題,而不是特定的WMI錯誤。他們給出的原因是1.證書失敗,或者2. DCOM啓動/遠程激活權限。由於我的程序在使用相同憑證手動運行時運行,因此我必須假定它存在DCOM問題。我已經設置啓動Remote/Local Activation &以允許SYSTEM,LOCAL SERVICE,INTERACTIVE和Administrators,但仍然失敗。由於該服務以本地系統運行,因此我認爲這些設置應該足夠了。

+0

你解決了這個問題嗎?這裏的問題類似。 – dalvarezmartinez1 2015-03-30 09:52:55

回答

0

我可能是過於簡單化或不完全理解你的問題,但在我看來,如果你想通過具有從計算機本地帳戶只憑據,這樣的服務來訪問遠程WMI供應商努力總會失敗(按設計)。沒有從MACHINE \ account身份驗證到OTHERMACHINE \ account或DOMAIN \ account的路徑。再一次,如果我簡單或誤解,我的道歉。

+0

嗨大衛,謝謝你的回覆。如果我沒有讓自己的情況更清楚,我很抱歉。 c#應用程序確實爲遠程計算機提供身份驗證/憑據,並且不依賴域/機器帳戶信任。實際上,目標計算機都在源域內外。我也嘗試在獨立的(XP)工作站上運行它,並以相同的方式失敗。這是否更有意義? – 2012-07-28 22:38:15

+0

這可能是您已經開展的一條路徑,但我想我會投入一些時間在源計算機和目標計算機上設置ProcMon副本,啓動您的服務,並讓ProcMon吞併結果以查看*完全*當發生故障時。它可能會讓您更好地瞭解您需要將修復重點放在哪裏。 – 2012-07-30 16:06:23

相關問題