Windows 2012 R2 32 位 SNMP 扩展代理
Posted
技术标签:
【中文标题】Windows 2012 R2 32 位 SNMP 扩展代理【英文标题】:Windows 2012 R2 32-bit SNMP extension agent 【发布时间】:2015-11-03 13:10:11 【问题描述】:我需要将应用程序从 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 位应用程序的注册表项应该在 Wow6432Node
sud-tree 下。所以我将配置移动到注册表树:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\MyCompany\MyAgent\CurrentVersion
并更改扩展代理上的配置以指向正确的注册表子树。在此之后,系统事件日志中没有错误日志,但是任何进程都没有加载 DLL(由进程资源管理器检查)。
有人有什么建议吗? (很遗憾,不能重新编译为 64 位)。
【问题讨论】:
你需要重新编译成64位,然后64位的SNMP服务才能加载它。 好吧,我这样做了。但没有任何效果。 【参考方案1】:我们的 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
通过
Registry Redirector.
我希望它有所帮助。问候,米兰。
【讨论】:
以上是关于Windows 2012 R2 32 位 SNMP 扩展代理的主要内容,如果未能解决你的问题,请参考以下文章
windows+server+2012为何不能兼容32位利用程序
急求windows server 2003 R2企业版32位 ISO镜像
Windows 2008 R2 64 位机器 (Tridion 5.3) 上的 ComponentPresentationAssembler 错误