1

Недавно меня смутило то, как UAC работает между стандартными учетными записями и учетными записями администратора,

Как все мы знаем, когда UAC включен, UAC позволяет стандартным учетным записям или учетным записям администратора в режиме одобрения администратором получать доступ к токену администратора для выполнения задач, требующих административного доступа к компьютеру, что позволяет нам переключать токены без переключения пользователей. ,

Однако, похоже, что переключение токенов не совсем то, что происходит: некоторое время назад я запустил приложение, которое модифицировало бы оболочку (explorer.exe). Я запустил программу со стандартной учетной записью, но для нее требовался повышенный доступ: поэтому я использовал UAC для предоставления учетных данных администратора, чтобы она могла завершиться. Я не видел никаких изменений в оболочке; Затем я вошел в учетную запись администратора, чьи учетные данные я использовал, и увидел, что оболочка в этой учетной записи была изменена, что, очевидно, было не тем, что я хотел

Мне показалось, что UAC был просто соглашением типа «Запуск от имени пользователя», когда он фактически запускал программу от имени этого пользователя. Это означало, что я не просто запускал его с повышенными правами: я буквально запускал программу от имени этого пользователя,

У меня вопрос: возможно ли для стандартной учетной записи использовать маркер администратора, но на самом деле запустить программу от имени обычного пользователя и использовать профиль текущего пользователя? В противном случае, мне кажется, что если вам нужно выполнить какие-либо задачи администратора, вам в значительной степени необходимо войти в учетную запись администратора, которая наносит ущерб всей цели UAC - поскольку UAC запускает программу в качестве администратора, а не использует только права администратора,

Возможно ли разделение токена и профиля? Или все пользователи просто должны быть администраторами в этом случае? Мне кажется, что это будет причиной многих организаций, просто предоставляя полный доступ администратора всем пользователям,

Может кто-нибудь, пожалуйста, пролить свет на это?

Я хотел бы знать, если бы было возможно предоставить токен администратора для указанной программы, но запустить эту программу в текущей учетной записи пользователя, а не учетной записи администратора, чьи учетные данные были предоставлены - другими словами, будет ли он иметь Можно было изменить оболочку в учетной записи Standard с этой программой? Цель состоит в том, чтобы запустить процесс как зарегистрированный пользователь (независимо от текущих привилегий) с правами администратора, а не как процесс с учетной записью с правами администратора.

Надеюсь, это имеет смысл,

ПОЯСНЕНИЕ: я не имею в виду режим одобрения администратором или работу UAC. Я уже знаю, что если для UAC задано безопасное значение, даже администраторам будет предложено, и, если оно не отключено, администраторы по умолчанию используют стандартный токен. Я говорю о том, когда маркер администратора получил, можно ли еще запустить процесс , как зарегистрированный пользователь, только с маркером администратора? (не использовать Run As 'user', но может быть что-то вроде run as/with 'token') и т. д ... Таким образом, он будет использовать общие административные привилегии, а не административные привилегии одного пользователя.

Это вообще возможно, или я только что указал на функцию не в Window?

Должен ли я для достижения цели, описанной здесь, возможно, превращать стандартную учетную запись в учетную запись администратора в любое время, когда необходимо выполнить какие-либо действия, требующие повышения прав, а затем снова превратить ее в стандартную учетную запись? Судя по комментариям, кажется, что это невозможно, и это кажется недостатком ОС, поскольку делает UAC в основном бесполезным.

ПРИМЕР: Несколько лет назад я пытался запустить программу, которая изменила бы тему моего компьютера, необходимую для исправления системы (одна из этих сторонних программ). Требуются права администратора. Я не увидел никаких изменений, но затем я вошел в учетную запись администратора, чей пароль я использовал, и обнаружил, что все действия были применены к этой учетной записи !! Мне приходилось возиться с этим несколько раз, чтобы заставить его работать, но это был действительно неудачный процесс. Будет ли самое простое решение - просто временно продвинуть эту стандартную учетную запись администратору, а затем понизить ее?

2 ответа2

1

Вы не можете иметь программу, работающую под стандартной учетной записью, но с правами администратора.

Вы ошибаетесь, что UAC - это "Запуск от имени другого пользователя". Программы, работающие под именем пользователя Admin, по умолчанию работают со стандартными разрешениями . Только когда программа "повышена", она получает права администратора. Это даже если ваша учетная запись является администратором.

UAC был создан для решения проблемы, связанной с тем, что все процессы, запущенные под пользователем, который был администратором, имели права администратора.

1

Да, это возможно...
Откройте консоль и введите « runas »

use the /profile switch to select a profile to run the program...
use the /savecred switch to save the admin credentials you choose...

...

RUNAS USAGE:

RUNAS [ [/noprofile | /profile] [/env] [/savecred | /netonly] ]
        /user:<UserName> program

RUNAS [ [/noprofile | /profile] [/env] [/savecred] ]
        /smartcard [/user:<UserName>] program

RUNAS /trustlevel:<TrustLevel> program


   /noprofile        specifies that the user's profile should not be loaded.
                     This causes the application to load more quickly, but
                     can cause some applications to malfunction.
   /profile          specifies that the user's profile should be loaded.
                     This is the default.
   /env              to use current environment instead of user's.
   /netonly          use if the credentials specified are for remote
                     access only.
   /savecred         to use credentials previously saved by the user.
                     This option is not available on Windows 7 Home or Windows 7 Starter Editions
                     and will be ignored.
   /smartcard        use if the credentials are to be supplied from a
                     smartcard.
   /user             <UserName> should be in form USER@DOMAIN or DOMAIN\USER
   /showtrustlevels  displays the trust levels that can be used as arguments
                     to /trustlevel.
   /trustlevel       <Level> should be one of levels enumerated
                     in /showtrustlevels.
   program         command line for EXE.  See below for examples

Examples:
> runas /noprofile /user:mymachine\administrator cmd
> runas /profile /env /user:mydomain\admin "mmc %windir%\system32\dsa.msc"
> runas /env /user:user@domain.microsoft.com "notepad \"my file.txt\""

NOTE:  Enter user's password only when prompted.
NOTE:  /profile is not compatible with /netonly.
NOTE:  /savecred is not compatible with /smartcard.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .