您好,登錄后才能下訂單哦!
這篇文章主要介紹“怎么用vbs找到映射到共享的所有驅動器并重新映射它們”,在日常操作中,相信很多人在怎么用vbs找到映射到共享的所有驅動器并重新映射它們問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么用vbs找到映射到共享的所有驅動器并重新映射它們”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
嗯,不論是好是壞,并沒有可以自動重新映射網絡驅動器的方法;因此,我們不得不退而求其次找出其他解決方法。但這并不是太槽糕:我們可以找到符合條件的所有驅動器,取消映射這些驅動器,然后將每個驅動器重新映射到新的位置。
當然,這聽起來挺復雜,但實際上很簡單。以下腳本可用來查找映射到 \\server1\share 的所有驅動器,并將這些驅動器重新映射到 \\server2\share:
Set objNetwork = CreateObject("Wscript.Network")
Set colDrives = objNetwork.EnumNetworkDrives
For i = 0 to colDrives.Count-1 Step 2
If colDrives.Item(i + 1) = "\\server1\share" Then
strDriveLetter = colDrives.Item(i)
objNetwork.RemoveNetworkDrive strDriveLetter
objNetwork.MapNetworkDrive strDriveLetter, "\\server2\share"
End If
Next
該腳本將首先創建 Wscript.Network 對象實例。我們應當注意到了,無論何時當我們要映射或取消映射網絡驅動器時,都需要使用 Windows Script Host,這是因為 WMI 沒有任何映射或取消映射驅動器的方法。沒關系,這只不過意味著我們的腳本必須在本地計算機上運行。通常情況下都不能針對遠程計算機來使用 WSH 方法。這是一個您不得不面臨的限制。(有一個方法可解決此問題:將該腳本作為登錄腳本運行。登錄腳本將始終在本地運行。)
創建 Network 對象之后,調用 EnumNetworkDrives 方法,以便返回計算機上的所有已映射網絡驅動器的集合:
Set colDrives = objNetwork.EnumNetworkDrives
這將使我們親眼見到那個被稱為已映射網絡驅動器集合的奇特的小東西。今天我們就不詳細介紹此集合的體系結構了,請參閱關于網絡驅動器的上一個專欄。只需說明每個已映射的驅動器實際占用此集合中的兩項:第一項為驅動器號,第二項為 UNC 路徑。如果計算機上有三個已映射的驅動器,則集合內容將如下所示:
X:
\\server1\share1
Y:
\\server2\share2
Z:
\\server3\share3
這就是我們必須使用看起來這么奇怪的 For Next 循環來遍歷集合的原因,此代碼行使我們在集合中每隔一項就跳過一項,進而確保我們僅查看各個驅動器號項:
For i = 0 to colDrives.Count-1 Step 2
然后,對于每個驅動器號,我們需要確定相應的 UNC 路徑是否為 \\server1\share1。請記住,如果查看集合中的 0 項(集合中的第一項的索引號為 0),則看到的是驅動器號,相應的 UNC 路徑將為該索引號 (0) 加 1。因此,我們用如下代碼來確定第一個驅動器是否正好被映射到 \\server1\share1:
If colDrives.Item(i + 1) = "\\server1\share" Then
讓我們假定就是這樣。在這種情況下,我們需要獲取驅動器號(0 項),并將該值存儲在名為 strDriveLetter 的變量中。然后,調用 RemoveNetworkDrive 方法來取消映射該驅動器,再調用 MapNetworkDrive 方法將同一驅動器號重新映射到新的共享:
objNetwork.MapNetworkDrive strDriveLetter, "\\server2\share"
不,這并不是所謂的“引爆點”,因為您剛剛推翻了試圖遵循這一切的想法。我們知道是有點混亂,但這是由于已映射網絡驅動器集合的特殊構造方式而造成的。如果這對于您沒有任何意義,盡管忽略它好了,您應當看到事情整體上是有邏輯性的。也許,是有點混亂的邏輯,但仍然是邏輯。
到此,關于“怎么用vbs找到映射到共享的所有驅動器并重新映射它們”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。