PSEXEC, доступ запрещен ошибки
Пока я использую PSEXEC.exe, получаю ошибку "Доступ запрещен" для удаленных систем.
Есть идеи о том, как это решить?
19 ответов
Привет, я размещаю здесь резюме из многих источников в Интернете для различных решений "доступ запрещен": большая часть информации может быть найдена здесь (включая необходимые требования) - sysinternal help
как кто-то упомянул, добавьте этот ключ reg, а затем перезагрузите компьютер:
reg add HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ system / v LocalAccountTokenFilterPolicy / t REG_DWORD / d 1 / f
Прочитайте эту статью базы знаний, чтобы узнать, что это делает и зачем это нужно
Отключить брандмауэр (обратите внимание - это не даст вам никакой защиты от брандмауэра)
netsh advfirewall выключает состояние allprofiles
если у целевого пользователя есть пустой PW, и вы не хотите добавлять его, запустите на target:
[HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa] "LimitBlankPasswordUse" = dword: 00000000
Это не сработало для меня, но я читал, что это было сделано для других в нескольких местах, на целевой выполнить:
Пуск -> Выполнить -> secpol.msc -> Локальные политики -> Параметры безопасности -> Доступ к сети: Общий доступ> и модель безопасности для локальных учетных записей> Классический - локальные пользователи аутентифицируются как они сами
если уже в "Классике":
перейти к "Только для гостей - .." запустить из командной строки с повышенными правами gpupdate \force вернуться к "Классический - .." снова запустить из командной строки с повышенными привилегиями gpupdate \force
Этот решил мою проблему:
запустите на цели из командной строки с повышенными привилегиями "net use", посмотрите на диаграмму выходных данных и для акций, перечисленных в удаленном столбце (я только удалил отключенные - вы можете попробовать их все), запустите "net use [удаленный путь из списка до]] / delete "затем запустите" net use \ target \ Admin $ / user: [имя пользователя] ", введите запрос пароля (если пустой PW просто нажмите enter), альт должен работать.
удачи, надеюсь, это сэкономит кому-то время.
Я только что решил идентичный симптом, создав значение реестра HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system\LocalAccountTokenFilterPolicy
и установив его на 1. Более подробная информация доступна здесь.
Это помогло в моем случае:
cmdkey.exe /add:<targetname> /user:<username> /pass:<password>
psexec.exe \\<targetname> <remote_command>
PsExec имеет все права доступа, которые есть у его программы запуска. Он работает под обычным контролем доступа Windows. Это означает, что тот, кто запустил PsExec (будь то вы, планировщик, служба и т. Д.), Не имеет достаточных прав на целевом компьютере, или целевой компьютер не настроен правильно. Первые вещи, которые нужно сделать:
- Убедитесь, что программа запуска PsExec знакома целевой машине, либо через домен, либо с помощью того же пользователя и пароля, определенных локально на обеих машинах.
- Используйте аргументы командной строки, чтобы указать пользователя, который известен целевому компьютеру (-u user -p пароль)
Если это не решило вашу проблему, убедитесь, что целевой компьютер соответствует минимальным требованиям, указанным здесь.
Вы можете попробовать команду
net use \\computername\ipc$ /user:adminname password
чтобы получить права администратора на удаленном ПК перед использованием psexec.
У меня такая же проблема. И после тяжелой работы я нашел простое и полное решение:
- Я использую runas для запуска скрипта в учетной записи администратора
- Я использую параметр -s в psExec для запуска в системной учетной записи
- Внутри PsExec я снова захожу с учетной записью администратора
- Вы можете использовать & для запуска нескольких команд
- Не забудьте заменить [ИМЯ ПОЛЬЗОВАТЕЛЯ], [ПАРОЛЬ], [ИМЯ КОМПЬЮТЕРА], [КОМАНДА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"
Попробуйте установить этот ключ на целевой (удаленной) машине и перезагрузите машину:
[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/
Я обнаружил, что Sophos продолжает размещать psexec.exe в разделе Карантин. Как только я разрешил это, все работало нормально.
Я все еще использую psexec
Ещё на win 10. Замени psexec.exe
в Windows 10 win32
папка с более старой версией для работы -> я использую версию 2.11.0.0. Используемая мной версия Windows 10 запускала только файлы.bat в качестве фонового / скрытого процесса на удаленном компьютере. Потребовался целый день, чтобы понять это.
Добавление ключа реестра сверху на удаленный компьютер также помогает:
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
Я только что добавил параметр "-с". Это делает копию Psexec исполняемой на удаленной машине. Так что работает без ошибок доступа.
У меня был случай, когда AV карантин Psexec - пришлось отключить сканирование при доступе
Я обнаружил еще одну причину сбоя PSEXEC (и других инструментов PS) - если что-то (... скажем, вирус или троян) скрывает папку Windows и / или ее файлы, то PSEXEC завершится с ошибкой "Доступ запрещен", PSLIST выдаст ошибку "Объект производительности процессора не найден на", и вы будете оставлены в неведении относительно причины.
Вы можете RDP в; Вы можете получить доступ к admin$ share; Вы можете просматривать содержимое диска удаленно и т. Д. И т. Д., Но нет никаких указаний на то, что файл (ы) или папка (и) являются скрытой причиной.
Я буду публиковать эту информацию на нескольких страницах, которые вчера просматривал, пытаясь определить причину этой странной проблемы, так что вы можете увидеть это дословно в другом месте - просто подумал, что я выложу слово, прежде чем кто-то еще вырвет их волосы корнями пытаясь понять, почему счетчик производительности имеет какое-либо отношение к работе PSEXEC.
Следующее сработало, но только после того, как я обновил PSEXEC до 2.1 от Microsoft.
[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ System] "LocalAccountTokenFilterPolicy" = dword: 00000001 См.: http://forum.sysinternals.com/topic10924.html
У меня была немного более старая версия, которая не работала. Я использовал это, чтобы сделать некоторую работу USMT через Dell Kace, работал удовольствие:)
На Windows Server 2012 R2 у меня возникли проблемы с запуском учетной записи пользователя
psexec -u administrator -p password \\machinename -h -s -d -accepteula cmd.exe
Но это работает нормально, если вы запускаете без параметров -h -s
, Вот почему я использую это, чтобы решить мою проблему:
psexec -accepteula -u administrator -p password \\machinename %PathToLocalUtils%\psexec.exe -h -s -d cmd.exe
Для тех, кто может наткнуться на это. Недавнее (декабрь 2013 г.) обновление для системы безопасности Microsoft Windows на Windows 7, препятствующее удаленному выполнению. См. http://support.microsoft.com/kb/2893294/en-us
Я удалил обновление безопасности, перейдя в Панель управления \ Программы \ Программы и компоненты \ Установленные обновления
Это сработало сразу после этого.
Пробовал все предложения выше, но все равно не смог устранить ошибку. Наконец, как только я внес указанные ниже изменения, я смог успешно запустить команду PSexec.
Оказывается, когда у вас включен UAC, psexec не работает должным образом. Нам нужно установить
Я не мог получить доступ к удаленным машинам, если у меня не было отключено UAC.
Это должно быть сделано локально, либо с панели управления, либо с помощью следующей команды cmd:
reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f
Пока UAC включен, убедитесь, что вы запускаете cmd от имени администратора.
Я пробовал много способов, но не смог использовать psexec. Выдает "Доступ запрещен". После того, как я изменил тип учетной записи целевого пользователя со Стандартного на Админ, я подключил машину через psexec.
Я исследовал причину, по которой требуется учетная запись типа администратора, и нашел этот ответ.
Вы можете изменить учетную запись пользователя целевой машины следующим образом: Панель управления -> Учетные записи пользователей -> Изменить тип учетной записи. Вы должны ввести учетную запись администратора и пароль, чтобы изменить эту учетную запись, если вы вошли в стандартную учетную запись.
После этого я вошел в систему с помощью этой команды: psexec \\remotepcname -u remoteusername -p remotepassword cmd
Для другой команды я решил сменить сеть с публичной на работу.
После попытки использовать команду psexec снова она снова заработала.
Поэтому, чтобы заставить psexec работать, измените тип своей сети с публичной на рабочую или домашнюю.