PSEXEC, доступ запрещен ошибки - PullRequest
52 голосов
/ 06 мая 2009

Пока я использую PSEXEC.exe, получаю ошибку «Отказано в доступе» для удаленных систем.

Есть идеи, как это решить?

Ответы [ 17 ]

64 голосов
/ 31 декабря 2012

Привет, я размещаю здесь сводку из многих источников в Интернете для различных решений "доступ запрещен": Большая часть информации может быть найдена здесь (включая необходимые требования) - sysinternal help

  1. , как кто-то упомянул, добавьте этот ключ reg, а затем перезагрузите компьютер:

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

    Прочитайте эту статью базы знаний , чтобы узнать, что это делает и почему необходимо

  2. Отключить брандмауэр (обратите внимание - это оставит вас без брандмауэра защита)

    netsh advfirewall выключает все профили

  3. , если у целевого пользователя есть пустое PW, и вы не хотите добавлять его, запустите на цели:

    [HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ LSA] "LimitBlankPasswordUse" = DWORD: 00000000

  4. Это не сработало для меня, но я читал, что это сработало для других в нескольких местах, на цели выполнить:

    Пуск -> Выполнить -> secpol.msc -> Локальные политики -> Параметры безопасности -> Доступ к сети: Общий доступ> и модель безопасности для локальных учетных записей> Классический - локальные пользователи аутентифицируются как сами

    , если уже в «Классическом»:

    перейти в режим «Только для гостей - ..» из командной строки с повышенными привилегиями gpupdate \ force вернуться к «Классический - ..» снова запустить из командной строки с повышенными привилегиями gpupdate \ force

  5. Этот вопрос решил мою проблему:

    запустить на цели из командной строки с повышенными правами «net use», посмотреть на диаграмму выходных данных и для ресурсов, перечисленных в удаленном столбце (я только удалил отключенные - вы можете попробовать их все), запустите «net use [удаленный путь из списка перед» ] / delete "затем запустите 'net use \ target \ Admin $ / user: [user name]' введите запрос пароля (если пустая PW просто нажмите enter), альт должен работать.

удачи, надеюсь, это сэкономит кому-то время.

16 голосов
/ 25 декабря 2011

Я только что решил идентичный симптом, создав значение реестра HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system\LocalAccountTokenFilterPolicy и установив его в 1. Более подробная информация доступна здесь .

11 голосов
/ 06 мая 2009

PsExec имеет все права доступа, которые есть у его программы запуска. Он работает под обычным контролем доступа Windows. Это означает, что тот, кто запустил PsExec (будь то вы, планировщик, служба и т. Д.), Не имеет достаточных прав на целевом компьютере или целевой компьютер настроен неправильно. Первые вещи, которые нужно сделать:

  1. Убедитесь, что средство запуска PsExec знакомо целевой машине, либо через домен, либо с помощью того же пользователя и пароля, определенных локально на обеих машинах.
  2. Используйте аргументы командной строки, чтобы указать пользователя, известного целевому компьютеру (-u user -p пароль)

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

8 голосов
/ 15 октября 2015

Это помогло в моем случае:

cmdkey.exe /add:<targetname> /user:<username> /pass:<password>
psexec.exe \\<targetname> <remote_command>
5 голосов
/ 07 июля 2012

Вы можете попробовать команду

net use \\computername\ipc$ /user:adminname password

для получения прав администратора на удаленном ПК перед использованием psexec.

4 голосов
/ 26 сентября 2014

У меня была такая же проблема. И после тяжелой работы я нашел простое и полное решение:

  1. Я использую runas , чтобы запустить скрипт в учетной записи администратора
  2. Я использую параметр -s в psExec для запуска под системной учетной записью
  3. Внутри PsExec я снова захожу с учетной записью администратора
  4. Вы можете использовать & для запуска нескольких команд
  5. Не забудьте заменить [ИМЯ ПОЛЬЗОВАТЕЛЯ], [ПАРОЛЬ], [ИМЯ КОМПЬЮТЕРА], [КОМАНДА1] и [КОМАНДА2] на реальные значения

Код выглядит так:

runas /user:[USERNAME] "psexec -e -h -s -u [USERNAME] -p [PASSWORD] \\[COMPUTERNAME] cmd /C [COMMAND1] & [COMMAND2]"


Если вы хотите отладить свой скрипт на другом компьютере, запустите следующий шаблон:

runas /user:[USERNAME] "psexec -i -e -h -s -u [USERNAME] -p [PASSWORD] \\[COMPUTERNAME] cmd /C [COMMAND1] & [COMMAND2] & pause"
4 голосов
/ 29 апреля 2013

Я только что добавил параметр "-с". Это делает копию Psexec исполняемой на удаленной машине. Так что работает без ошибок доступа.

4 голосов
/ 05 сентября 2012

Попробуйте установить этот ключ на целевом (удаленном) компьютере и перезагрузите компьютер:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"LocalAccountTokenFilterPolicy"=dword:00000001

См .: http://forum.sysinternals.com/topic10924.html и http://www.brandonmartinez.com/2013/04/24/resolve-access-is-denied-using-psexec-with-a-local-admin-account/

3 голосов
/ 13 марта 2014

Я обнаружил, что Sophos помещает psexec.exe в раздел Карантина. Как только я авторизовал его, он работал нормально.

2 голосов
/ 08 апреля 2013

У меня был случай, когда AV помещал в карантин Psexec - пришлось отключить сканирование при доступе

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...