2013-03-18 102 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

相关问题