PsExec 与 Get-WinEvent:系统找不到指定的文件

PsExec 与 Get-WinEvent:系统找不到指定的文件

我正在尝试Get-WinEvent使用在远程电脑上运行psexec但出现以下错误:

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.

但是,如果我在另一台电脑上本地运行相同的命令,它运行正常:

PS C:\> Get-WinEvent -?

NAME
    Get-WinEvent

SYNTAX
    Get-WinEvent [[-LogName] <string[]>]...
(etc.)

看来我可以在远程 PC 上运行其他命令,例如systeminfo和,wmic但不能运行任何Get-*命令。

本地和远程 PC 均运行 Windows 10 和 PowerShell 5.1。我尝试psexec在本地 PC 上运行版本 2.2 和 2.33。(奇怪的是,即使使用管理员凭据,版本 2.2 也会给出上述错误,而版本 2.33 也会给出登录失败消息。)

回答:正如罗伯特在下面的评论中指出的那样,psexec用于运行可执行文件,而不是 PowerShell 命令。请参阅下面标记的答案,了解如何使用和Invoke-Command来执行相同的操作PSRemoting

答案1

您不需要psexec远程针对其他计算机运行 PowerShell 命令。确保远程计算机已远程控制启用,然后使用以下命令对远程计算机运行 PowerShell 命令调用命令

启用PSRemoting在远程机器上

Enable-PSRemoting -Force

运行远程 PowerShell 命令

Invoke-Command -Computer pc28 -Scriptblock { Get-WinEvent -? }

支持资源

  • 启用PSRemoting

  • 调用命令

    -ScriptBlock scriptblock

    要运行的命令。

    将命令括在花括号中{ }以创建脚本块。此参数是必需的。

相关内容