PSExec «не удается найти указанный файл» на локальной машине

PSExec «не удается найти указанный файл» на локальной машине

Как вы можете видеть на снимке экрана ниже, C:\Windows\system32\cmd.exeсуществует (так как сама командная строка использует этот путь), и я пытаюсь сослаться на него как с помощью короткого имени cmd.exe, так и с помощью полного пути, но оба варианта приводят к одной и той же ошибке от PsExec.exe:

The system cannot find the specified file.

Пользователь сетевой службы существует; если я неправильно ввожу пароль, то получаю запрос на ввод пароля и сообщение о том, что указанное имя пользователя и пароль не существуют.

Я получаю это сообщение об ошибке на нескольких компьютерах, но оно работает на других; с Windows Server 2008 R2 и 2012 R2. Я использую последнюю версию PsExec.exe, которая в настоящее время 2.11, и запускаю командную строку, которую я использую для запуска PsExec, как администратор, поэтому у него должны быть все необходимые разрешения.

Я нашел много сообщений о том, что эта проблема возникает при запуске PsExec на удаленной машине, но ни одного сообщения о ней не было на локальной машине, что я и делаю.

Есть идеи, в чем проблема?

введите описание изображения здесь

решение1

Исправление в конечном итоге заключалось в том, чтобы НЕ запускать командную строку, из которой я запускал PsExec от имени администратора. Если я запускаю команду из командной строки cmd, запущенной от имени администратора, я получаю ошибку. Если я запускаю ее из командной строки без повышенных прав, она работает нормально.

решение2

Другая причина, по которой это может произойти, — это остановка или отключение служб LanmanServer (сервер) или LanmanWorkstation (рабочая станция).

Для работы PsExec все это необходимо.

решение3

Я также обнаружил, что если я копирую PSExec в другой каталог (и каталог Sysinternals не находится в PATH) и пытаюсь запустить его оттуда, он даст сбой, как указано выше. Если я запускаю PSExec в каталоге Sysinternals, то опция -s сработает.

Итак, еще один пункт, который следует проверить, — это убедиться, что папка Sysinternals находится в пути или что PSExec запускается из этого каталога.

Судя по всему, нужен еще один исполняемый файл Sysinternals...

решение4

Для меня это решилось выполнением команды «psexec» из стандартного расположения cmd (в моем случае c:\windows\system32) и указанием полного пути к аргументу (приложению, которое вы запускаете):

C:\WINDOWS\system32>psexec c:\Projects\newdesktop\someapp.exe

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