Как получить цель Junction или Symlink со стандартным пользователем
Я пытаюсь получить цель соединения в моей программе, но единственный способ, которым мне удалось это сделать, это:
- Запрос привилегий резервного копирования
- p-вызвать CreateFile со специальными параметрами, чтобы получить дескриптор файла / dir.
- Вызов DeviceIoControl для получения цели.
Первый шаг не будет работать с обычными учетными записями пользователей, поскольку у них нет прав на резервное копирование, и я не хочу получать окно UAC User Consent каждый раз, когда я делаю это.
Я думаю, что это как-то выполнимо, потому что обычная команда "dir /A:L" разрешает цель ссылок.
1 ответ
Я думаю, что этот ответ в stackru поможет вам? Как получить программный доступ к целевому пути символьной ссылки Windows? Должна быть возможность включить ссылку на функцию через атрибут DllImport в программе aC#.
Требуемый дескриптор можно получить из экземпляра FileStream. Несколько забавно, что оно помечено как устаревшее, но, возможно, в предупреждении указано, что еще можно сделать.