<注意> 此范例仅供说明之用,本公司不提供技术支持。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) + "%)");
}
}