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

-1

Eu não estou familiarizado com scripts. Eu tenho uma tarefa em mãos que requer para verificar o tempo de atividade do servidor para ter certeza se eles foram realmente re-inicializados quando eles supõem.

Eu estava passando pela Pesquisa do Google e encontrei uma ideia de um input.txtarquivo, que contém todos os nomes de servidor e output.txt, que contém o resultado.

A questão é 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?

user196506
fonte
2
Olá ben! Primeiramente bem-vindo ao superusuário! Por favor, confira sua formatação quando você postar. Há uma janela de visualização para mostrar como será sua pergunta. Você precisa verificar nossa ajuda de formatação . Você poderia editar sua pergunta e nos mostrar o que você já tem e onde você está especificamente preso? Não esqueça de recuar o código em 4 espaços (ou selecione-o e pressione Ctrl-K).
slhck

Respostas:

0

Eu fiz algumas mudanças, espero que ajude. O que eu tenho neste momento é um arquivo de lote que eu tentei modificar de acordo com o meu ambiente:

Eu tenho um input.txt contendo uma lista de nomes de meu servidor, onde este loop está pegando nomes de servidores linha após linha. Ao mesmo tempo, estou tentando ter credenciais de login exclusivas no script, assim não precisarei inserir manualmente as credenciais de login para elas. Aqui está o meu roteiro. O problema que estou enfrentando é que as credenciais de logon não estão sendo passadas como valores quando o systeminfo.exe está sendo executado.

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 esse 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á tirando os valores das variáveis ​​na linha cmd systeminfo.

Ben
fonte
0

Isso provavelmente é tarde demais para você, mas deve ser útil para qualquer um que esteja procurando algo similar, 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 cutde unixutilspara limpar o arquivo mais.

Peter van der Struys
fonte