Типы ссылок по умолчанию равны 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();
}
Примечание. Чтобы избежать этой ошибки, вы всегда должны инициализировать свои объекты прежде чем пытаться что-либо сделать с ними.
У меня был случай, когда AV был помещен в карантин Psexec - пришлось отключить сканирование при доступе
Я просто добавил параметр «-с». Это делает Psexec копию исполняемого файла на удаленную машину. Таким образом, он работает без ошибок доступа.
PsExec имеет все права доступа, которые имеет его пусковая установка. Он работает под обычным контролем доступа Windows. Это означает, что кто-нибудь, кто запустил PsExec (будь то вы, планировщик, служба и т. Д.), Не имеет достаточных прав на целевой машине, или целевая машина настроена неправильно. Первое, что нужно сделать, это:
Если это не решило вашу проблему, убедитесь, что целевая машина соответствует минимальным требованиям , указанным здесь .
Для другой команды я решил изменить сеть от общественности к работе. После попытки повторного использования команды psexec она снова работала. Поэтому, чтобы заставить psexec работать, попробуйте изменить тип вашей сети с общего доступа к работе или дому.
У меня была та же проблема. И после тяжелой работы я нашел легкое и полное решение:
Код выглядит следующим образом:
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"
Я нашел другую причину, по которой PSEXEC (и другие инструменты PS) терпят неудачу - если что-то (... скажем, вирус или троянец) скрывает папку Windows и / или ее файлы, тогда PSEXEC завершится с ошибкой «Отказано в доступе», ошибка, PSLIST выдаст ошибку «Объект производительности процессора не найден», и вы останетесь в темноте по причине.
Вы можете использовать RDP; Вы можете получить доступ к ресурсу admin $; Вы можете просматривать содержимое диска удаленно и т. Д. И т. Д., Но нет никаких указаний на то, что скрытые файлы или папки (ы) являются скрытыми.
Я буду размещать эту информацию на нескольких страницах что я читал вчера, пытаясь определить причину этой нечетной проблемы, так что вы можете увидеть это в другом месте дословно - просто подумал, что я выложил это слово, прежде чем кто-то еще вытащил бы свои волосы корнями, пытаясь понять, почему счетчик производительности имеет какое-либо отношение к запуску PSEXEC.
Следующие работали, но только после того, как я обновил PSEXEC до версии 2.1 от Microsoft.
[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ System] "LocalAccountTokenFilterPolicy" = dword: 00000001 Смотрите: http://forum.sysinternals.com/topic10924.html
blockquote>У меня была несколько более старая версия, которая не сработала. Я использовал его для работы с USMT через Dell kace, работал с удовольствием:)
Я все еще использую 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
В 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
. Я удалил обновление для системы безопасности, перейдя в Панель управления \nрограммы \nрограммы и компоненты \ Установленный Обновления
Сработало сразу после этого.
Я не смог получить доступ к удаленным машинам, если у меня не было UAC .
Это должно быть сделано локально, либо с панели управления, либо с помощью следующего с помощью cmd:
reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f
Пока включена опция UAC , убедитесь, что вы запустите cmd в качестве администратора.
Привет, я размещаю здесь резюме из многих источников в Интернете для различных решений «доступ запрещен»: большинство информации можно найти здесь (включая необходимые требования) - sysinternal help
удачи, надеюсь, это сэкономит время.
Это помогло в моем случае:
cmdkey.exe /add:<targetname> /user:<username> /pass:<password>
psexec.exe \\<targetname> <remote_command>
Я просто решил идентичный симптом, создав значение реестра HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system\LocalAccountTokenFilterPolicy
и установив его на 1. Более подробная информация доступна здесь .
Я обнаружил, что Sophos продолжал размещать psexec.exe в разделе «Карантин». После того, как я разрешил его, он прошел нормально.
Вы можете попробовать выполнить команду
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/