No se puede usar PStool para más de 7 PC a través de una red LAN

0

A continuación se muestra el comando de archivo por lotes que estoy utilizando actualmente para apagar las computadoras remotas a través de la red LAN.

Esto es lo que hace.

  1. He especificado la dirección IP de las computadoras remotas en un archivo de texto llamado list.txt
  2. He añadido una IP como 0.0.0.0 en la parte inferior de todas las direcciones IP remotas de la computadora.
  3. El siguiente archivo por lotes comprobará si las computadoras están disponibles a través de LAN.
  4. Si la computadora está disponible, apagará la PC remota, de lo contrario pasará a la siguiente IP.
  5. Cuando el archivo por lotes lee 0.0.0.0 por fin se apagará automáticamente la computadora maestra.

Mi problema es que no puedo ejecutar este lote para más de 7 computadoras remotas. Si agrego más de 7 IP de PC remotas en list.txt El archivo por lotes se bloquea y la acción no se completa. Por favor, avíseme si cometí algún error en el código o cómo puedo solucionar este problema.

Quiero ejecutar este archivo por lotes para un mínimo de 12 PC remotas

@echo off
setlocal enableextensions enabledelayedexpansion
for /f %%a in (C:\Users\calcopm\Desktop\list.txt) do (
SET IP =%%a
SET C=0
IF %%a equ 0.0.0.0 (
shutdown /s
) ELSE (
ping -n 1 %%a | find "TTL=" >NUL: && SET C=1
IF !C! equ 1 (
psshutdown \\%%a
) else (
ECHO REMOTE %%a IS NOT REACHABLE
)
)
)
Dragonborn
fuente

Respuestas:

0

La introducción de un temporizador de demora entre la verificación de un equipo y el estado de otra máquina resolvería el problema.

Esperanza, encontrar el estado de la máquina en línea y pasar el comando de apagado puede ejecutarse en una fracción de segundo y saltar a la siguiente máquina en un período más corto puede causar el problema. Por lo tanto, le sugerimos que introduzca la demora de tiempo en el IF & amp; ELSE hace un bucle y continúa.

vembutech
fuente
Hola amigo, entiendo su punto. Voy a usar el comando "timeout" sobre el ping para crear un tiempo de espera de ping entre dos PC. Lo único que necesito saber es el tiempo mínimo requerido entre el ping de dos PC. ¿Es 1 segundo suficiente?
Dragonborn
Le sugiero que aplique algunos segundos y verifique si funciona o no. Puede depender del alcance de la máquina.
vembutech
He intentado usar el retardo de tiempo de 1 a 10 segundos de cualquier forma que pueda, pero sigue siendo el mismo problema.
Dragonborn
0

Cambié mi script como se muestra a continuación y convertí de BAT a EXE usando una aplicación

@echo off
setlocal enableextensions enabledelayedexpansion
for /f %%a in (C:\Users\calcopm\Desktop\list.txt) do (
IF %%a equ 0.0.0.0 (
shutdown /s
) ELSE (
ping -n 1 -w 100
IF errorlevel 1 (
ECHO REMOTE %%a IS NOT REACHABLE
) else (
psshutdown \\%%a
)
)
)

Todavía me enfrentaba al mismo problema. Cuando estaba ejecutando los scripts usando el archivo exe (convertido usando BAT a EXE), lo ejecuté usando el archivo BAT estaba bien. Luego me di cuenta de que el convertidor de BAt a EXE tenía algunos problemas que estaban afectando la entrada del archivo EXE.

Luego convertí BAt a EXE con una aplicación diferente y funcionó como un encantamiento.

Resolví el problema ATLAST !!!!!!!!!!!!! ¡¡¡¡¡Uf!!!!!

Dragonborn
fuente