2

Windows 7/NTFS 以降には、シンボリック リンクとジャンクションの両方があり、微妙に異なります。(この優れた一連の投稿を参照してください)。ロギング (およびデバッグ) の目的で、リモート ファイル サーバー上のジャンクションのターゲットを解決できる必要があります。このトピックに関するいくつかの投稿がありましたが、それらはローカル マシンから見たジャンクションの解決に適用されます。

では、として共有されて\\FileServerいるディレクトリがあるため、ネットワーク上では として表示されます。そのディレクトリ内には、サブディレクトリと. また、そのディレクトリ内には、またはを指すジャンクションがあります。(ターゲットは変更される可能性があります。) したがって、 では、次のことがわかります。G:\SharedPublicShare\\FileServer\PublicShareG:\Shared\SubDir1G:\Shared\SubDir2G:\Shared\JuncG:\Shared\SubDir1G:\Shared\SubDir2\\FileServer

\\FileServer\PublicShare\SubDir1
\\FileServer\PublicShare\SubDir2
\\FileServer\PublicShare\Junc

\\FileServer\PublicShareがマウントされている (Windows 用語でマッピングされている) クライアント マシンでは、 、、M:\が表示されます。そのクライアント マシンで、コンソール ( ) を開いて を実行すると、Windows は、 がジャンクションであり、ジャンクションターゲット が含まれていることを示す適切なリストを表示します。M:\SubDir1M:\SubDir2M:\Junccmd.exedir M:\M:\JuncG:\Shared\SubDirX

M:\>dir
 Volume in drive M is XXXXXXXXX
 Volume Serial Number is XXXX-XXXX

 Directory of M:\

09/05/2014  07:30 PM    <DIR>          .
09/05/2014  07:30 PM    <DIR>          ..
09/05/2014  01:36 PM    <JUNCTION>     Junc [G:\Shared\SubDir1]
09/06/2014  12:55 PM    <DIR>          SubDir1
09/05/2014  05:15 PM    <DIR>          SubDir2
               0 File(s)              0 bytes
               3 Dir(s)  1,895,493,492,736 bytes free

M:\>

したがって、このようなジャンクションのターゲットは、クライアントが明確に利用できます。 この情報をプログラムで取得する方法を知っている人はいますか?たとえば、どのシステム API を呼び出すか? ありがとう。

4

2 に答える 2

1

これはトリックを行います:

fsutil reparsepoint query "M:\Junc"

そしてそれは非常に信頼できるようです。

于 2014-09-08T14:40:59.857 に答える