Arquivo em lote para obter informações do sistema da lista de servidores remotos com credenciais de login exclusivas

Arquivo em lote para obter informações do sistema da lista de servidores remotos com credenciais de login exclusivas

Não estou familiarizado com scripts. Tenho uma tarefa em mãos que exige verificar o tempo de atividade do servidor para ter certeza de que eles foram realmente reinicializados quando deveriam.

Eu estava pesquisando no Google e encontrei uma ideia de um input.txtarquivo, que contém todos os nomes de servidores e output.txt, que contém o resultado.

O problema é que cada servidor possui um login geral exclusivo. por exemplo, o nome de login é domain\server1, a senha é server1domain. Meu arquivo de entrada é como:

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

Eu gostaria de usar serverinfo /s | find "uptime" >>c:\output.txte output.txtgostaria de ser:

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

e assim por diante até o final do input.txtarquivo.

Alguém poderia criar um arquivo em lote muito básico?

Responder1

Fiz algumas alterações, espero que ajude. O que tenho neste momento é um arquivo em lote que tentei modificar de acordo com meu ambiente:

Eu tenho um input.txt contendo uma lista dos nomes dos meus servidores, onde esse loop coleta nomes de servidores linha após linha. Ao mesmo tempo, estou tentando ter credenciais de login exclusivas dentro do script, dessa forma não terei que inserir manualmente as credenciais de login para eles. Aqui está meu roteiro. O problema que estou enfrentando é que as credenciais de login não estão sendo passadas como valores quando o systeminfo.exe está em execução.

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  
)  

Quando executo este arquivo em lote, recebo o seguinte:

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 . . .  

Não sei por que não está obtendo os valores das variáveis ​​na linha systeminfo cmd.

Responder2

Provavelmente é tarde demais para você, mas deve ser útil para qualquer pessoa que esteja procurando algo semelhante, como eu estava recentemente...

Você não está especificando as informações corretas em sua linha de comando. Além disso, o systeminfocomando tem apenas um tempo de inicialização, não um tempo de atividade. Isso criaria um arquivo vazio.

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

Você pode usar cutfrom unixutilspara limpar mais o arquivo.

informação relacionada