Я пытаюсь запустить процесс как другой аккаунт.У меня есть команда:
runas "/user:WIN-CLR8YU96CL5\network service" "abwsx1.exe"
, но затем запрашивается пароль.Однако пароль для сетевой службы не установлен.
Возможно ли то, что я пытаюсь сделать?
Используйте PsExec.exe от SysInternals.
например, при этом откроется новая командная строка, запущенная в качестве NETWORK SERVICE:
psexec -i -u "nt authority\network service" cmd.exe
, при которой будет запущена локальная система:
psexec -i -s cmd.exe
.запуск whoami из командной строки.
whoami
См. также:
http://forum.sysinternals.com/how-to-start-cmdexe-as-network-service_topic15797.html
Интерактивная командная строка в виде NETWORKСЕРВИС
В планировщике заданий создайте задание для запуска приложения под пользователем NETWORK SERVICE.Затем вы можете запустить задачу из командной строки, используя
schtasks /run /TN "taskname"
Где taskname - это имя вашей задачи.
Обычно вы можете выдавать себя за учетную запись службы только из службы Windows, например в этом сообщении упоминается:
Хитрость заключается в том, чтобы запускать код как локальную систему, и оттуда вы можете выдавать себя за учетные записи службы, используя соответствующее имя пользователя без пароля. Один из способов запустить код в качестве учетной записи локальной системы - создать оболочку командной строки, используя метод, показанный ниже (взятый из этого оригинального сообщения ), и выполнить сборку оттуда. Вызов System.Diagnostics.Debugger.Break() в вашем коде позволяет отлаживать. Чтобы создать оболочку командной строки, которая запускается под локальной системной учетной записью, откройте новое окно командной строки и введите: c:\sc create testsvc binpath= "cmd /K start" type= own type= interact с последующим: c:\sc start testsvc Должно открыться новое командное окно. В этом окне запустите файл application.exe - вы увидите, что теперь вы работаете как встроенная системная учетная запись пользователя. После завершения тестирования вы можете удалить созданный вами тестовый сервис, введя: c:\sc delete testsvc
Хитрость заключается в том, чтобы запускать код как локальную систему, и оттуда вы можете выдавать себя за учетные записи службы, используя соответствующее имя пользователя без пароля. Один из способов запустить код в качестве учетной записи локальной системы - создать оболочку командной строки, используя метод, показанный ниже (взятый из этого оригинального сообщения ), и выполнить сборку оттуда. Вызов System.Diagnostics.Debugger.Break() в вашем коде позволяет отлаживать.
System.Diagnostics.Debugger.Break()
Чтобы создать оболочку командной строки, которая запускается под локальной системной учетной записью, откройте новое окно командной строки и введите:
c:\sc create testsvc binpath= "cmd /K start" type= own type= interact
с последующим:
c:\sc start testsvc
Должно открыться новое командное окно. В этом окне запустите файл application.exe - вы увидите, что теперь вы работаете как встроенная системная учетная запись пользователя. После завершения тестирования вы можете удалить созданный вами тестовый сервис, введя:
c:\sc delete testsvc
Если вы попытаетесь сделать это в своем собственном пользовательском контексте, то такие попытки должны потерпеть неудачу.
Я проверял
PsExec -i -s cmd.exe
и
PsExec -i -u "nt authority\network service" cmd.exe
на PsExec64-v2.2, для win10-home-x64-10.0.14393 и win10-pro-x64-10.0.15063 использовать обычную консоль не удалось, используйте повышенную консоль - все нормально