Создание символической ссылки в Windows 7 с устройства NAS

2

В настоящее время мы используем Carbonite для резервного копирования файлов. У меня есть Н.А.С. с кучей файлов, которые я бы хотел, чтобы Carbonite создавал резервные копии в дополнение к локальным файлам на машине с подпиской Carbonite.

Я попытался создать символическую ссылку для этого, но не смог заставить его работать правильно. Будет ли это работать даже для резервного копирования файлов на N.A.S. через карбонит?

Я использовал команду mklink / d "C: \ Finance Drive" "Q: \ Public \ Quick Books Data \ Finance Drive"

Есть идеи, почему это не работает?

РЕДАКТИРОВАТЬ: я зашел в профиль безопасности и указал, что группа «Пользователи» имеет разрешение на создание символических ссылок в дополнение к администраторам.

Blake
источник
1
Я рад, что ты не сдался, хорошего качества. Тестовое задание : Junction "C:\FinanceDrive2" "Q:\Public\Quick Books Data\Finance Drive"
STTR
Привет! Это на самом деле на другом компьютере, спасибо за помощь раньше. Это не позволит мне выполнить соединение, потому что один из них - это удаленный файловый сервер, соединения будут работать только с локальными папками.
Blake
1
mklink "C:\FinanceDrive" "\\<ip address>\Public\Quick Books Data\Finance Drive" /D ?
STTR
Я попробую это, как только я нахожусь в среду в офисе и сообщу, работает ли это.
Blake

Ответы:

3

Попробуйте создать ссылку на \\servername\sharename\Public\Quick Books Data\Finance Drive вместо подключенного диска Q:, На моей Windows 7 x64, оказывается, оба метода работают, однако.

Также убедитесь, что вы установили сеанс с удаленным сервером (проверьте с помощью net use ) если только это не общий ресурс Windows, который не требует учетных данных.

Кроме того, убедитесь, что ACL установлены правильно по символической ссылке сам с icacls /L, Запуск без /L не даст ожидаемых результатов. Это требует прав администратора так же, как создание символической ссылки.


Изменить 1:

Вопреки тому, что я написал в более ранней редакции этого ответа, выясняется, что объект и менеджер ввода-вывода способны понимать подключенные сетевые диски (ищите \Device\LanManRedirector символические ссылки в WinObj под одним из каталогов объектов ниже \Sessions\0\DosDevices ). Только что проверил.

Я также посмотрел это в Windows Internals, 5th edition, Russinovich et al. (страницы 924 и далее), потому что вы меня заинтересовали. Вы можете проверить с fsutil behavior query SymLinkEvaluation как символические ссылки настроены в вашей системе. По умолчанию будет (также на Vista SP2):

>fsutil behavior query SymLinkEvaluation
Local to local symbolic links are enabled.
Local to remote symbolic links are enabled.
Remote to local symbolic links are disabled.
Remote to remote symbolic links are disabled.

Только что проверил, что он работает для символической ссылки на UNC-путь или букву подключенного диска, если ACL правильно установлен на общем ресурсе, а также на символической ссылке. Однако установка слишком ограничительного списка ACL для символической ссылки приведет к сбою. Я проверил это как для старого стиля а также тот, который требует учетных данных (в моем случае на домене, в то время как я не на этом домене).

Для получения списка ACL используйте:

icacls <symlink-name> /L

Тем не менее, я также тестировал на Vista SP2 x64 только сейчас, и я столкнулся с проблемой, с которой вы столкнулись если Я использую букву диска в качестве пути назначения, хотя политика оценки символических ссылок установлена ​​так же, как для Windows 7 SP1 x64, на которой я тестировал.


Изменить 2:

В WinDbg я отслеживал, что происходит. Я сначала решил проверить mup водитель, которого я знаю, владеет LanManRedirector среди других объектов устройства. Моим отладчиком ядра была Vista SP2, которая подвергаются такое же поведение вы видите.

Первым делом я создал карту сетевого диска L: в \\server\share а затем две символические ссылки: C:\Users\user\drv-name указывая на L:\\ а также C:\Users\user\unc-name указывая на \\server\share,

Зная, что символические ссылки являются точками повторной обработки, я решил перечислить все функции драйвера NTFS ( dt ntfs!* -v ) и выберите наиболее перспективные для установки точек останова на:

kd> bp Ntfs!NtfsGetReparsePoint
kd> bp Ntfs!NtfsReparsePointName
kd> bp Ntfs!NtfsInitializeReparseFile
kd> bp Ntfs!_imp_FsRtlValidateReparsePointBuffer
kd> bp Ntfs!NtfsReparsePointString
kd> bp Ntfs!NtfsCreateReparsePointInternal
kd> bp Ntfs!NtfsGetReparsePointValue

конечно, пренебрегая тем, что драйверы файловой системы - очень деликатная вещь. О чем Windows напомнила мне настойчивой проверкой ошибок 0x24,

К сожалению, после того, как система снова заработала, обе символические ссылки работали даже на той виртуальной машине Vista SP2. Это означает, что у меня нет возможности воспроизвести проблему каким-либо последовательным образом. Это значит, что я пока не могу копать глубже.

0xC0000022L
источник
Спасибо за ваши предложения! У меня нет доступа к компьютеру сейчас, потому что он на работе, но я попробую еще раз в среду утром и сообщу, как он работает
Blake
@ Блэйк, так ... как все прошло?
David Murdoch
@DavidMurdoch Ого, я совершенно забыл проконтролировать этот пост после того, как попробовал. Честно говоря, я не помню, что случилось с ним, так как это было так долго, извините за это. Я знаю, что мы решили это как-то, но я не могу вспомнить точные средства.
Blake