正在尝试从本地计算机(而不是服务器)运行批处理文件,以便在域中的每台计算机上执行



这是我第一次在这里发帖,所以我为任何错误提前道歉。

我正在尝试创建一个批处理文件,该文件可以从本地计算机运行到域中的每台计算机。我们有一个定期决定不在用户电脑上运行的程序,我们的临时解决方案是从本地手动运行一行代码来启动它。代码如下:

sc \(user's computer name) start mtappmanager

为了简单起见,我创建了以下批处理文件,这使得代码的运行速度更快:

@ECHO OFF
echo.
SET /P cname=Enter computer number:
sc \%cname% start mtappmanager
echo.
echo.
echo *** Ask the user to try now.
echo.
echo.
pause

不幸的是,用户仍然需要打电话给我们才能运行它,所以我希望它能自动运行,而无需用户(或我们(干预。

我们的计算机遵循C(4位数字(或L(4位号码(的简单编号格式,因此它们将显示为C1214或L0657。重要的是,计算机的"数字"恰好有4位数字,如果必要,需要适当的0数字作为前缀。为已经在运行该程序的计算机运行代码不会造成损坏,所以我希望有一种方法在连接的每台计算机上运行该程序,并可能将其设置为在定时循环中运行。(例如300秒(我最初尝试了一个顺序编号序列,但我不知道如何在代码中输入它,也不知道如何确保4位数的编号序列。

有什么建议吗?提前感谢您的帮助!

如果您在域中有一个计算机列表,您可以简单地使用一个循环。

FOR /F "delims=" %%c IN ('TYPE "C:Usersmecomputerlist.txt"') DO (
SC \%%~c START mtappmanager
)

如果你打算每300秒运行一次,我怀疑你是否想让用户每次都再试一次。

为了更进一步,使用PowerShell会很有帮助。这将允许您查询AD域中的计算机列表,测试它们是否可用,测试服务是否已在运行,在需要时启动服务,并向用户发送电子邮件。

相关内容

最新更新