ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

PowerShell 脚本实现登录光猫,并触发重启,解决政企网关长期开机死机导致的不能上网问题

2022-07-29 13:02:02  阅读:325  来源: 互联网

标签:网关 FiberHome Session 死机 重启 插座 定时 PowerShell 政企


问题由来:

中国电信的政企网关,型号MSG2100E-UPON-4V-G,4路千兆网口,4个电话口,1个GPON光口

这个光猫过3周左右就会出现一次不能上网,需要断电重启设备才能解决。

找遍所有后台配置界面,没有找到能设置定时重启的地方,但后台有个手动点击的重启按钮。

方案分析:

外接个智能插座应该可以解决定时重启的问题,可是本着折腾的习惯,尝试找其他方案。鉴于设备后台管理的设备管理页面,有个重启的按钮可以点击,所以只要用程序实现模拟登录,点这个按钮就可以实现重启了,然后把程序放到公司内网服务器上,定时运行下就可以。鉴于Python+selenium已经使用过,开发过一个自动开发票程序,不想再重复。所以选择PowerShell方案。

 
方案 优点 缺点
智能插座

简单粗暴

需要硬件,有成本。

断电时,亦断网,此时无法查看状态或者控制;

插座要能记忆断电前的状态,即插座本身停电再来电要是打开状态。

插座要能够做本地定时,网络定时会存在问题。

Python+selenium

只要人能操作的,代码就能实现。

各个控件搜索定位方便。

操作过程可见。

代码重,有驱动,还要和Chrome版本配套。
PowerShell

代码量很少。

Windows都自带环境。Linux也可实现。

操作过程不可见。要有点web应用基础才好。

PowerShell实现:

 以下内容存为FiberHome.ps1, 然后在PowerShell 5.x环境运行,输入: ./FiberHome.ps1, 回车执行:

echo "Login FiberHome and reset device....."
$LoginBody = @{
    username2='useradmin'
    psd2= ''
    username1= ''
    psd1= ''
    loginSelinit=0
    csrfmiddlewaretoken='Kadfbyj7CD2did7JKadsP1P3qafsdmkPt' #换成你自己的
    username3='telecomadmin'
    psd3='nE7jA%5m'
    username='telecomadmin'
    psd='nE7jA%5m'
}
$LoginResponse = Invoke-WebRequest 'http://192.168.1.1/boaform/admin/formLogin' -SessionVariable 'Session' -Body $LoginBody -Method 'POST'
echo "Login Session----------------------------------------------"
$Session

$ResetBody = @{
    'submit-url' = '/mgm_dev_reboot.asp'    # key name with dash must quoted by '
}
$ResetResponse = Invoke-WebRequest 'http://192.168.1.1/boaform/admin/formReboot' -SessionVariable 'Session' -Body $ResetBody -Method 'POST'
echo "Reset FiberHome device Response------------------------------"
Write-Output "Status Code : $($ResetResponse.StatusCode)"

执行代码的电脑应该和网关在同一个子网,代码中用到的IP如果和你的设置不一致,应改成你的。

标签:网关,FiberHome,Session,死机,重启,插座,定时,PowerShell,政企
来源: https://www.cnblogs.com/jopny/p/16531823.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有