8

Я надеюсь, что кто-то может исправить меня, если я ошибаюсь при попытке создать символическую ссылку в Windows 8.1 без необходимости запуска cmd.exe от имени администратора.

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

C:\Users\MyUser>mklink symlink.txt mytextfile.txt
You do not have sufficient privilege to perform this operation.

... и он работает из командной строки администратора (как и ожидалось)...

C:\Users\MyUser>mklink symlink.txt mytextfile.txt
symbolic link created for symlink.txt <<===>> mytextfile.txt

Однако не похоже, чтобы в Windows 8.1 работали какие-либо обычные исправления (по крайней мере, исправления, которые я мог найти).

Я пытался следовать ответу на вопрос Как создать ссылку в Windows 7 Home Premium для обычного пользователя?, но, похоже, не имеет никакого эффекта.

У меня также UAC установлен на самый низкий уровень.

Есть что-то еще, что я пропускаю?

1 ответ1

9

В "фильтрованном" токене отсутствует привилегия

Либо отключите UAC. Или с включенным контролем учетных записей : после включения SECreateSymbolicLinkPrivilege попробуйте использовать учетную запись без прав администратора .

объяснение
Это улов 17. Из того, как я читаю MS-документацию.

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

Соответствующий SeCreateSymbolicLinkPrivilege отфильтровывается, когда маркер с повышенными правами генерируется из маркера с повышенными правами.

Из MSDN: Изоляция привилегий пользовательского интерфейса (UIPI):

Windows создаст для пользователя два токена доступа, если выполняется одно из следующих условий: Учетная запись пользователя содержит любой из следующих идентификаторов RID.
DOMAIN_GROUP_RID_ADMINS
[...]
Какие привилегии содержат отфильтрованный токен, основаны на том, содержал ли исходный токен какой-либо из ограниченных RIDS, перечисленных выше. Если какой-либо из ограниченных RID был в токене, все привилегии будут удалены, кроме:
SeChangeNotifyPrivilege
SeShutdownPrivilege
SeUndockPrivilege
SeReserveProcessorPrivilege
SeTimeZonePrivilege

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

(Отказ от ответственности: Пол Беттс сделал работу. Я просто добавил некоторые детали. Смотрите его ответ здесь: https://stackoverflow.com/questions/15320550/secreatesymboliclinkprivilege-ignored-on-windows-8 )

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