如何在 Windows 中界面状态改变时运行脚本?

如何在 Windows 中界面状态改变时运行脚本?

我基本上想根据我连接的网络名称和类型关闭/启动一些服务,所以甚至更好运行脚本当自动检测到网络时有可能吗?谢谢。

答案1

可能已经有一些工具了,但是你可以通过一些工作来开发自己的工具。

请参阅有关使用 WMI 事件的以下链接:http://trevorsullivan.net/2009/11/16/powershell-getting-started-with-wmi-events/

基本上,您需要编写一个 powershell 脚本或 c# 程序来监听 WMI 事件,这些事件可能是 dhcp 租约续订或连接上线之类的事件。但是,如果它不是 dhcp 租约事件(听起来不是),您就必须对您想要的特定事件进行更多挖掘。然后,当该事件发生时,您的脚本可以做任何您想做的事情 - 例如启动服务等。

这个链接应该会给你提供一些方向,让你继续寻找,或者放弃,因为这有点痛苦。

您可能希望在 wbemtest 中使用类似这样的查询来深入了解并查看您感兴趣的事件(如文章所述)。然后,一旦您对查询感到满意,您就可以在 powershell 中执行必要的 register-wmi 事件操作。

SELECT * FROM __InstanceModificationEvent WITHIN 3 WHERE TargetInstance ISA 'Win32_NetworkAdapterConfiguration'

答案2

您还可以使用 Windows 任务计划程序来监听 WMI 事件。

答案3

这听起来像是网络位置感知服务尝试解决。我敢打赌,PowerShell 可以用来使用任何现有的 .NET 管道来监听 NLA 服务事件。

答案4

您可以使用 CommandLineEventConsumer 或 ActiveScriptEventConsumer 设置永久 WMI 事件消费者。

http://msdn.microsoft.com/en-us/library/aa384749(v=VS.85).aspx- 活动脚本事件消费者

http://msdn.microsoft.com/en-us/library/aa393249(v=VS.85).aspx- 命令行事件消费者

干杯

相关内容