前言:如果您有任何了解,请告诉我一种更好的方法!即使它改变了一切。
我有一个Powershell脚本,可与Net-SNMP一起使用来存储OID的当前值,对其进行更改,然后检查并存储这些值。现在,先前值和新值将存储在它们自己的变量中。在我的环境中的> 1000个节点上,大约需要更改160个OID。
例如,用于先前和新值:
$P_vpwrSystemTempCompensation_0 = & '.\SnmpGet.exe' -q -r:"$ip" -v:2c -c:public -o:.1.3.6.1.4.1.13858.2.2.1.0
$N_vpwrSystemTempCompensation_0 = & '.\SnmpGet.exe' -q -r:"$ip" -v:2c -c:public -o:.1.3.6.1.4.1.13858.2.2.1.0
我正在尝试找到存储这些内容并将其输出到CSV的最佳方法。我希望它像这样格式化:
每个CSV都将与我所击中的节点的名称和IP一起保存。
Welp,不知道PSObjects仅是信息对。我需要使用的被称为多维数组。这将使我可以输出为所需的格式。
您可以循环制作这样的对象,并且可以将其导出到csv:
[pscustomobject]@{OID='vpwrSystemTempCompensation.0'; Previous=2; New=5647}
OID Previous New
--- -------- ---
vpwrSystemTempCompensation.0 2 5647
顺便说一下,您不需要调用运算符来运行smnpget:
.\SnmpGet.exe -q -r:"$ip" -v:2c -c:public -o:.1.3.6.1.4.1.13858.2.2.1.0