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

Похоже, что я могу выполнить другие команды на удаленном ПК, такие как systeminfoи , wmicно ни одну из Get-*команд.

Локальный и удаленный ПК работают под управлением Windows 10 и PowerShell 5.1. Я пробовал запускать psexecверсии 2.2 и 2.33 на локальном ПК. (Любопытно, что версия 2.2 выдает указанную выше ошибку, а версия 2.33 выдает сообщение об ошибке входа в систему даже с учетными данными администратора.)

ОТВЕЧАТЬ: Как Роберт указал в комментариях ниже, psexecэто для запуска исполняемых файлов, а не команд PowerShell. Смотрите отмеченный ответ ниже, чтобы узнать, как сделать то же самое, но с помощью Invoke-Commandи PSRemotingвместо этого.

решение1

Вам не нужно psexecзапускать команды PowerShell удаленно на других машинах. Убедитесь, что на удаленной машине естьPSУдалённое управлениевключен, а затем запустите команды PowerShell на удаленной машине, используяinvoke-команда.

Включить-PSRemotingна удаленной машине

Enable-PSRemoting -Force

Выполнение удаленных команд PowerShell

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

Поддерживающие ресурсы

  • Включить-PSRemoting

  • Вызов-Команды

    -ScriptBlock scriptblock

    Команды для запуска.

    Заключите команды в фигурные скобки { }, чтобы создать блок скрипта. Этот параметр является обязательным.

Связанный контент