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