无法设置 SNMP 值

Unable to set an SNMP value

我正在为某些 Ricoh 打印机获取 SNMP 值,但它们的托盘名称不同。我想用snmpset让名字一样,但是我好像做不到。

C:\Users\Emilio>snmpget -v1 -c admin xxx.xx.xxx.xxx .1.3.6.1.2.1.43.8.2.1.13.1.1
SNMPv2-SMI::mib-2.43.8.2.1.13.1.1 = STRING: "Tray 1"

C:\Users\Emilio>snmpset -v1 -c admin xxx.xx.xxx.xxx .1.3.6.1.2.1.43.8.2.1.13.1.1 s "test"
Error in packet.
Reason: (noSuchName) There is no such variable name in this MIB.
Failed object: SNMPv2-SMI::mib-2.43.8.2.1.13.1.1

管理员社区设置为 read/write。不知道是不是有些SNMP的值不能设置,但是还没想好怎么说。

我也试过使用 'x' 作为变量,它运行时没有给我一个错误,但它似乎也没有实际设置任何东西。

 C:\Users\Emilio>snmpset -v1 -c admin xxx.xx.xxx.xxx .1.3.6.1.2.1.43.8.2.1.13.1.1 x "test"
.1.3.6.1.2.1.43.8.2.1.13.1.1:  (test)

C:\Users\Emilio>snmpget -v1 -c admin xxx.xx.xxx.xxx .1.3.6.1.2.1.43.8.2.1.13.1.1
 SNMPv2-SMI::mib-2.43.8.2.1.13.1.1 = STRING: "Tray 1" 

这个snmp值可以设置吗?或者它被以某种方式锁定了?

通常,您会查看 MIB 以找出每个对象的含义。我假设您正在查看 prtInputName, a column in a table with two indexes(那是您的 1.1)。

显然这个 table 单元格存在,因为您的 Get 成功了。 MIB 说它是 readWrite。事实上,你的 Set 给你一个 noSuchName 然后仅仅通过改变类型就成功表明 Ricoh 设备的 SNMP 代理不是非常符合SNMP(and/or 有一个错误),但不幸的是,这并不罕见。

无论哪种方式,从您的结果来看,无论出于何种原因,该字段在该设备上都不可写,或者您使用的社区字符串没有提供足够的访问权限来更改它。

有关如何使用设备的 SNMP 接口的更多信息,您应该询问供应商

不过,我不会屏住呼吸:如果所有名称都可以相同,那么命名托盘有什么意义呢?在我看来,这些名称很可能是内置的并且不能更改,即使 MIB 提供了更宽松的设备。这应该是一件好事,所以如果它让您的程序感到困惑,那么您可能希望重新构建它。