Цитата R.i.m.s.k.y.:
При запуске от рут-админа (как на скрине выше) доступны локальные ресурсы пользователя, но с админскими правами, а если запустить от имени другого пользователя и ввести "Администратор" - пасс, ресурсы совсем другие »
|
R.i.m.s.k.y., все верно, за исключением рут-админа, ну нет его и все тут. Члены группы Администраторы и сам встроенный Администратор работают с правами обычного пользователя. При входе в систему администраторы получают 2 маркера доступа, регулирующих их права в системе - пользовательский и администраторский. Рабочий стол и Explorer.exe работают с правами обычного пользователя, запущенные процессы будут являться дочерними от своего Explorer-родителя и будут наследовать его права, т.е. запускаться с правами обычного пользователя. Но как только запуск приложения потребует от системы каких-либо привилегий (доступ в системные папки, определенные кусты реестра) наличие администраторского маркера позволяет повысить права в системе. При этом отображается запрос UAC для повышения прав и при согласии приложение начинает работу с администраторскими привилегиями пользователя. Отличие же встроенного Администратора от остальных админских учеток только в том, что для Администратора запрос UAC не появляется, для него в случае необходимости права повышаются автоматически. Также система сама определяет какие из приложений требуют повышения привилегий, делает это она, если не ошибаюсь, через службу Сведения о приложении. Наличие манифеста у исполняемого файла приложения с указанным уровнем привилегий, цифровая подпись помогут корректно определить службе уровень необходимых привилегий для запуска. В Inno Setup манифест подключается через секцию Setup, директива PrivilegesRequired, значение по умолчанию admin. No comments.
Однако есть приложения, уровень доступа которого определить система или не может, или нет необходимости. Это либо какое-нибудь старое, не подготовленное к работе в системе с UAC, приложение (без манифеста, без подписи, от неизвестного издателя), либо, например, та же консоль - cmd.exe. Запуск ее не требует админских прав, запустится она с правами обычного пользователя, но с помощью нее можно пытаться выполнять команды, доступные администраторам, например, копирование в системную директорию system32 или в корень системного диска. Естественно ничего не выйдет, ведь консоль работает с правами обычного пользователя. Вот для таких программ, для которых уровень доступа определить нельзя или нет необходимости, но запустить их с повышенными правами очень хочется и сделана опция в контекстном меню "Запуск от имени администратора". Это не запуск с правами от какого-то мифического супер-пупер администратора, а повышение своих же прав согласно наличию выданного системой администраторского маркера доступа. Microsoft-у следовало бы назвать эту опцию, например, "Запуск с повышенными правами", однако решили, что оттягивающее на себя слово "...администратора" убедит пользователя спать спокойно и не волноваться, что его урезали в правах (IMHO, конечно

). Вот как-то так.
Цитата R.i.m.s.k.y.:
Энивей по вашей логике должен работать скрипт »
|
Цитата R.i.m.s.k.y.:
Ошибка создания ключа реестра:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.TS\UserChoice »
|
R.i.m.s.k.y., тут у меня один вариант. Этот лог при запуске сетапа от имени учетной записи Администратор с вводом учетных данных (логин - пасс). Администратор активирован, пароль присвоен, но входа в учетку никогда не было, следовательно профиля нет, пользовательского куста реестра нет, писать некуда.
Цитата SoftLine:
Как не пытайтесь. вот это:
Код:
[Registry]
Root: HKLM; Subkey: SYSTEM\CurrentControlSet\Enum\Root\LEGACY_MY_HARDWARE_SERVICE; ValueType: dword; ValueName: NextInstance; ValueData: $00000001; Flags: uninsdeletekeyifempty uninsdeletevalue
Даже из под админа загнать не получится. »
|
SoftLine, верно, не получится. В указанный куст имеет право писать только пользователь SYSTEM, остальные только читают. Хотите туда писать - раздавайте права самостоятельно.