PsExec trata la segunda computadora remota en la lista como un nombre de programa

PsExec trata la segunda computadora remota en la lista como un nombre de programa

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 psexecdocumentació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"

psexecLuego 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.

información relacionada