Как получить цель Junction или Symlink со стандартным пользователем

Я пытаюсь получить цель соединения в моей программе, но единственный способ, которым мне удалось это сделать, это:

  1. Запрос привилегий резервного копирования
  2. p-вызвать CreateFile со специальными параметрами, чтобы получить дескриптор файла / dir.
  3. Вызов DeviceIoControl для получения цели.

Первый шаг не будет работать с обычными учетными записями пользователей, поскольку у них нет прав на резервное копирование, и я не хочу получать окно UAC User Consent каждый раз, когда я делаю это.

Я думаю, что это как-то выполнимо, потому что обычная команда "dir /A:L" разрешает цель ссылок.

1 ответ

Я думаю, что этот ответ в stackru поможет вам? Как получить программный доступ к целевому пути символьной ссылки Windows? Должна быть возможность включить ссылку на функцию через атрибут DllImport в программе aC#.

Требуемый дескриптор можно получить из экземпляра FileStream. Несколько забавно, что оно помечено как устаревшее, но, возможно, в предупреждении указано, что еще можно сделать.

Другие вопросы по тегам