psexec - выполнение программы на удаленном компьютере: доступ запрещен. Значение параметров в команде? [Дубликат]

Типы ссылок по умолчанию равны null, чтобы указать, что они не ссылаются на какой-либо объект. Следовательно, если вы попытаетесь получить доступ к объекту, на который ссылаетесь, а его нет, вы получите исключение NullReferenceException.

Для Ex:

SqlConnection connection = null;
connection.Open();

Когда вы запускаете это кода, вы получите:

System.NullReferenceException: Object reference not set to an instance of an object.

Вы можете избежать этой ошибки, например, следующим образом:

if (connection != null){
    connection.Open();
}

Примечание. Чтобы избежать этой ошибки, вы всегда должны инициализировать свои объекты прежде чем пытаться что-либо сделать с ними.

44
задан Kevin Panko 24 June 2011 в 19:57
поделиться

17 ответов

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

2
ответ дан b33llz 31 August 2018 в 11:20
поделиться

Я просто добавил параметр «-с». Это делает Psexec копию исполняемого файла на удаленную машину. Таким образом, он работает без ошибок доступа.

3
ответ дан Dan 31 August 2018 в 11:20
поделиться

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

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

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

11
ответ дан eran 31 August 2018 в 11:20
поделиться

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

0
ответ дан geisterfurz007 31 August 2018 в 11:20
поделиться

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

  1. Я использую runas для запуска скрипта в учетной записи администратора
  2. Я использую параметр -s в psExec для запуска в системной учетной записи
  3. Внутри PsExec я снова вхожу с учетной записью администратора
  4. Вы можете использовать & amp; для запуска кратных команд
  5. Не забудьте заменить [USERNAME], [PASSWORD], [COMPUTERNAME], [COMMAND1] и [COMMAND2] с реальными значениями

Код выглядит следующим образом:

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
ответ дан Henry Ávila 31 August 2018 в 11:20
поделиться

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

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

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

1
ответ дан Jeff 31 August 2018 в 11:20
поделиться

Следующие работали, но только после того, как я обновил 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, работал с удовольствием:)

1
ответ дан jww 31 August 2018 в 11:20
поделиться

Я все еще использую psexec, даже на win 10. Замените psexec.exe в папке win32 Windows 10 с более старой версией для работы -> Я использую версию 2.11.0.0. Версия Windows 10, которую я использовал, будет запускать только файлы .bat в качестве фонового / скрытого процесса на удаленном компьютере.

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

   reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
1
ответ дан K48 31 August 2018 в 11:20
поделиться

В 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
1
ответ дан mnille 31 August 2018 в 11:20
поделиться

Для любого, кто может наткнуться на это. Недавнее (декабрь 2013 г.) обновление безопасности от Microsoft Windows в Windows 7 предотвращает удаленное выполнение. См. http://support.microsoft.com/kb/2893294/en-us

. Я удалил обновление для системы безопасности, перейдя в Панель управления \nрограммы \nрограммы и компоненты \ Установленный Обновления

Сработало сразу после этого.

1
ответ дан NicL 31 August 2018 в 11:20
поделиться

Я не смог получить доступ к удаленным машинам, если у меня не было UAC .

Это должно быть сделано локально, либо с панели управления, либо с помощью следующего с помощью cmd:

reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f

Пока включена опция UAC , убедитесь, что вы запустите cmd в качестве администратора.

0
ответ дан pringi 31 August 2018 в 11:20
поделиться

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

  1. , как кто-то сказал, добавьте этот ключ реестра, а затем перезагрузите компьютер: reg add HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ system / v LocalAccountTokenFilterPolicy / t REG_DWORD / d 1 / f Прочитайте this статью базы знаний , чтобы узнать, что это делает и почему это необходимо
  2. Отключить брандмауэр (обратите внимание - это оставит вас без какой-либо защиты брандмауэра) netsh advfirewall set allprofiles state off
  3. , если целевой пользователь имеет пустой PW, и вы не хотите его добавлять, запускайте его в цель: [HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa] "LimitBlankPasswordUse" = dword: 00000000
  4. Это не помогло я, но я прочитал его для других в нескольких местах, в целевом исполнении: Пуск -> Выполнить -> secpol.msc -> Локальные политики -> Параметры безопасности -> Доступ к сети: Совместное использование> и модель безопасности для локальных учетных записей> Классический - локальные пользователи аутентифицируются как сами, если уже находятся в «Классическом»: перейдите в «Гость только ...», запустите из расширенной командной строки gpupdate \ force, снова вернитесь в «Классический - ..» запускать из командной строки с повышенными значениями gpupdate \ force
  5. Это решило мою проблему: запустить на целевом компьютере из командной строки с повышенными привилегиями «net use», посмотреть на график вывода и для акций, перечисленных в удаленном столбце (я удалил только отключенный один из них - вы можете попробовать их все) запустить «net use [удаленный путь из списка] / удалить» затем запустить «net use \ target \ Admin $ / user: [имя пользователя]» ввести запрос запроса пароля (если пустой PW просто нажмите введите), альт должен работать.

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

54
ответ дан Riki Coder 31 August 2018 в 11:20
поделиться

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

cmdkey.exe /add:<targetname> /user:<username> /pass:<password>
psexec.exe \\<targetname> <remote_command>
6
ответ дан spenibus 31 August 2018 в 11:20
поделиться

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

12
ответ дан user66001 31 August 2018 в 11:20
поделиться

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

3
ответ дан UsPeoples 31 August 2018 в 11:20
поделиться

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

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

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

5
ответ дан Uwe Keim 31 August 2018 в 11:20
поделиться

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

[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/

4
ответ дан Wernight 31 August 2018 в 11:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: