列出目前使用者的映射網路驅動器的腳本
我在這裡有一個 Windows XP/Server 2003 環境,使用者使用任意驅動器號自己映射了不同的網路驅動器。其中一些使用者不知道如何分辨這些驅動器的真實 UNC 路徑,我希望能夠執行腳本或程序來查詢這些驅動器並向我顯示驅動器號和相應的 UNC 路徑。我想在該使用者的上下文中看到像“net use”這樣的輸出,這樣我就可以看到他們映射了哪些驅動器。我需要使用我自己的管理員帳戶來執行此操作,這就是困難所在。我知道這些資訊會儲存在 HKCU 系統資料庫中嗎?我希望能夠在 Powershell 中執行此操作,但是 vbscript 甚至獨立的執行檔都可以。謝謝。
您要查找的密鑰位於此處:
\\HKCU\Network
每個映射的驅動器都由一個以驅動器號命名的系統資料庫項表示。映射的屬性包含在值中 - 您最可能感興趣的是:
RemotePath REG_SZ UserName REG_SZ
密鑰只存在於持久連接,我認為您無法在系統資料庫中找到瞬態映射。
這種方法的最大問題是您必須在使用者登錄時遠端連接到使用者電腦,或者連接並列舉使用者配置文件,將它們映射到 SID,然後在 HKEY_USERS 下的相關鍵中搜尋以找到相關副本使用者蜂巢。這將是一些工作,如果你打算做很多,可能會很慢。
如果這是一個正常支持問題,那麼為什麼不向他們提供一個批處理文件的連結,該文件執行以下操作:
Net use > \\someserver\someshare\%username%.drives
然後,您只需在共享中查找 Username.drives 文件,以獲得所需內容的精確副本。將其放入登錄腳本中,您將獲得定期刷新的副本,但如果您真的不需要資訊,顯然您不想這樣做。
編輯添加 如果您想使用一些 Powershell 腳本進行此操作,Hugo Peeters 的這篇部落格文章中有一個範例腳本,它顯示瞭如何連接到遠端系統資料庫,但您必須弄清楚如何將使用者名映射到他們的 SID,這樣您可以在 HKEY_USERS 下選擇正確的密鑰。每個在目標機器上擁有配置文件的使用者都有一份 HKCU 密鑰的副本,該副本保存在一個以他們的 SID 命名的密鑰下,您需要找到正確的一個,然後從中提取網路密鑰資訊。