使用Bash关闭Windows网络

时间:2017-03-08 21:55:45

标签: linux windows terminal command shutdown

这是我当前的代码,但有效但速度很慢

for i in {1..255..1}; do
  for j in {1..255..1}; do
    ip="10.8.$i.$j"
    sudo net rpc shutdown -I $ip -U Username%Password -t 1 -f
    echo $ip
  done
done

我希望能够通过这些IP并尝试关闭它们。但是,如果该IP上没有PC,则必须等待它超时才能尝试下一个。那么我怎样才能找到并关闭网络上的所有Windows PC? (他们都有相同的凭据)

1 个答案:

答案 0 :(得分:0)

一个简单的解决方案就是并行运行一堆:

for i in {1..255..1}; do
  for j in {1..255..1}; do
    ip="10.8.$i.$j"
    sudo net rpc shutdown -I $ip -U Username%Password -t 1 -f &
    echo $ip
  done
  wait
done

一次运行255个并等待它们全部完成。如果Windows支持,可以通过xargssemparallel实现更智能,更灵活的并行化。