Пока я использую PSEXEC.exe, получая ошибку "Доступ запрещен" для удаленных систем.
Любая идея о том, как решить эту проблему?
Пока я использую PSEXEC.exe, получая ошибку "Доступ запрещен" для удаленных систем.
Любая идея о том, как решить эту проблему?
Привет, я размещаю здесь резюме из многих источников в Интернете для различных решений "доступ запрещен": большая часть информации может быть найдена здесь (включая необходимые требования) - sysinternal help
как кто-то упомянул, добавьте этот ключ reg, а затем перезагрузите компьютер:
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system/v LocalAccountTokenFilterPolicy/t REG_DWORD/d 1/f
Прочитайте эту статью базы знаний, чтобы узнать, что это делает и зачем это нужно
Отключить брандмауэр (обратите внимание - это не даст вам никакой защиты от брандмауэра)
netsh advfirewall выключил все профили
если у целевого пользователя есть пустой 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. Более подробная информация доступна здесь.
PsExec имеет все права доступа, которые есть у его программы запуска. Он работает под обычным контролем доступа Windows. Это означает, что тот, кто запустил PsExec (будь то вы, планировщик, служба и т.д.), Не имеет достаточных прав на целевом компьютере, или целевой компьютер не настроен правильно. Первые вещи, которые нужно сделать:
Если это не решило вашу проблему, убедитесь, что целевой компьютер соответствует минимальным требованиям, указанным здесь.
Это помогло в моем случае:
cmdkey.exe /add:<targetname> /user:<username> /pass:<password>
psexec.exe \\<targetname> <remote_command>
Вы можете попробовать выполнить команду
net use \\computername\ipc$ /user:adminname password
чтобы получить права администратора на удаленном ПК перед использованием psexec.
Попробуйте установить этот ключ на целевом (удаленном) компьютере и перезагрузите компьютер:
[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/
Я просто добавил параметр "-с". Это делает Psexec копию исполняемого файла на удаленную машину. Таким образом, он работает без ошибок доступа.
У меня была та же проблема. И после тяжелой работы я нашел легкое и полное решение:
Код выглядит следующим образом:
runas /user:[USERNAME] "psexec -e -h -s -u [USERNAME] -p [PASSWORD] \\[COMPUTERNAME] cmd /C [COMMAND1] & [COMMAND2]"
Если вы хотите отладить ваш script на другом компьютере, запустите следующий шаблон:
runas /user:[USERNAME] "psexec -i -e -h -s -u [USERNAME] -p [PASSWORD] \\[COMPUTERNAME] cmd /C [COMMAND1] & [COMMAND2] & pause"
Я обнаружил, что Sophos продолжал размещать psexec.exe в разделе "Карантин". Как только я разрешил его, он прошел нормально.
У меня был случай, когда AV был помещен в карантин Psexec - пришлось отключить сканирование при доступе
Я нашел еще одну причину: PSEXEC (и другие инструменты PS) потерпят неудачу - если что-то (скажем, вирус или троянец) скрывает папку Windows и/или ее файлы, тогда PSEXEC будет терпеть неудачу с "Доступ запрещен", ошибка, PSLIST выдаст ошибку "Объект производительности процессора не найден", и вы останетесь в темноте по причине.
Вы можете использовать RDP; Вы можете получить доступ к ресурсу admin $; Вы можете просматривать содержимое диска удаленно и т.д. И т.д., Но нет никаких указаний на то, что скрытые файлы или папки скрыты.
Я буду размещать эту информацию на нескольких страницах, которые я просматривал вчера, пытаясь определить причину этой нечетной проблемы, поэтому вы можете увидеть это в другом месте дословно - просто подумал, что я выложил это слово, прежде чем кто-нибудь еще потянет их волосы уходят корнями, пытаясь понять, почему счетчик производительности имеет какое-то отношение к работе PSEXEC.
Для всех, кто может наткнуться на это. Недавнее (декабрь 2013 г.) обновление безопасности от Microsoft Windows в Windows 7 предотвращает удаленное выполнение. См. http://support.microsoft.com/kb/2893294/en-us
Я удалил обновление для системы безопасности, перейдя в Панель управления\Programs\Программы и компоненты\Установленные обновления
Сработало сразу после этого.
Следующие работали, но только после того, как я обновил 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
Я все еще использую 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
На удаленном компьютере
в настройках брандмауэра
Включить входящий порт 445
Включить порт 137 входящим
добавлен ключ reg:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
LocalAccountTokenFilterPolicy=1
Я не мог получить доступ к удаленным машинам, если у меня не было отключено UAC.
Это должно быть сделано локально, либо с панели управления, либо с помощью следующей команды cmd:
reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f
Пока UAC включен, убедитесь, что вы запускаете cmd от имени администратора.
Для другой команды я решил сменить сеть с публичной на работу.
После попытки использовать команду psexec снова она снова заработала.
Поэтому, чтобы заставить psexec работать, измените тип своей сети с публичной на рабочую или домашнюю.