67

Я парень из Linux, и поэтому я очень растерялся, когда пытаюсь сделать что-нибудь в Windows. Я пытаюсь создать следующую ссылку:

mklink /d C:\backup\data \\myth\backup\data

Но у меня нет достаточных привилегий, чтобы выполнить эту операцию. Как получить достаточные привилегии в Windows 7?

ОБНОВИТЬ:

Щелкните правой кнопкой мыши C:\backup\data и изменили разрешения на полный доступ для аутентифицированного пользователя, перезапустили компьютер и снова попытались выполнить команду, но безуспешно. У кого-нибудь есть еще предложения?

7 ответов7

106

Как указано здесь,

Для создания символьных ссылок требуется SeCreateSymbolicLinkPrivilege («Создание символических ссылок»), который по умолчанию предоставляется только администраторам (но вы можете изменить это с помощью политики безопасности).

Чтобы изменить политику:

  1. Щелкните правой кнопкой мыши StartRun и запустите secpol.msc .

  2. Откройте Security Settings → Local Policies → User Rights Assignment и выберите Create symbolic links (которые представляют SeCreateSymbolicLinkPrivilege).

  1. Дважды щелкните элемент и добавьте себя (или всю группу Users ) в список.

Изменения вступят в силу после выхода и повторного входа.

18

Я только что обнаружил, что могу создать 'Junction', даже когда не могу создать символическую ссылку:

mklink [/D] /J junctionname filename

где /J указывает «создать соединение», а /D, я полагаю, для, если названный файл является каталогом. (мой пользователь в настоящее время является администратором)

Тем не менее, переход к файлу 'bat' не кажется исполняемым, так что на самом деле он не имеет никакого смысла.

Кто-нибудь понимает, почему это так, или как это можно исправить, чтобы обеспечить альтернативный подход к проблеме ОП?

11

Я обнаружил, что только не администратор может это сделать. Добавить не администратор для создания символических ссылок и Runas не администратор. Вам придется добавить человека с правами администратора. Затем вы даете разрешение цели не администратору, чтобы он мог выполнить runas mklink.

2

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

Мое решение состоит в том, чтобы использовать: elevate.cmd и elevate.vbs

  1. Скачать с: http://technet.microsoft.com/en-us/magazine/2008.06.elevation.aspx
  2. Поместите эти два файла в системный путь (или где-нибудь в сети)
  3. elevate.cmd cmd /c "cd /d LINK_DIR && mklink /D LINK_NAME LINK_TARGET_PATH"

Минусы: elevate.cmd возвращается немедленно, но ответ на диалог UAC требует времени. Это вынудило меня добавить: "Ты уже согласился на диалог UAC?"вопрос к моему сценарию. Можно пропустить "elevate.cmd", проверив код завершения для следующей команды: whoami /groups | find "S-1-16-12288" (код выхода 0 означает, что у вас есть консоль администратора).

2

Столкнулся с этой проблемой и сегодня. У меня была задача сборки NAnt, пытающаяся создать символические ссылки на компьютере. Был отклонен из-за отсутствия привилегий. Я нашел этот пост, который помог решить мою проблему: http://josh.mainelan.net/tag/mklink/.

Соответствующий раздел:

  1. Откройте окно запуска, введите «secpol.msc» и нажмите «ОК».
  2. Перейдите в папку «Параметры безопасности» \ «Локальные политики» \ «Назначение прав пользователя».
  3. Найдите «Создать символические ссылки» и добавьте группу «Пользователи».

Я думаю, что вам нужно перезагрузить компьютер или что-то после этого.

1

Запустите командную строку от имени администратора, чтобы выполнить эту команду.

Введите cmd (или команду) в меню "Пуск", щелкните по нему правой кнопкой мыши и выберите "Запуск от имени администратора".

Теперь любая команда, которую вы выполняете, будет выполняться с правами администратора.

-5

Я бы порекомендовал Ultimate Windows Tweaker. Используйте его, чтобы выбрать "Показать владение", чтобы обойти проблему с разрешениями, и "Показать открытое окно команд здесь", чтобы открыть командную строку в правильной папке.

альтернативный текст

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