PsExec v2.43

Por Mark Russinovich

Publicado: 11 de abril de 2023

DownloadDescargar PsTools(5 MB)

Introducción

Las utilidades como Telnet y programas de control remoto, como pcAnywhere de Symantec, permiten ejecutar programas en sistemas remotos, pero pueden ser un problema para configurar y requerir que instale software cliente en los sistemas remotos a los que desea acceder. PsExec es un reemplazo ligero de telnet que le permite ejecutar procesos en otros sistemas, completando la interactividad completa para las aplicaciones de consola, sin tener que instalar manualmente el software cliente. Los usos más eficaces de PsExec incluyen el inicio de avisos de comandos interactivos en sistemas remotos y herramientas de habilitación remota como IpConfig que, de lo contrario, no tienen la capacidad de mostrar información sobre los sistemas remotos.

Nota: Algunos escáneres antivirus informan de que una o varias de las herramientas están infectadas con un virus de "administrador remoto". Ninguna de las PsTools contiene virus, pero han sido utilizadas por virus, por lo que desencadenan notificaciones de virus.

Instalación

Solo tiene que copiar PsExec en la ruta de acceso ejecutable. Al escribir "psexec" se muestra su sintaxis de uso.

Uso de PsExec

Consulte el artículo de Mark sobre el uso avanzado de PsExec en el número de julio de 2004 de Windows IT Pro Magazine.

Uso:

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>][-g n][-a n,n,...][-accepteula][-nobanner] cmd [arguments]
Parámetro Descripción
-a Separar procesadores en los que la aplicación se puede ejecutar con comas, donde 1 es la CPU numerada más baja. Por ejemplo, para ejecutar la aplicación en CPU 2 y CPU 4, escriba: "-a 2,4"
-c Copiar el archivo ejecutable especificado en el sistema remoto para su ejecución. Si omite esta opción, la aplicación debe estar en la ruta de acceso del sistema en el sistema remoto.
-d No esperar a que finalice el proceso (no interactivo).
-e No cargar el perfil de la cuenta especificada.
-f Copiar el programa especificado incluso si el archivo ya existe en el sistema remoto.
-i Ejecutar el programa para que interactúe con el escritorio de la sesión especificada en el sistema remoto. Si no se especifica ninguna sesión, el proceso se ejecuta en la sesión de consola. Esta marca es necesaria al intentar ejecutar aplicaciones de consola de forma interactiva (con E/S estándar redirigido).
-h Si el sistema de destino es Vista o superior, hace que el proceso se ejecute con los tokens elevados de la cuenta, si están disponibles.
-l Ejecutar el proceso como usuario limitado (quita el grupo Administradores y solo permite privilegios asignados al grupo Usuarios). En Windows Vista, el proceso se ejecuta con integridad baja.
-n Especifica el tiempo de espera en segundos para conectarse a equipos remotos.
-p Especifica una contraseña opcional para el nombre de usuario. Si se omite, se le pedirá que introduzca una contraseña oculta.
-r Especifica el nombre del servicio remoto con el que se va a crear o interactuar.
-s Ejecute el proceso remoto en la cuenta del sistema.
-u Especifica un nombre de usuario opcional para el inicio de sesión en el equipo remoto.
-v Copiar el archivo especificado solo si tiene un número de versión superior o es más reciente que el del sistema remoto.
-w Establecer el directorio de trabajo del proceso (relativo al equipo remoto).
-x Mostrar la interfaz de usuario en el escritorio seguro de Winlogon (solo sistema local).
-priority Especifica -low, -belownormal, -abovenormal, -high o -realtime para ejecutar el proceso con una prioridad diferente. Use -background para ejecutar con poca memoria y prioridad de E/S en Vista.
computer Direct PsExec para ejecutar la aplicación en el equipo remoto o en los equipos especificados. Si omite el nombre del equipo, PsExec ejecuta la aplicación en el sistema local y, si especifica un carácter comodín (\\*), PsExec ejecuta el comando en todos los equipos del dominio actual.
@file PsExec ejecutará el comando en cada uno de los equipos enumerados en el archivo.
cmd Nombre de la aplicación que se va a ejecutar.
arguments Argumentos que se van a pasar (tenga en cuenta que las rutas de acceso de archivo deben ser rutas de acceso absolutas en el sistema de destino).
-accepteula Esta marca suprime la presentación del cuadro de diálogo de licencia.
-nobanner Esta marca suprime el banner de inicio y el mensaje de copyright.

Puede poner entre comillas las aplicaciones que tengan espacios en su nombre, por ejemplo,

psexec \\marklap "c:\\long name app.exe"

La entrada solo se pasa al sistema remoto al presionar la tecla Entrar. Al escribir Ctrl-C, finaliza el proceso remoto.

Si omite un nombre de usuario, el proceso se ejecutará en el contexto de la cuenta en el sistema remoto, pero no tendrá acceso a los recursos de red (porque se suplanta). Especifique un nombre de usuario válido en la sintaxis de Domain\User si el proceso remoto requiere acceso a recursos de red o ejecutarse en una cuenta diferente. Tenga en cuenta que la contraseña y el comando se cifran en tránsito al sistema remoto.

Los códigos de error devueltos por PsExec son específicos de las aplicaciones que ejecuta, no PsExec.

Ejemplos

En este artículo que escribí se describe cómo funciona PsExec y se proporcionan sugerencias sobre cómo usarlo:

El siguiente comando inicia un símbolo del sistema interactivo en \\marklap:

psexec -i \\marklap cmd

Este comando ejecuta IpConfig en el sistema remoto con el conmutador de /all y muestra la salida resultante localmente:

psexec -i \\marklap ipconfig /all

Este comando copia el programa test.exe en el sistema remoto y lo ejecuta de forma interactiva:

psexec -i \\marklap -c test.exe

Especifique la ruta de acceso completa a un programa que ya está instalado en un sistema remoto si no está en la ruta de acceso del sistema:

psexec -i \\marklap c:\bin\test.exe

Ejecute Regedit de forma interactiva en la cuenta del sistema para ver el contenido de las claves SAM y SECURITY::

psexec -i -d -s c:\windows\regedit.exe

Para ejecutar Internet Explorer como con privilegios de usuario limitado, use este comando:

psexec -l -d "c:\program files\internet explorer\iexplore.exe"

DownloadDescargar PsTools(5 MB)

PSTools

PsExec es parte de un creciente kit de herramientas de línea de comandos de Sysinternals que ayudan en la administración de sistemas locales y remotos llamado PsTools.

Se ejecuta en:

  • Cliente: Windows 8.1 y versiones posteriores.
  • Servidor: Windows Server 2012 y versiones posteriores.