Как создать ссылку в Windows 7 home premium для обычного пользователя?

87626
stephenmm

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

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

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

ОБНОВИТЬ:

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

67
Убедитесь, что c: \ backup \ data еще не существует, когда вы пытаетесь создать ссылку как администратор. David d C e Freitas 13 лет назад 0

7 ответов на вопрос

105
Hugh Allen

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

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

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

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

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

enter image description here

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

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

Обратите внимание, что в Win7 группа «Пользователи» не была видна мне до тех пор, пока в диалоговом окне «Выбор пользователей или групп» я не нажал кнопку «Типы объектов» и не добавил «группы». Jonathan Hartley 12 лет назад 2
Это не работает для меня, независимо от того, добавляю ли я своего пользователя, «Пользователи» или «Все». Я вышел из системы и перезагрузился, но в моем домашнем каталоге команда «mklink / D docs Dropbox» по-прежнему дает мне «У вас недостаточно прав для выполнения этой операции». Тот же результат, если я попробую файлы вместо каталогов. Jonathan Hartley 12 лет назад 7
Моя проблема решена ответом Брэндона Доннельсона: В дополнение к вышесказанному, пользователь, запускающий «mklink», не может быть администратором. Jonathan Hartley 12 лет назад 2
@Джонатан. не работает для меня И это кажется глупым, или, может быть, я неправильно понимаю. Windows 7 не позволяет администратору создавать символические ссылки, но только не администраторы после того, как администратор дает им привилегии ??? Ben 12 лет назад 0
@ Бен, я согласен, это кажется сумасшедшим. Поразмыслив, я решил свою проблему, запустив окно «cmd», щелкнув правой кнопкой мыши и выбрав «Запуск от имени администратора». Кто-то объяснил мне, что при запуске процесса Windows удаляет из него права администратора, если вы не выберете «запускать от имени администратора». На этом этапе, если вы не являетесь администратором, вы должны ввести пароль администратора. Если вы уже являетесь администратором, вам не нужно ничего вводить. Возможно, это позволило мне запустить mklink из окна cmd. Jonathan Hartley 12 лет назад 4
@ Джонатан, я думаю, ты прав. Я добился небольшого прогресса в этом вопросе для своих нужд: http://superuser.com/q/402390/123731, но сейчас я сталкиваюсь с другими проблемами (если вы хотите посмотреть :)) Ben 12 лет назад 0
это работает для создания соединений, но если я создаю sym-ссылки, я все равно получаю сообщение об ошибке о недостаточных разрешениях vlad_tepesch 8 лет назад 0
Почему окна так сложно автоматизировать? Где командная строка способ дать разрешение? mjaggard 6 лет назад 0
Чтобы включить ** GP_EDIT **, см. Это: https://superuser.com/a/105381/249349 T.Todua 5 лет назад 0
16
Jonathan Hartley

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

mklink [/D] /J junctionname filename 

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

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

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

Вы можете создать жесткую ссылку (`mklink / H`) без прав администратора, и это будет исполняемый файл. Жесткие ссылки предназначены для файлов, соединения - для каталогов, символические ссылки - для обоих (а `/ D` используется для указания того, что символическая ссылка предназначена для каталога). Brilliand 11 лет назад 11
Соединения и жесткие ссылки бесполезны для примера в OP, так как ни один из них не может указывать на сетевой диск (жесткие ссылки ограничены одним разделом, соединения ограничены локальными дисками); это может сделать только символическая ссылка или ярлык Windows. Brilliand 11 лет назад 3
11
Brandon Donnelson

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

Это полностью решило мою проблему: мой пользователь является администратором, но «mklink» не будет работать, пока я не включу учетную запись «guest», не вызову «runas / user: guest cmd», а затем не запускаю mklink из этого нового сеанса cmd. Это также требовало временного предоставления разрешений, чтобы гостевая учетная запись могла перейти в мой домашний каталог и изменить его, где я хотел использовать символическую ссылку, которая вызывает множество диалогов об ошибках, но они кажутся вредными. Jonathan Hartley 12 лет назад 1
Напомним, что «mklink» не работает для моего обычного пользователя, который является администратором, но работает и при запуске из cmd, который был «runas / user: guest cmd» (я не мог понять, какое цитирование требуется непосредственно выполнить команду mklink в качестве гостя пользователя) или когда я удаляю свою учетную запись из группы «администраторы». Jonathan Hartley 12 лет назад 0
Также стоит отметить, что * можно * успешно запустить mklink с учетной записью, имеющей права администратора. Но для этого необходимо отключить UAC. Vladimir Sizikov 10 лет назад 3
2
Matt

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

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

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

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

2
Denkkar

The above solutions didn't work for me because not only could I not create a "guest" user on my machine, I can't possibly ask all the users of my tools to do so too on their machines. Nor is it reasonable to require they use Administrator consoles.

My solution is to use: elevate.cmd and elevate.vbs

  1. Download from: http://technet.microsoft.com/en-us/magazine/2008.06.elevation.aspx
  2. Put those two files on your system path (or somewhere convenient on the network)
  3. elevate.cmd cmd /c "cd /d LINK_DIR && mklink /D LINK_NAME LINK_TARGET_PATH"

Cons: elevate.cmd returns immediately but answering the UAC dialog takes time. This forced me to add a "did you ok the UAC dialog yet?" question to my script. It is possible to skip "elevate.cmd" by checking the exit code for the following command: whoami /groups | find "S-1-16-12288" (exit code 0 means you have an Adminstrator console).

1
teknikqa

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

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

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

Как уже упоминалось, SeCreateSymbolicLinkPrivilege - это то, что требуется. Однако даже если вы являетесь администратором Windows 7, большинство программ не запускаются с правами администратора. Чтобы получить административные привилегии для программы, выполните шаги, которые я упомянул выше. teknikqa 14 лет назад 0
Я думаю, что он знает о работе в качестве администратора, поэтому он задает вопрос barlop 6 лет назад 0
-5
outsideblasts

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

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

Установил, открыл проводник и щелкнул правой кнопкой мыши по папке, которую нужно связать, и «вступил во владение», после чего открыл окно команд отсюда. Запустил вышеуказанную команду mklink и снова получил ту же ошибку. stephenmm 14 лет назад 0
О, хорошо, стоит попробовать. Как недавний пользователь Windows -> Linux, я могу полностью сочувствовать вещам, которые не работают и не зная, почему. Удачи. outsideblasts 14 лет назад 0
По иронии судьбы, ни принятие прав собственности, ни показ командной строки не дают вам прав администратора. Прямо как в Linux. surfasb 12 лет назад 5
-1 Попробуйте сами, прежде чем публиковать, тогда вы увидите, что это не работает barlop 6 лет назад 0