.NET Directory.Exists отрицает существование подключенного сетевого диска при запуске от имени администратора

Я пишу небольшую .NET-программу для Windows 7. Единственное, что ему нужно сделать, это создать символические ссылки, что, кажется, требует от меня прав администратора. Он также должен иметь возможность работать с подключенными сетевыми дисками (например, R: \, который в моей системе сопоставляется с \\ titanium \ Private \ ).

Я использую Directory.Exists (path) , чтобы убедиться, что путь существует.

При запуске программы от имени обычного пользователя (учетная запись администратора, но не «как администратор») это отлично работает на подключенном сетевом диске.

] При запуске программы от имени администратора (с UAC) она не может найти существующие каталоги. В результате программа отказывается признать, что R: \ Steam Games \ - это реально существующий каталог.

Я немного сбит с толку, почему это происходит. Использование полного пути UNC ( \\ titanium \ Private \ Steam Games \ ) также не работает.

Кто-нибудь сталкивался с этим раньше? Есть ли хорошее обходное решение? Должен ли я форматировать пути по-разному (примечание: большинство из них в настоящее время отформатированы с помощью Path.Combine , поэтому они должны быть правильными).

Спасибо за вашу помощь.

(Например, Directory.Exists (@ "R: \ Steam Games \") возвращает false при работе от имени администратора, но эта папка существует. Вызов функции правильно возвращает истину при регулярном запуске).

Изменить: действительно проблема заключается в том, что администратор технически является другой учетной записью пользователя. Я даже не мог использовать пути UNC, потому что я был авторизован на своем файловом сервере только под своим обычным пользователем, а не под «Администратором». В качестве обходного пути (относительно хакерского) я просто запускаю свою программу с обычными привилегиями, а затем использую Process.Start для вызова экземпляра cmd.exe с аргументами для создания символической ссылки (и глагола «runas» чтобы получить приглашение UAC).

8
задан Ethan 24 July 2011 в 05:43
поделиться