2015-11-03 96 views
0

我需要將應用程序從Windows 2003遷移到Windows 2012 R2。還有一個SNMP擴展代理DLL(32位),也需要遷移。Windows 2012 R2 32位SNMP擴展代理

我已經安裝了SNMP服務並嘗試配置擴展代理。

起初,我試圖做同樣的方式,因爲它是在Windows 2003: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ExtensionAgents

"1"="SOFTWARE\\MyCompany\\MyAgent\\CurrentVersion" 

HKEY_LOCAL_MACHINE\SOFTWARE\MyCompany\MyAgent\CurrentVersion"Pathname"="C:\bin\myagent"

但extenstion代理沒有啓動和系統事件日誌中,我發現這個日誌:

SNMP服務忽視擴展代理DLL C:\ BIN \ myagent ,因爲它缺少或配置不當。

存在文件"myagent.dll"。所以我試着將"dll"擴展名添加到註冊表項中,結果相同。

經過一些互聯網研究,我發現,32位應用程序的註冊表鍵應該在Wow6432Node sud-tree下。讓我感動的配置註冊表樹:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\MyCompany\MyAgent\CurrentVersion 

,並改變了對擴展代理配置爲指向正確的註冊表子樹。在此之後,系統事件日誌中沒有錯誤日誌,但DLL不會由任何進程加載(由Process Explorer檢查)。

有沒有人有任何建議? (不幸的是,重新編譯爲64位不是一種選擇)。

+1

您需要將其重新編譯爲64位,然後64位SNMP服務才能加載它。 –

+0

嗯,我這樣做了。但沒有效果。 – dalicrosKH

回答

0

我與我們的32位SNMP擴展代理DLL同樣的問題,這是由這種方式解決:

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\OTES\NL_CUTDA\CurrentVersion] 
REG_EXPAND_SZ : "Pathname"="%ProgramFiles(x86)%\OTES\NL_CUTDA\NL_CUTDA.dll" 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SNMP\Parameters\ExtensionAgents] 
REG_SZ : "nl_cutdamib"="SOFTWARE\\OTES\\NL_CUTDA\\CurrentVersion" 

我覺得你不必更改註冊表子樹路徑,因爲HKEY_LOCAL_MACHINE\Software鍵被重定向到物理路徑HKEY_LOCAL_MACHINE\Software\Wow6432NodeRegistry Redirector

我希望它有幫助。問候,米蘭。

相關問題