parkone
14-01-2014, 01:52
Сразу скажу: Разные похожие темы есть на форуме, но в них рассмотрено либо наследование прав, либо их повышение. Понижения или отключения наследования прав найти нигде не удалось.
Ситуация такая: определенная программа автоматически запускается с правами администратора при входе в виндовз (через плановщик винды),
в свою очередь она может запускать другие программы, которые по умолчанию наследуют ее права (т.е. будут вызваны от имени администратора).
А нужно чтобы дочерние программы запускались с обычными правами (т.е. как и большинство программ в системе), т.е. запретить RunAsInvoker (наследование прав от родительского процесса)
Что пробовал:
1) Стандартная утилита RUNAS (http://www.windowsfaq.ru/content/view/85/57/), которая запускает программы с разрешениями, отличными от тех, которые предоставляет текущая учетная запись
RUNAS /trustlevel:<TrustLevel> program
/showtrustlevels displays the trust levels that can be used as arguments to /trustlevel.
/trustlevel <Level> should be one of levels enumerated in /showtrustlevels.Говорят что работает, но моя попытка понизить права не удалась.
Elevation PowerToys (http://technet.microsoft.com/en-us/magazine/2008.06.elevation.aspx), который как я понял основан на RUNAS тоже не выглядит работоспособным даже Elevation PowerToys последней версии (http://blogs.technet.com/b/deploymentguys/archive/2009/01/21/the-elevation-powertoys-and-windows-7.aspx).
2) Для повышения прав встречаются такие решения, может есть что-то подобное для понижения прав?
C:\Windows\System32\cmd.exe /C set __COMPAT_LAYER=RunAsInvoker & start “” “C:\Program Files (x86)\raidcall\raidcall.exe”Но судя по доступным флагам (http://support.microsoft.com/kb/286705/en-us) такой возможности не предусмотрено.
3) Утилита PsExec (http://technet.microsoft.com/ru-ru/sysinternals/bb897553.aspx) с ключом -l [и ключом -d, чтобы не появлялись черные окна, которые ожидают закрытия запускаемой программы]
Единственный вариант который работает (http://blogs.technet.com/b/markrussinovich/archive/2006/03/02/running-as-limited-user-the-easy-way.aspx), программа запускается с пониженными правами (хотелось бы конечно с нормальными) даже при том что родительский процесс имеет права администратора.
Но что-то с передачей параметров запускаемому приложению проблемно. Например, запуская такой код появляется только окно MS Access, а база не загружается с указанными параметрами (http://support.microsoft.com/kb/209207/ru)
PsExec.exe -l -d "C:\Program Files (x86)\Microsoft Office\Office14\MSACCESS.EXE" "C:\база данных.accdb"Если ли еще варианты? Или как решить вопрос с передачей параметров в последнем варианте? Пробовал запустить батник, содержащий нужные инструкции - не помогло.
Upd: Похоже права понижаются слишком сильно (http://www.outsidethebox.ms/12167/), например, нет возможности создания пустой базы данных. Возможно ли повысить заниженные права до нормальных (чтобы Process Explorer показывал "средний обязательный уровень" вместо "низкий обязательный уровень")?
Тэги: Force Run As Limited User, Force a program to run without administrator privileges, Runs a program as non-elevated user, Запуск приложения без повышенных прав (с правами обычного пользователя), Понижение прав приложений
Ситуация такая: определенная программа автоматически запускается с правами администратора при входе в виндовз (через плановщик винды),
в свою очередь она может запускать другие программы, которые по умолчанию наследуют ее права (т.е. будут вызваны от имени администратора).
А нужно чтобы дочерние программы запускались с обычными правами (т.е. как и большинство программ в системе), т.е. запретить RunAsInvoker (наследование прав от родительского процесса)
Что пробовал:
1) Стандартная утилита RUNAS (http://www.windowsfaq.ru/content/view/85/57/), которая запускает программы с разрешениями, отличными от тех, которые предоставляет текущая учетная запись
RUNAS /trustlevel:<TrustLevel> program
/showtrustlevels displays the trust levels that can be used as arguments to /trustlevel.
/trustlevel <Level> should be one of levels enumerated in /showtrustlevels.Говорят что работает, но моя попытка понизить права не удалась.
Elevation PowerToys (http://technet.microsoft.com/en-us/magazine/2008.06.elevation.aspx), который как я понял основан на RUNAS тоже не выглядит работоспособным даже Elevation PowerToys последней версии (http://blogs.technet.com/b/deploymentguys/archive/2009/01/21/the-elevation-powertoys-and-windows-7.aspx).
2) Для повышения прав встречаются такие решения, может есть что-то подобное для понижения прав?
C:\Windows\System32\cmd.exe /C set __COMPAT_LAYER=RunAsInvoker & start “” “C:\Program Files (x86)\raidcall\raidcall.exe”Но судя по доступным флагам (http://support.microsoft.com/kb/286705/en-us) такой возможности не предусмотрено.
3) Утилита PsExec (http://technet.microsoft.com/ru-ru/sysinternals/bb897553.aspx) с ключом -l [и ключом -d, чтобы не появлялись черные окна, которые ожидают закрытия запускаемой программы]
Единственный вариант который работает (http://blogs.technet.com/b/markrussinovich/archive/2006/03/02/running-as-limited-user-the-easy-way.aspx), программа запускается с пониженными правами (хотелось бы конечно с нормальными) даже при том что родительский процесс имеет права администратора.
Но что-то с передачей параметров запускаемому приложению проблемно. Например, запуская такой код появляется только окно MS Access, а база не загружается с указанными параметрами (http://support.microsoft.com/kb/209207/ru)
PsExec.exe -l -d "C:\Program Files (x86)\Microsoft Office\Office14\MSACCESS.EXE" "C:\база данных.accdb"Если ли еще варианты? Или как решить вопрос с передачей параметров в последнем варианте? Пробовал запустить батник, содержащий нужные инструкции - не помогло.
Upd: Похоже права понижаются слишком сильно (http://www.outsidethebox.ms/12167/), например, нет возможности создания пустой базы данных. Возможно ли повысить заниженные права до нормальных (чтобы Process Explorer показывал "средний обязательный уровень" вместо "низкий обязательный уровень")?
Тэги: Force Run As Limited User, Force a program to run without administrator privileges, Runs a program as non-elevated user, Запуск приложения без повышенных прав (с правами обычного пользователя), Понижение прав приложений