0

我需要将应用程序从 Windows 2003 迁移到 Windows 2012 R2。有一个 SNMP 扩展代理 DLL(32 位)也需要迁移。

我已经安装了 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"

但是扩展代理没有启动,在系统事件日志中我发现了这个日志:

SNMP 服务忽略扩展代理 dll C:\bin\myagent,因为它丢失或配置错误。

该文件"myagent.dll"存在。所以我尝试将"dll"扩展名添加到具有相同结果的注册表项。

经过一些 Internet 研究,我发现 32 位应用程序的注册表项应该在Wow6432Nodesud-tree 下。所以我将配置移动到注册表树:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\MyCompany\MyAgent\CurrentVersion 

并将扩展代理上的配置更改为指向正确的注册表子树。在此之后,系统事件日志中没有错误日志,但是任何进程都没有加载 DLL(由进程资源管理器检查)。

有没有人有什么建议?(不幸的是,重新编译到 64 位不是一个选项)。

4

1 回答 1

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\Wow6432Node

我希望它有所帮助。问候,米兰。

于 2015-11-16T12:03:18.210 回答