問題はオンライン (objNetwork.MapNetworkDrive CStr(colDrives.Item(i)), CStr(newMappingArray(j)), TRUE) で、スクリプトが実際にネットワーク ドライブの再接続を試みます。文字列として検出されないために失敗しますか?
パスとドライブ文字の周りに「」を付けただけで同じコードを使用しようとしましたが、動作するので、ここからどこに行くべきかわかりません..
コードの説明 共有名のリストを取得し、リモート パスのいずれかがドライブにマップされているかどうかを確認します。それらが存在する場合、それはそれらを通過します。それらをマップ解除し、同じドライブ文字を使用して、新しいパス参照 (現在ログインしている資格情報を使用) を使用してそれらを再マップします。
以下のコード
On Error Resume Next
''''''''''''''''''''''''''''' ARRAY SETUP '''''''''''''''''''''''''''''
DIM oldMappingArray(5)
oldMappingArray(0) = "\\DDCSHRNASP02\u_amr_project"
oldMappingArray(1) = "\\DDCSHRNASP02\U_AMS_Deployment"
oldMappingArray(2) = "\\DDCSHRNASP02\u_corp_share"
oldMappingArray(3) = "\\DDCSHRNASP02\u_dcwb_control_room"
oldMappingArray(4) = "\\DDCSHRNASP02\u_dis"
oldMappingArray(5) = "\\DDCSHRNASP02\u_dis15"
oldMappingArrayLength = UBound(oldMappingArray)
DIM newMappingArray(5)
newMappingArray(0) = "\\EUCPRDNAS02\u_amr_project"
newMappingArray(1) = "\\EUCPRDNAS02\U_AMS_Deployment"
newMappingArray(2) = "\\EUCPRDNAS02\u_corp_share"
newMappingArray(3) = "\\EUCPRDNAS02\u_dcwb_control_room"
newMappingArray(4) = "\\EUCPRDNAS02\u_dis"
newMappingArray(5) = "\\EUCPRDNAS02\u_dis15"
newMappingArrayLength = UBound(newMappingArray)
''''''''''''''''''''''''''''' WMI SETUP '''''''''''''''''''''''''''''
Set objNetwork = CreateObject("Wscript.Network")
Set colDrives = objNetwork.EnumNetworkDrives
colDrivesLength = colDrives.count
wscript.echo colDrivesLength
''''''''''''''''''''''''''''' MAIN LOOP '''''''''''''''''''''''''''''
For i=0 to colDrivesLength-1 Step 2
'Gets every other in the array, making i equal to a PATH
wscript.echo i
For j=0 to oldMappingArrayLength
'count through all of the old path names
wscript.echo j
wscript.echo "Drive Letter = " + colDrives.Item(i) 'Drive letter
wscript.echo "Current Path = " + colDrives.Item(i+1) 'Path of the Drive Above
wscript.echo "Tested Path = " + oldMappingArray(j) 'Path Currently Testing
if colDrives.Item(i+1) = oldMappingArray(j) then
'If the drive path from enumeration is equal to the old drive mapping array...
wscript.echo "Item being added -> " + colDrives.Item(i)
wscript.echo "to be mapped ---> " + newMappingArray(j)
objNetwork.RemoveNetworkDrive colDrives.Item(i), True, True
WScript.sleep 3000 'Wait 1.0 seconds
objNetwork.MapNetworkDrive CStr(colDrives.Item(i)), CStr(newMappingArray(j)), TRUE
exit For 'ends the oldMappingArrayLength loop if a match was found
End If
Next
Next
Set objNetwork = Nothing