psexec: "Доступ запрещен"?

Вдохновленный моим предыдущим вопросом, я экспериментировал с PSExec.

Цель состоит в том, чтобы отключить некоторые довольно простые скрипты / программы на одном компьютере с WindowsXP с другого, и, поскольку PowerShell 2 еще не поддерживает удаленное взаимодействие на XP, PSexec, похоже, хорошо решит мои проблемы.

Однако я не могу получить ничего, кроме ошибки "Доступ запрещен".

Вот что я пробовал до сих пор:

У меня есть пара машин WindowsXP MCE, объединенных в сеть в рабочей группе без сервера или контроллера домена.

Я отключил "простой обмен файлами" на обеих машинах.

В соответствии с политикой безопасности модель "Доступ к сети: общий доступ и безопасность" для локальных учетных записей установлена ​​на "Классический", а не "Гость" на обеих машинах.

Для каждого компьютера, к которому я знаю пароли, есть Административный пользователь.:)

При всем этом команда вроде > psexec \\otherComputer -u adminUser cmd "запрашивает пароль (как и должно быть) и затем завершается с:

Couldn't access otherComputer:
Access is denied.

Итак, на этом этапе я перехожу к сообществу. Какой шаг я здесь пропускаю?

10 ответов

Решение

Задача решена.

Получается, что по умолчанию Windows не позволяет удаленно войти с учетной записью пользователя с пустым паролем. Чтобы поэкспериментировать с PSExec, я изменил пароль учетной записи администратора на целевой машине на ничто, полагая, что это уменьшит количество набираемых текстов. Оказывается, это была моя проблема, и как только я вернул пароль, все заработало отлично.

Однако это вызвало другое расследование. Если кто-то хочет использовать PSExec с пустым паролем, вот что вам нужно сделать (в любом случае под Windows XP MCE):

  • На панели управления откройте Администрирование.
  • Откройте локальную политику безопасности.
  • Перейдите к Локальным политикам -> Параметры безопасности
  • Измените "Учетные записи: ограничить использование локальной учетной записи пустыми паролями только для входа в консоль" на Отключено

Добавьте следующий реестр DWORD на удаленный компьютер, и это должно исправить проблему.

reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f

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

net use \\otherComputer\ADMIN$ /user:otherComputer\adminUser *

Я столкнулся с этой ошибкой при запуске PSExec из командной строки без повышенных прав (в Windows 7). Запуск команды из командной строки с повышенными правами исправил ее.

Если вы печатаете

\\Имя компьютера

в мой компьютер и аутентифицированные как adminUser это работает?

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

Вам нужно, чтобы стандартное совместное использование файлов Windows было включено и разрешено через брандмауэр, чтобы это работало.

Я нашел еще одну причину сбоя PSEXEC (и других инструментов PS) - если что-то (... скажем, вирус или троян) скрывает папку Windows и / или ее файлы, то PSEXEC завершится с ошибкой "Доступ запрещен", PSLIST выдаст ошибку "Объект производительности процессора не найден на", и вы будете оставлены в неведении относительно причины.

Вы можете RDP в; Вы можете получить доступ к admin$ share; Вы можете просматривать содержимое диска удаленно и т. Д. И т. Д., Но нет никаких указаний на то, что причиной является скрытый файл (ы) или папка (и).

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

Вот идея, которая сработала для меня. Вместо того, чтобы передавать имя пользователя и пароль psexec с параметрами -u и -p, сначала откройте командную строку, работающую в контексте этого пользователя:

      C:\> runas /user:domain\name cmd.exe

При появлении запроса введите пароль. Затем из этой новой командной строки запустите psexec как обычно:

      C:\> psexec \\remotepc cmd.exe

Захват трафика с помощью Wireshark часто помогает отследить проблему в этих ситуациях. Вы можете посмотреть на трафик SMB и увидеть, как Windows пытается аутентифицироваться или даже вообще заходит так далеко в случае брандмауэров, блокирующих трафик и т. Д.

Защитник Windows или другая защита от вредоносных программ работает? Это блокирует? Я знаю, что Защитник Windows способен на это.

Еще одна вещь, чтобы проверить, блокирует ли ваш антивирус psexecsvc.exe. Я только что натолкнулся на это с Софосом. Я получил отказ в доступе и увидел, что Sophos блокирует PSEXEC из журнала приложений.

Другие вопросы по тегам