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

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

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

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

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

大概“活动网络”将基于 IP 地址/网关范围或 WIFI 网络名称等。

您有任何推荐的工具可以实现这一点吗?我发现类似的东西适用于许多 IT 专业人士,因此我相信那里有一些很好的建议。

请注意,此功能需要在网络发生变化时才能运行 - 而不仅仅是在用户登录/注销时。

答案1

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

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

我曾经无数次想要这个功能,而且我想有不少人也希望看到它。

答案2

您可以使用任务计划程序

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

以防万一,那里还有针对计算机“挂起”和“恢复”的事件。例如,我使用它们来停止并重新启动这些事件上的 Hamachi,否则我的机器似乎会出现问题。
对于计算机“挂起”,您可以使用日志“Microsoft-Windows-Kernel-Power/Thermal-Operational”,来源“Kernel-Power”,事件 ID 为 42。
对于计算机“恢复”,您可以使用日志“System”,来源“Power-Troubleshooter”,事件 ID 为 1。

对于用户登录/注销,我不知道任务计划程序下的事件(但我相信它们也在那里可用),但您可以在这里配置它:

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

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

答案3

我曾经成功网络概况前。

答案4

这是一种侧面的和部分的答案(甚至没有记录,因为我似乎找不到原始文章),但我很确定 Windows 7 在打印机对象上有一个属性表,允许您根据子网更改默认值。

我也很想看到解决您列表中其余内容的功能。

相关内容