是否可以从try..catch语句中提取多个SNMP值?

时间:2018-05-31 21:11:57

标签: powershell snmp

有没有办法在PowerShell中提取多个SNMP值并将其更新为新值? 我有两个不同的OID,我从UPS中取出,我希望将这些整数值保存到数据库表中。

这是我的代码

$UPS_Temp_oid = '1.3.6.1.4.1.318.1.1.10.2.3.2.1.4.1'
$Battery_Load_oid = '.1.3.6.1.4.1.318.1.1.1.4.2.3.0'

$sql = "SELECT temp, batteryload, upsid, ups_ip FROM ups WHERE ups_ip IS NOT NULL"
$cmd = New-Object System.Data.SqlClient.SqlCommand($sql, $conn)
$rows = $cmd.ExecuteReader()

while ($rows.Read()) {
    $ups_id = $rows["upsid"]
    $ups_ip = $rows["ups_ip"].trim()
    $ups_temp = $rows["temp"]
    $battery_load = $rows["batteryload"]

    Write-Output $ups_id, $ups_ip, $ups_temp, $battery_load
    # Ping UPS
    $ping = New-Object System.Net.NetworkInformation.Ping
    $ping_reply = $ping.Send($ups_mgmt_ip) | select status

    # If success go call func SNMP
    if ($ping_reply.status -eq "Success") {
        try {
            $frm_snmp = Invoke-SNMPget $ups_ip $UPS_Temp_oid "community"
        } catch {
            Write-Host "$ups_mgmt_ip SNMP Get error: $_"
            return null
        }

我是否必须为battery_load_oid创建另一个try..catch,或者我只是做这样的事情?

Invoke-SNMPget ups_ip $ups_temp_oid, $nattery_load_oid "community"

0 个答案:

没有答案