
No estoy familiarizado con las secuencias de comandos. Tengo una tarea entre manos que requiere verificar los tiempos de actividad del servidor para asegurarme de si realmente se reiniciaron cuando se supone que deben hacerlo.
Estaba revisando la Búsqueda de Google y encontré una idea de un input.txt
archivo que contiene todos los nombres de los servidores y output.txt
que contiene el resultado.
El problema es que cada servidor tiene un inicio de sesión general único. Por ejemplo, el nombre de inicio de sesión es domain\server1
y la contraseña es server1domain
. Mi archivo de entrada es como:
domain\server1, server1domain
domain\server2, server2domain
domain\sevrer3, server3domain
Me gustaría usar serverinfo /s | find "uptime" >>c:\output.txt
y output.txt
me gustaría ser:
domain\server1 uptime <uptime of server>
domain\server2 uptime <uptime of server>
domain\server3 uptime <uptime of server>
y así sucesivamente hasta el final del input.txt
archivo.
¿Alguien podría crear un archivo por lotes muy básico?
Respuesta1
He hecho algunos cambios, espero que ayude. Lo que tengo en este momento es un archivo por lotes que intenté modificar según mi entorno:
Tengo un input.txt que contiene una lista de los nombres de mis servidores, donde este bucle recoge los nombres de los servidores línea tras línea. Al mismo tiempo, estoy intentando tener credenciales de inicio de sesión únicas dentro del script, de esta manera no tendré que ingresar manualmente las credenciales de inicio de sesión. Aquí está mi guión. El problema al que me enfrento es que las credenciales de inicio de sesión no se pasan como valores cuando se ejecuta 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
)
Cuando ejecuto este archivo por lotes, obtengo lo siguiente:
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 . . .
No estoy seguro de por qué no toma los valores de las variables en la línea cmd de información del sistema.
Respuesta2
Probablemente sea demasiado tarde para usted, pero debería ser útil para cualquiera que busque algo similar, como lo hice yo recientemente...
No estás especificando la información correcta en tu línea de comando. Además, el systeminfo
comando solo tiene un tiempo de inicio, no un tiempo de actividad. Eso crearía un archivo vacío.
systeminfo /s Server1 /u %login% /p %pwd% | find "System Boot Time" >> c:\Uptime\A.txt
Puede utilizar cut
from unixutils
para limpiar más el archivo.