论文部分内容阅读
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/dnah/dnah202105/dnah20210502-1-l.jpg)
Netsh+任务计划程序联网定时控制
对于程序联网的定时控制,我们可以借助Netsh命令和任务计划程序来实现。比如现在需要限制孩子每周一到周五的19:00-22:00点都无法玩网络游戏,假设游戏程序是“C:\Program Files\game.exe”。
先启动任务计划程序,新建一个任务,在创建任务窗口中切换到“常规”选项卡,设置任务的名称为“禁止游戏联网”,同时勾选“使用最高权限运行”复选框。接着切换到“触发器”选项卡,新建一个每周一到周五的19:00点开始运行的任务(图1)。
再切换到“操作”选项卡,新建一个启动程序的操作,设置运行的程序为“C:\Windows\System32\netsh.exe”,添加参数为“advfirewall firewall addrule name="noo" dir=out program="C:\ProgramFiles (x86)\game.exe" action=block”(图2)。
命令解释:
这里使用系统自带的Netsh命令为防火墙添加一个名为“noo”的出站规则,限制的程序是“C:\ProgramFiles(x86)\game.exe"(如果限制其他的程序,請自行更改),限制的操作是“阻止连接”(即action=block)。
同上再新建一个取消限制的任务计划,开始时间设置为每周一到周五的22:00点(假设孩子在这个时间段已经入睡)。运行的命令也是netsh.exe,参数为“netsh advfirewall firewall set rulename="noo" new enable=no”,这个命令的作用是将上述出站规则更改为“允许连接”。
这样在每周一到周五的19:00点之后,指定的游戏程序“C:\Program Files (x86)\game.exe”就无法联网使用了(在22:00点则会取消限制,这样不会影响孩子第二天使用电脑)。运行上述任务后依次打开“高级安全Windows Defender防火墙→出站规则”,在右侧的窗格内就可以看到名为“noo”的规则,正是这条出站规则限制游戏程序的联网使用(图3)。
Netsh+任务计划程序联网定时控制
对于程序联网的定时控制,我们可以借助Netsh命令和任务计划程序来实现。比如现在需要限制孩子每周一到周五的19:00-22:00点都无法玩网络游戏,假设游戏程序是“C:\Program Files\game.exe”。
先启动任务计划程序,新建一个任务,在创建任务窗口中切换到“常规”选项卡,设置任务的名称为“禁止游戏联网”,同时勾选“使用最高权限运行”复选框。接着切换到“触发器”选项卡,新建一个每周一到周五的19:00点开始运行的任务(图1)。
再切换到“操作”选项卡,新建一个启动程序的操作,设置运行的程序为“C:\Windows\System32\netsh.exe”,添加参数为“advfirewall firewall addrule name="noo" dir=out program="C:\ProgramFiles (x86)\game.exe" action=block”(图2)。
命令解释:
这里使用系统自带的Netsh命令为防火墙添加一个名为“noo”的出站规则,限制的程序是“C:\ProgramFiles(x86)\game.exe"(如果限制其他的程序,请自行更改),限制的操作是“阻止连接”(即action=block)。
同上再新建一个取消限制的任务计划,开始时间设置为每周一到周五的22:00点(假设孩子在这个时间段已经入睡)。运行的命令也是netsh.exe,参数为“netshadvfirewallfirewallsetrulename="noo"newenable=no”,这个命令的作用是将上述出站规则更改为“允许连接”。
这样在每周一到周五的19:00点之后,指定的游戏程序“C:\Program Files (x86)\game.exe”就无法联网使用了(在22:00点则会取消限制,这样不会影响孩子第二天使用电脑)。运行上述任务后依次打开“高级安全Windows Defender防火墙→出站规则”,在右侧的窗格内就可以看到名为“noo”的规则,正是这条出站规则限制游戏程序的联网使用(图3)。
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/dnah/dnah202105/dnah20210502-2-l.jpg)
Runas+ Netsh程序联网要密码
对于常见程序联网的加密控制,我们则可以通过Runas+Netsh的组合命令实现。比如现在需要设置每次开机后禁止孩子使用Edge上网,如果需要使用则必须输入指定的密码解锁。
首先参照上述任务计划的介绍,新建一个任务计划,触发器为“系统启动时”,图2中的参数代码由“game.exe”改为“Microsoft\Edge\Application\mse d g e.exe”,“noo”改为“ed ge”,其他参数同上,这样每次开机后孩子都无法使用Edge上网(图4)。
接着以管理员身份启动命令提示符,输入“net user administrator /active:yes”并回车(激活内置的Administrator账户),再输入“netuser administrator 123456”并回车,按提示为Administrator账户设置登录密码123456(这里只是举例,实际操作时建议设置好记又复杂的密码)。最后启动记事本程序,输入下列命令并保存为“上网.bat”,放置在桌面备用:
runas/user:administrator"netshadvfirewallfirewallsetrulename="edge"newenable=no"
这样孩子需要使用Edge上网时,家长只要在桌面运行上述批处理,当弹出需要输入密码的提示时,输入上述设置的Administrator账户的登录密码,输入后按回车键就可以解除Edge的上网限制了(图5)。由于孩子没有Administrator账户的登录密码,所以是无法运行“上网.bat”取消上网限制的。
为了方便孩子用完Edge后恢复限制,同上可以在记事本中输入“runas/savecred/user:administrator"netshadvfirewallfirewallsetrulename="edge"newenable=block"”,再新建一个“恢复限制.bat”批处理,这样家长只要运行该批处理即可恢复限制。