2017-03-08 27 views
0

這裏是我當前的代碼,它的作品,但速度很慢關閉Windows網絡使用bash

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支持,可以通過xargssemparallel更智能且更靈活的並行化。

+0

謝謝,這工作得很好。我只是等待最後一次完成,所以他們都會一次運行。儘管我對更好的解決方案持開放態度,但我應該在測試時使用。 – will