批处理文件,用于使用唯一登录凭据获取远程服务器列表的系统信息

批处理文件,用于使用唯一登录凭据获取远程服务器列表的系统信息

我不熟悉脚本。我手头有一项任务需要检查服务器的正常运行时间,以确保它们是否在应该重新启动时重新启动。

我正在进行 Google 搜索并发现了一个input.txt文件,其中包含所有服务器名称和output.txt包含结果。

问题是每个服务器都有一个唯一的通用登录名。例如登录名为domain\server1,密码为server1domain。我的输入文件如下:

domain\server1, server1domain
domain\server2, server2domain
domain\sevrer3, server3domain

我想要使​​用serverinfo /s | find "uptime" >>c:\output.txt,并且output.txt我想要成为:

domain\server1      uptime   <uptime of server>
domain\server2      uptime   <uptime of server>
domain\server3      uptime   <uptime of server>

依此类推,直到文件结束input.txt

有人可以创建一个非常基本的批处理文件吗?

答案1

我做了一些更改,希望会有所帮助。此时我有一个批处理文件,我尝试根据我的环境对其进行修改:

我有一个 input.txt 文件,其中包含我的服务器名称列表,其中此循环逐行拾取服务器名称。同时,我尝试在脚本中使用唯一的登录凭据,这样我就不必手动输入登录凭据。这是我的脚本。我面临的问题是,当 systeminfo.exe 执行时,登录凭据不会作为值传递。

for /f "delims=" %%a in (c:\Uptime\Input.txt) do (  
    echo %%a  
    set x=yellow  
    set login=%x%%%a  
    set pwd=%%a%x%  
    echo %login% pwd %pwd%  
    systeminfo /s %%a /u %login% /p %pwd% | find "System Up Time" >> c:\Uptime\A.txt  
    pause  
)  

当我执行该批处理文件时,我得到以下信息:

C:\Uptime>(  
echo Server1  
 set x=yellow  
 set login=Server1 <- it should be: yellowServer1  
 set pwd=Server1  <- it should be: Server1yellow  
 echo  pwd <- not showing the values of variables from above, should be: yellowServer1 Server1yellow  
 systeminfo /s Server1 /u  /p    | find "System Up Time"  1>>c:\Uptime\A.txt  
 pause  
)  
Server1  
 pwd  
ERROR: Invalid Syntax. Value expected for '/u'.  
Type "SYSTEMINFO /?" for usage.  
Press any key to continue . . .  

我不确定为什么它没有从 systeminfo 命令行中的变量中获取值。

答案2

这对你来说可能太晚了,但对于其他正在寻找类似东西的人来说应该有用,因为我最近……

您没有在命令行中指定正确的信息。此外,该systeminfo命令只有启动时间,没有启动时间。这会创建一个空文件。

systeminfo /s Server1 /u %login%  /p %pwd%   | find "System Boot Time"  >> c:\Uptime\A.txt

您可以使用cutfromunixutils来进一步清理文件。

相关内容