windows server 2008 网络丢失脚本

windows server 2008 网络丢失脚本

好的,我们的想法是在发生网络故障时(例如,当网线由于某种原因被拔掉时)运行一个脚本(首选 powershell 或 vbs)。

这可能吗?我猜是的,但怎么做呢?
干杯

答案1

您可以从 .net 应用程序执行此操作,因为有几个钩子可用于在拔下网络电缆时触发它,特别是 Shell 通知,理论上可以通过 Powershell 访问,因为它基于 .net。但问题是,当触发事件时,您的应用程序/脚本需要运行,以捕获事件并执行某些操作。

我猜你想要的只是在网线被移除时调用一个脚本,而不在后台运行任何其他东西。我认为如果没有某个应用程序,这是不可能的,即使它只是一个存根服务,它会运行你的脚本,等待事件发生。

话虽如此,但有人可能有一个我没有想到的巧妙的解决方案。

答案2

您可以在任务计划程序中创建一个任务,该任务将在记录特定事件时触发。如果您能找出网络连接丢失时记录的事件 ID,则可以让该任务运行您的脚本。

答案3

好的,这里有一个简单的 Powershell 代码。请注意,您可以使用 DNS 名称而不是 IP 地址。您可以将 {Write "Working"} 块更改为 {}(不执行任何操作),但它会在一秒钟内 ping 太多次。因此,请在块内使用 Sleep 命令行。将 {write "Failure!"} 脚本块替换为您在发生故障时需要执行的操作。您可以扩展该脚本以按顺序 ping 地址数组,或者您可以设置一些计数器,以便在 ping 失败后而不是第一次失败时抛出您的操作,而是在一堆失败后。您甚至可以使用一些 case 语句对不同的失败主机采取不同的操作。询问您是否需要脚本方面的进一步帮助。

while ((get-WmiObject Win32_PingStatus -filter "Address='192.168.1.1' ").Statuscode -eq 0) {Write "Working"; Sleep 2};{write "Failure!"}

相关内容