Пакетный файл для получения системной информации о списке удаленных серверов с уникальными учетными данными для входа

Пакетный файл для получения системной информации о списке удаленных серверов с уникальными учетными данными для входа

Я не знаком со скриптингом. У меня есть задача, которая требует проверки времени работы сервера, чтобы убедиться, что они действительно перезагрузились, когда должны были.

Я просматривал поиск 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 . . .  

Я не уверен, почему он не берет значения из переменных в строке cmd systeminfo.

решение2

Для вас это, возможно, уже слишком поздно, но должно быть полезно тем, кто ищет что-то подобное, как это недавно сделал я...

Вы не указываете правильную информацию в командной строке. Также команда systeminfoимеет только время загрузки, а не время работы. Это создало бы пустой файл.

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

Вы можете использовать cutfrom unixutilsдля дополнительной очистки файла.

Связанный контент