【问题标题】:Shutting Down Windows Network Using Bash使用 Bash 关闭 Windows 网络
【发布时间】:2017-07-29 16:31:48
【问题描述】:

这是我当前的代码,可以运行但速度很慢

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? (他们都有相同的凭据)

【问题讨论】:

    标签: linux windows terminal command shutdown


    【解决方案1】:

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

    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 实现更智能、更灵活的并行化。

    【讨论】:

    • 谢谢,效果很好。我只是将等待移到最后一个完成的下方,这样它们就会立即运行。虽然我对更好的解决方案持开放态度,但这在我测试时应该可以工作。
    猜你喜欢
    • 1970-01-01
    • 2017-07-22
    • 2022-01-22
    • 1970-01-01
    • 2013-12-01
    • 2012-03-12
    • 2013-05-06
    • 1970-01-01
    • 2011-10-23
    相关资源
    最近更新 更多