2013-03-18 2 views
4

У меня есть консоль с повышенными правами, в которой используются некоторые файлы bat. Наличие этой консоли в повышенном режиме является обязательным для того, чтобы она могла выполнять некоторые задачи, такие как управление сетевыми долями и т. Д., Не запрашивая разрешения. Но иногда скрипты также должны запускать некоторые приложения, которые не желают запускаться с повышением. Поэтому мы хотим, чтобы наши приподнятые летучие мыши начали применять приложение в невысоком режиме. Есть ли встроенный способ сделать это в Windows? Процессы были начаты с команды DOS START до даты.Начать процесс как ограниченный пользователь с повышенным скриптом

Кстати, машина является Windows 7 Ultimate Edition x64.

Я знаю, что это isue уже обсуждается во многих программно вопросов (this collects many of them), но наши требования летучая скрипты, работающие на ЦМД, и автономный исполняемый файл, который может помочь в наших задачах, как NirCmd, 7z и т.д.

Уточнение: у нас уже есть запланированная задача, которая запускает консоль повышенной, и поднятие консоли не является проблемой этого ответа.

+0

Кстати, я уже прочитал [эту статью] (http://blogs.technet.com/b/markrussinovich/archive/2006/03/02/running-as-limited-user-the-easy -way.aspx), и кажется лучшим решением на данный момент. Но я буду рад услышать чужие умы. –

+1

Я думаю, что PsExec - это, наверное, ваше самое простое и простое решение. –

ответ

8

Встроенный способ Windows: START RUNAS ... позволяет запускать процесс как ограниченный пользователь. Вот пример:

runas /trustlevel:0x20000 cmd.exe 

Во всяком случае, есть некоторые внутренние различия между правами исполнения на процессе выполняются таким образом, а другие начал из пользовательского интерфейса с UAC включены (explorer.exe через нормальное взаимодействие пользователя, я имею в виду, выполнение из браузера файлов или из меню «Пуск»).

  • На процессе начался через RunAs (справа) мы пропускаем некоторые права инвалидов: Process Explorer screenshot showing execution permissions differences
  • На процессе начался через RunAs (справа) Администраторы имеют некоторое permisions установленного над процессом: Process Explorer screenshot showing differences on user permissions over the processes

Способ применения сторонних приложений: мы можем достичь нашей цели, используя PSExec, автономный исполняемый файл, который мы можем найти на PSTools из Windows Sysinternals. Вот пример:

psexec -l -d cmd.exe 

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

От Microsoft Technet blogs:

PsExec использовать CreateRestrictedToken API создать контекст безопасности, называется маркер, это урезанная версия самостоятельно, устранение административных привилегий и членство в группе. После создания маркера, который похож на тот, который Windows назначает стандартным пользователям, Process Explorer вызывает CreateProcessAsUser для запуска целевого процесса с новым токеном.

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

1

Действительно не моя область знаний, но будет START RUNAS ... или, возможно, AT подходит для счета?

+0

хорошо пункт. Я пробовал его с «runas/trustlevel: 0x20000 cmd.exe». В конце он работает, хотя я нашел много вещей, которые мне не нравились: во-первых, при попытке выполнить программу, он ищет его в каталогах% path%, но не проверяет [Пути приложений в реестре] (http://weblogs.asp.net/whaggard/archive/2004/04/11/111232.aspx), так что, например, «cmd» работает, но «iexplore» этого не делает. Я также обнаружил различия в разрешениях исполнительного процесса, когда я запускаю его таким образом, а не из пользовательского интерфейса. Я пойду глубже и вернусь с контузиями. –

+0

Я отправлю полный ответ, отредактировав ваш, так что заслуга принадлежит вам. Спасибо за помощь. –

+1

@ Áxel Ваше решение довольно обширно, чем оригинальное решение Peter. Вы должны опубликовать его как новый ответ. – madth3

Смежные вопросы