簡體   English   中英

管理員返回0時網絡驅動器的GetVolumeInformation

[英]GetVolumeInformation for network drives when admin returns 0

我正在使用此代碼來檢索卷序列號

    [DllImport("Kernel32.dll", SetLastError = true)]
    extern static bool GetVolumeInformation(string vol, StringBuilder name, int nameSize, out uint serialNum, out uint maxNameLen, out uint flags, StringBuilder fileSysName, int fileSysNameSize);


    public static uint GetVolumeSerial(string strDriveLetter)
    {
        uint serialNum, maxNameLen, flags;
        bool ok = GetVolumeInformation(strDriveLetter, null, 0, out serialNum,out maxNameLen, out flags, null, 0);
        return serialNum;
    }

它工作得很好,除非當我以管理員身份通過應用程序清單UAC高程運行時,它始終為映射的網絡驅動器返回0(但它可以正常工作)

也許管理員用戶由於某種原因看不到映射的驅動器(您會以相反的方式)。 有什么辦法解決這個問題,或者只是以登錄用戶的身份調用該代碼?

我在64位Windows 7上,但以x86模式運行該應用程序

映射的網絡驅動器為一個用戶映射。 當您以其他用戶身份連接時,就該其他用戶而言,該驅動器不存在。

如果您需要多個用戶訪問同一網絡路徑,請使用實際的UNC路徑(“ \\\\server\\path ”)。 映射的網絡驅動器僅為人類帶來了便利。

如果確實需要多個用戶訪問映射的網絡驅動器,則需要分別為每個用戶映射它。 例如,您可以在運行於每個用戶登錄並調用net use的批處理文件中執行此操作(不過,我不太確定它是否會對諸如SYSTEM這樣的用戶有所幫助)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM