Как создать ссылку в Windows 7 home premium для обычного пользователя?
Я парень из Linux, и поэтому я очень растерялся, когда пытаюсь что-то сделать, это Windows. Я пытаюсь создать следующую ссылку:
mklink /d C:\backup\data \\myth\backup\data
Но у меня нет достаточных привилегий, чтобы выполнить эту операцию. Как получить достаточные привилегии в Windows 7?
ОБНОВИТЬ:
Щелкните правой кнопкой мыши C:\backup\data и изменили разрешения на полный доступ для аутентифицированного пользователя, перезапустили компьютер и снова попытались выполнить команду, но безуспешно. У кого-нибудь есть еще предложения?
7 ответов
Как указано здесь,
Для создания символьных ссылок требуется SeCreateSymbolicLinkPrivilege ("Создание символических ссылок"), который по умолчанию предоставляется только администраторам (но вы можете изменить это с помощью политики безопасности).
Чтобы изменить политику:
Щелкните правой кнопкой мыши на
Start
→Run
и запуститьsecpol.msc
,открыто
Security Settings → Local Policies → User Rights Assignment
и выберитеCreate symbolic links
(что представляетSeCreateSymbolicLinkPrivilege
).
- Дважды щелкните элемент и добавьте себя (или весь
Users
группа) к списку.
Изменения вступят в силу после выхода и повторного входа.
Я только что обнаружил, что могу создать 'Junction', даже когда не могу создать символическую ссылку:
mklink [/D] /J junctionname filename
где /J указывает "создать соединение", а /D, я полагаю, для, если названный файл является каталогом. (мой пользователь в настоящее время является администратором)
Тем не менее, переход к файлу 'bat' не выглядит исполняемым, так что на самом деле он бесполезен.
Кто-нибудь понимает, почему это так, или как это можно исправить, чтобы обеспечить альтернативный подход к проблеме ОП?
Я обнаружил, что только не администратор может это сделать. Добавить не администратор для создания символических ссылок и Runas не администратор. Вам придется добавить человека с правами администратора. Затем вы даете разрешение цели не администратору, чтобы он мог выполнить runas mklink.
Вышеуказанные решения не сработали для меня, потому что я не только не мог создать "гостевого" пользователя на своей машине, но и не мог попросить всех пользователей моих инструментов сделать то же самое на своих машинах. Также нецелесообразно требовать, чтобы они использовали консоли администратора.
Мое решение - использовать: elevate.cmd и elevate.vbs
- Скачать с: http://technet.microsoft.com/en-us/magazine/2008.06.elevation.aspx
- Поместите эти два файла в системный путь (или в другое удобное место в сети)
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 означает, что у вас есть консоль администратора).
Столкнулся с этой проблемой и сегодня. У меня была задача сборки NAnt, пытающаяся создать символические ссылки на компьютере. Был отклонен из-за отсутствия привилегий. Я нашел этот пост, который помог решить мою проблему: http://josh.mainelan.net/tag/mklink/.
Соответствующий раздел:
- Откройте окно запуска, введите "secpol.msc" и нажмите "ОК".
- Перейдите в папку "Параметры безопасности" \ "Локальные политики" \ "Назначение прав пользователя".
- Найдите "Создать символические ссылки" и добавьте группу "Пользователи".
Я думаю, что вам нужно перезагрузить компьютер или что-то после этого.
Запустите командную строку от имени администратора, чтобы выполнить эту команду.
Введите cmd (или команду) в меню "Пуск", щелкните его правой кнопкой мыши и выберите "Запуск от имени администратора".
Теперь любая команда, которую вы выполняете, будет выполняться с правами администратора.
Я бы порекомендовал Ultimate Windows Tweaker. Используйте его, чтобы выбрать "Показать владение", чтобы обойти проблему с разрешениями, и "Показать открытое окно команд здесь", чтобы открыть командную строку в правильной папке.