如果我調用函數WNetGetUniversalName()
從當前會話中映射的驅動器獲取UNC路徑,則該函數將成功。從模擬後的映射驅動器號獲取UNC路徑
但是......
- 如果我創建通過調用
LogonUser()
一個新的登錄sesssion(登錄用戶是作爲創造者的過程相同) - 模擬與登錄用戶通過調用函數
ImpersonateLoggedOnUser()
- 並再次調用
WNetGetUniversalName()
,該函數返回錯誤2250(ERROR_NOT_CONNECTED
)
的事情是I S應該將這個過程作爲服務運行(在SYSTEM帳戶中),因此我可能需要模擬用戶以獲取該用戶的映射驅動器和關聯的網絡路徑。正如我檢查,信息不能跨用戶會話訪問。
Windows在哪裏存儲此信息,以便在用戶重新登錄時重新映射驅動器?我發現映射的網絡路徑歷史記錄保存在註冊表下的關鍵字HKEY_USERS\<User SID>\Software\Microsoft\Windows\CurrentVersion\Explorer\Map Network Drive MRU
中,但它並不表示在用戶登錄時是否映射UNC路徑以及關聯的驅動器號。
請幫忙。
有沒有一個地方Windows存儲此信息,這取決於您的網絡設置。 驅動器通常通過組策略或通過登錄腳本進行映射。 – gnud 2011-04-27 08:26:12