Estoy intentando ejecutar Get-WinEvent
en una PC remota psexec
pero aparece el siguiente error:
PS C:\> psexec \\pc28 Get-WinEvent -?
Starting Get-EventLog on pc28...
PsExec could not start Get-EventLog on pc28:
The system cannot find the file specified.
Sin embargo, si ejecuto el mismo comando localmente en la otra PC, funciona bien:
PS C:\> Get-WinEvent -?
NAME
Get-WinEvent
SYNTAX
Get-WinEvent [[-LogName] <string[]>]...
(etc.)
Parece que puedo ejecutar otros comandos en la PC remota como systeminfo
y wmic
pero ninguno de los Get-*
comandos.
Tanto la PC local como la remota ejecutan Windows 10 y PowerShell 5.1. Intenté ejecutar psexec
las versiones 2.2 y 2.33 en la PC local. (Curiosamente, la versión 2.2 muestra el error anterior, mientras que la versión 2.33 muestra un mensaje de error de inicio de sesión incluso con credenciales de administrador).
RESPUESTA: Como Robert señaló en los comentarios a continuación, psexec
es para ejecutar ejecutables, no comandos de PowerShell. Consulte la respuesta marcada a continuación para saber cómo hacer lo mismo pero con Invoke-Command
y PSRemoting
en su lugar.
Respuesta1
No es necesario psexec
ejecutar comandos de PowerShell de forma remota en otras máquinas. Asegúrese de que la máquina remota tengaPSRemotohabilitado y luego ejecute los comandos de PowerShell en la máquina remota usandocomando de invocación.
Habilitar-PSRemotingen máquina remota
Enable-PSRemoting -Force
Ejecutar comandos remotos de PowerShell
Invoke-Command -Computer pc28 -Scriptblock { Get-WinEvent -? }
Recursos de apoyo
-
-ScriptBlock scriptblock
Los comandos a ejecutar.
Escriba los comandos entre llaves
{ }
para crear un bloque de secuencia de comandos. Este parámetro es obligatorio.