PsExec se comporta de manera muy extraña cuando se ejecuta en un servidor específico
Cuando uso PsExec para ejecutar un programa en varias máquinas remotas, en la mayoría de los casos, funciona perfectamente bien. Cuando ejecuto el mismo comando en una máquina específica, trata el segundo servidor proporcionado en la lista separada por comas como si fuera el nombre de un programa.
Aquí está mi llamada a los servidores remotos:
psexec \\server11111,server11112 /accepteula -u "Domain\User" -p "password" -i 2 -d cmd.exe /c "wmic bios getsmbiosbiosversion"
Y aquí está el resultado:
PsExec v2.11 - Execute processes remotely
Copyright (C) 2001-2014 Mark Russinovich
Sysinternals - www.sysinternals.com
PsExec could not start server11112 on server11111:
The system cannot find the file specified
Este comando funciona bien cuando lo ejecuto en mi máquina de desarrollo. Sin embargo, cuando ejecuto el mismo comando desde un servidor que ejecuta Windows 2012, falla y obtengo el resultado anterior.
Respuesta1
Para ampliarPatricio'srespuesta, en lugar de enumerar servidores con el \\computer[,computer2[,...]
formato, puede utilizar una lista de computadoras de un archivo de texto.
De la psexec
documentación (a través de psexec /?
):
Usage: psexec [\\computer[,computer2[,...] | @file]][-u user [-p psswd][-n s][-r servicename][-h][-l][-s|-e][-x][-i [session]][-c [-f|-v]][-w directory][-d][-<priority>][-a n,n,...] cmd [arguments]
@file PsExec will execute the command on each of the computers listed
in the file.
Es decir, puede crear un archivo de texto (por ejemplo computers.txt
) en el directorio desde el que está trabajando lleno de nombres de computadoras:
computer
computer2
computer3
Entonces puedes usar el comando:
psexec @computers.txt /accepteula -u "Domain\User" -p "password" -i 2 -d cmd.exe /c "wmic bios getsmbiosbiosversion"
psexec
Luego ejecutará el comando en cada computadora en el orden especificado en computers.txt
.
Respuesta2
Llame a una lista que no sea desde la línea de comando:
psexec @ListOfServers /accepteula -u "Domain\User" -p "password" -i 2 -d cmd.exe /c "wmic bios getsmbiosbiosversion"
Respuesta3
Quizás tengas un carácter que no se muestra después de la coma. me sale exactamente lo mismo
PsExec no pudo iniciar <servidor2> en <servidor1>:
error si tengo un espacio después de la coma.