Comment récupérer la cible d’une jonction ou d’un lien symbolique avec un utilisateur standard

J’essaie d’obtenir la cible d’une jonction dans mon programme, mais la seule façon dont j’ai réussi à le faire est de:

  1. Demander des privilèges de sauvegarde
  2. p-invoque CreateFile avec des parameters spéciaux pour obtenir un descripteur dans le fichier / répertoire.
  3. Appel DeviceIoControl pour obtenir la cible.

La première étape ne fonctionnera pas avec les comptes d’utilisateur normaux, car ils ne disposent pas de privilèges de sauvegarde et je ne souhaite pas obtenir la fenêtre de consentement de l’utilisateur UAC à chaque fois.

Je pense que cela est faisable en quelque sorte, car une commande “dir / A: L” normale résout la cible des liens.

Je pense que cette réponse dans stackoverflow vous aiderait? Comment accéder par programme au chemin cible d’un lien symbolique Windows? Il devrait être possible d’inclure une référence à la fonction via DllImport Atsortingbute dans le programme ac #.

Le descripteur requirejs peut être obtenu à partir d’une instance FileStream . C’est un peu drôle que ce soit marqué comme obsolète, mais peut-être que l’avertissement indique ce que vous pouvez faire d’autre.