监控打印机墨水存量与利用率

<注意> 此范例仅供说明之用,本公司不提供技术支持。Ipswitch 为内容对象、SNMP API 和脚本环璄提供技术支持服务,但不对 JScript、VBScript,或活动脚本监控工具或操作的开发及侦错提供支持服务。如需此范例或自行编写脚本方面的协助,请造访 WhatsUp Gold 用户社群论坛

此主动监控工具会轮询打印机 MIB 的对象,以收集墨水存量信息,然后计算打印机的墨盒利用率。

若利用率超过脚本第一行设定的值,主动监控工具就会触发警报。

<注意> 本脚本是以 HP MIB 为测试依据。

执行 SNMP MIB Walker 网络工具,检查两个被轮询对象的 OID,最后再调整其实例 (此例为 1.1):

1.3.6.1.2.1.43.11.1.1.8.1.1 与 1.3.6.1.2.1.43.11.1.1.9.1.1。

<注意> 此脚本仅供示范程序代码之用。打印机主动监控工具必须用于监控打印机。

var nMarkerPercentUtilization = 70; // This monitor will fail if the printer ink utilization is above this value %.
var oSnmpRqst = new ActiveXObject("CoreAsp.SnmpRqst");
var nDeviceID = Context.GetProperty("DeviceID");
var oComResult = oSnmpRqst.Initialize(nDeviceID);
if (oComResult.Failed) {
Context.SetResult(1, oComResult.GetErrorMsg);
}
else {
// poll the two counters
Context.LogMessage("Polling marker maximum level");
var oResponse = oSnmpRqst.Get("1.3.6.1.2.1.43.11.1.1.8.1.1");
if (oResponse.Failed) {
Context.SetResult(1, oResponse.GetErrorMsg);
}
var prtMarkerSuppliesMaxCapacity = oResponse.GetValue;
Context.LogMessage("Success.Value=" + prtMarkerSuppliesMaxCapacity);

Context.LogMessage("Polling marker current level");
oResponse = oSnmpRqst.Get("1.3.6.1.2.1.43.11.1.1.9.1.1");
if (oResponse.Failed) {
Context.SetResult(1, oResponse.GetErrorMsg);
}
var prtMarkerSuppliesLevel = oResponse.GetValue;
Context.LogMessage("Success.Value=" + prtMarkerSuppliesLevel);

var nPercentUtilization = 100 * prtMarkerSuppliesLevel / prtMarkerSuppliesMaxCapacity;

if (nPercentUtilization > nMarkerPercentUtilization) {
Context.SetResult(1, "Failure.Current Utilization (" + (nPercentUtilization + "%) is above the configured threshold (" + nMarkerPercentUtilization) + "%)");
}
else {
Context.SetResult(0, "Success.Current Utilization (" + (nPercentUtilization + "%) is below the configured threshold (" + nMarkerPercentUtilization) + "%)");
}
}

另请参阅

活动脚本主动监控工具范例

在温度超过或低于范围时发出警报

判断无效的用户账号活动

网络接口的监控工具带宽利用率

监控在非标准端口上执行的 SNMP 代理程序

监控不明的 MAC 地址