当我的网络连接发生变化时,如何运行脚本?

Mic*_*ren 11 networking scripting windows-xp

我想创建一个脚本来在网络连接发生变化时做各种事情。例如,如果机器连接到我的办公网络,我可能希望它:

  • 自己静音
  • 更改其 DNS
  • 更改其代理设置
  • 更改默认打印机

然后,当机器脱离办公网络时,它可能会恢复其中的一些。

据推测,“活动网络”将基于 IP 地址/网关范围或 WIFI 网络名称等。

你有什么推荐的工具来完成这个吗?我可以看到这样的事情适用于许多 IT 专业人士,所以我相信那里有一些很好的技巧。

请注意,这需要在网络发生变化时起作用——而不仅仅是在用户登录/注销时。

Rol*_*kas 11

您可以使用Task Scheduler执行此操作:

  1. 右键单击“任务计划程序库”
  2. 点击“创建任务”
  3. 对于“名称:”字段,请写下您的新任务的名称。
  4. 检查“安全选项”区域是否有您想要的复选框。
  5. 在“触发器”选项卡下单击“新建...”
  6. 选择“开始任务:”=>“在一个事件中”
  7. 选择“日志:”=>“Microsoft-Windows-NetworkProfile/Operational”
  8. 选择“来源:”=>“网络配置文件”
  9. 写入“事件 ID:”=> 10000
  10. 确定这个对话框。
  11. 在“操作”选项卡下单击“新建...”
  12. 选择“操作:”=>“启动程序”
  13. 对于“程序/脚本:”,浏览到您最喜欢的脚本文件。
  14. 确定这个对话框。
  15. 根据您的喜好设置有关“空闲”、“交流电源”等条件的“条件”选项卡。
  16. 还可以在“设置”选项卡下进行设置。
  17. OK,到这里就全部搞定了。
  18. 测试新事件。

以防万一,那里还有计算机“暂停”和“恢复”可用的事件。例如,我使用它们在这些事件上停止和重新启动 Hamachi,否则它似乎在我的机器上有问题。
对于计算机“Suspend”,您可以使用日志“Microsoft-Windows-Kernel-Power/Thermal-Operational”,源“Kernel-Power”,事件 ID 为 42。
对于计算机“恢复”,您可以使用日志“系统”,源“电源故障排除程序”,事件 ID 为 1。

对于用户登录/注销,我不知道 Task Scheduler 下的事件(但我相信它们在那里也可用),但是您可以在此处进行配置:

  1. 启动gpedit.msc
  2. 打开“用户配置”
  3. 打开“Windows 设置”
  4. 单击“脚本(登录/注销)”
  5. 在右侧窗格中,您可以为“登录”和“注销”事件分配脚本。请注意,如果您分配多个脚本,则不要假设它们是同步运行的。他们可能不会。对于这种情况,请改用单个脚本,按顺序调用其他脚本。我没有检查这些脚本在哪个帐户下运行 - 是用户还是系统?

您可以对同一窗口中“计算机配置”文件夹下的计算机“启动”和“关机”事件执行类似的操作。在用户登录之前,启动脚本在系统帐户下运行。


Eva*_*son 2

Windows XP(和 2000?我不记得了...)中的“网络位置感知”服务 ( http://msdn.microsoft.com/en-us/library/ms739931(VS.85).aspx ) 和up 将启用此功能,但我还没有发现有人编写了应用程序来利用它。我很想自己编写一些代码,但我没有足够的空闲时间来开始考虑它。

这不是一个简单的 VBScript 小事情,但也不是那么多的编码。也许有人可以接受这个想法并付诸实践。甚至在http://www.microsoft.com/downloads/details.aspx?familyid=ef8a6228-f11d-4ba0-b73e-dd8dc7dd11e8&displaylang=en上还有示例代码。

我已经无数次想要这个功能了,而且我想有不少人愿意看到它。