2013-03-18 80 views
0

我想製作一個批處理腳本,用於更改Windows XP上某個接口的IP。這是可能通過netsh實用程序:確保DHCP服務已批量準備就緒

netsh interface ip set address name="Local Area Connection 2" static 10.0.2.2 255.255.255.0 none 

然而,netsh實用程序要求啓用dhcp服務,即使我們設置一個靜態地址。

腳本本身並非由用戶運行,而是在系統啓動時自動運行,並且不能保證dhcp服務已準備就緒。

當我嘗試調用sc start dhcp,系統會立即返回輸出,即使該服務還沒有準備好(調用netsh命令後會導致Failed to configure the DHCP service. The interfrace may be disconnected)。

當我在啓動服務和運行netsh命令之間等待30秒時,一切正常。然而,等待並不是處理這種情況的正確方法。

任何想法?

回答

1

wmicsc可以顯示服務的運行狀態。請參閱this answer

別的東西記:

測試時,它發生,我認爲net start將阻塞,直到完成,而sc start是非阻塞的。是否可以使用net而不是sc

+0

'wmic'和'sc'返回的狀態不正確。它在啓動服務後第二秒返回「RUNNING」,但服務仍然不可用。 – iTayb 2013-03-18 16:22:41

+0

@iTayb - 廢話。我以前很怕那個。但我偶然發現了一些可能會讓你感興趣的東西。我編輯了我的答案。 – rojo 2013-03-18 16:41:42

+0

謝謝。 「網絡啓動」會阻止,直到服務準備就緒。 – iTayb 2013-03-18 20:18:09