
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.txt
arquivo, 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.txt
e output.txt
gostaria 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.txt
arquivo.
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 systeminfo
comando 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 cut
from unixutils
para limpar mais o arquivo.