2017-03-08 8 views
0

を使用したWindowsのネットワークをシャットダウンすると、ここでは動作しますが、バッシュ

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がない場合は、次のIPを試行する前にタイムアウトするのを待たなければなりません。どうすればネットワーク上のすべてのWindows PCを見つけてシャットダウンできますか? (それらはすべてが同じ資格情報を持っている)

答えて

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の場合は、よりスマートで柔軟な並列化をxargs,semまたはparallelにすることができます。

+0

ありがとうございました。これはうまくいきました。私はちょうど一気に動くように最後の出来事の下で待っていました。私はこれをテストするとうまくいくはずです。 – will