首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >通过Powershell更新两个不同的SNMP OID值

通过Powershell更新两个不同的SNMP OID值
EN

Stack Overflow用户
提问于 2018-06-08 06:48:00
回答 1查看 387关注 0票数 0

我正在尝试通过powershell更新4个ups中具有两个不同OID值的信息。我可以更新一个值,但是当我尝试更新这两个值时,我收到一个错误。我明白了为什么它不通过将值插入到新表中来更新值。当它插入/更新值时,脚本将两个值都输入到表列中,而不是将一个值作为temp,一个值作为电池。我的问题是,如果有方法,我如何更新这两个值。下面是我正在运行的循环。

代码语言:javascript
复制
    # If success go call func SNMP
    if($ping_reply.status -eq "Success"){
        try {
            $frm_snmp = Invoke-SNMPget $ups_ip $oidTemp, $oidBatload "public"
        } catch {
            Write-Host "$ups_ip SNMP Get error: $_"
            Return null
        }


    # if the data doesn't match record update ups_data
    if([String]::IsNullOrWhiteSpace($frm_snmp.Data)){
         Write-Host "Given string is NULL"
    }else{
        if(($ups_temp -and $battery_load -ne $frm_snmp.Data)) { 
            Write-Output "database update needed"
            Write-Output $ups_ip, $ups_upsname $frm_snmp.Data

            $new_temp = $frm_snmp.Data
            $new_battery_load = $frm_snmp.Data
            $update_con = New-Object System.Data.SqlClient.SqlConnection
            $update_con.ConnectionString = "connection info"
            $update_con.Open()

            $SQLstmt = "update ups_data set temp = '$new_temp', batteryload = '$new_battery_load' where ip_address = '$ups_ip'"

            $up_cmd = $update_con.CreateCommand() 
            $up_cmd.CommandText = $SQLstmt
            $up_cmd.ExecuteNonQuery()
            $update_con.Close()
EN

回答 1

Stack Overflow用户

发布于 2018-06-08 07:18:49

这是下面的工作代码

代码语言:javascript
复制
# If success go call func SNMP
        if($ping_reply.status -eq "Success"){
            try {
                $frm_snmp = Invoke-SNMPget $ups_ip $oidTemp, $oidBatload "public"
            } catch {
                Write-Host "$ups_ip SNMP Get error: $_"
                Return null
            }


    # if the data doesn't match record update ups_data
    if([String]::IsNullOrWhiteSpace($frm_snmp.Data)){
         Write-Host "Given string is NULL"
    }else{
        if(($ups_temp -and $battery_load -ne $frm_snmp.Data)) { 
            Write-Output "database update needed"
            Write-Output $ups_ip, $ups_upsname $frm_snmp.Data

            $new_temp = $frm_snmp.Data
            $new_battery_load = $frm_snmp.Data
            $update_con = New-Object System.Data.SqlClient.SqlConnection
            $update_con.ConnectionString = "connection info"
            $update_con.Open()

            $SQLstmt = "update ups_data set temp = '$($new_temp[0])', batteryload = '$($new_battery_load[1])' where ip_address = '$ups_ip'"

            $up_cmd = $update_con.CreateCommand() 
            $up_cmd.CommandText = $SQLstmt
            $up_cmd.ExecuteNonQuery()
            $update_con.Close()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50751144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档