从多个映射的网络驱动器vbscript获取ip地址,然后使用它

从多个映射的网络驱动器vbscript获取ip地址,然后使用它,vbscript,Vbscript,我正在尝试创建一个脚本来删除漫游用户的映射网络驱动器 也就是说,如果存在与其当前子网不同的映射 例如:如果用户位于子网10.10.50上,并且已映射网络驱动器 10.10.40,映射将被删除(但它必须是通用脚本,因为我的公司几乎有50个分支/子网。 我的问题是从枚举映射驱动器获取ip地址(它使用 然后在vbscript中通过拆分操作进行拆分 Option Explicit Dim objNetwork, colDrives, i, DriveLetter, DrivePath Set objN

我正在尝试创建一个脚本来删除漫游用户的映射网络驱动器 也就是说,如果存在与其当前子网不同的映射 例如:如果用户位于子网10.10.50上,并且已映射网络驱动器 10.10.40,映射将被删除(但它必须是通用脚本,因为我的公司几乎有50个分支/子网。 我的问题是从枚举映射驱动器获取ip地址(它使用 然后在vbscript中通过拆分操作进行拆分

Option Explicit
Dim objNetwork, colDrives, i, DriveLetter, DrivePath

Set objNetwork = CreateObject("Wscript.Network")
Set colDrives = objNetwork.EnumNetworkDrives
' extra section to troubleshoot
If colDrives.Count= 0 Then
WScript.Echo "Guy's Warning: No Drive Mapped "
WScript.Quit(0)
End If

' here is where the script reads the Array

Dim DriveServer
For i = 0 To colDrives.Count -1 Step 2 ' this check the drive letter list 
DriveLetter = colDrives.item(i)  ' this follows drive letter
DrivePath = colDrives.Item(i+1)
If Len(DriveLetter) > 0 Then
DriveServer = getServerFromPath(DrivePath)
If Not Ping(DriveServer) Then
objNetwork.RemoveNetworkDrive DriveLetter, True, True
End If
End If
Next

您可以从路径
\\10.10.50.23\share
中提取服务器名或IP地址,如下所示:

Function GetServerFromPath(p)
  GetServerFromPath = Split(Mid(p, 3), "\")(0)
End Function

WScript.Echo GetServerFromPath("\\10.10.50.23\share")

到目前为止,您尝试了什么,结果与您预期的有什么不同?您好,我列举了网络映射驱动程序,然后我得到了包括驱动器号在内的枚举驱动程序列表,例如z:-\\1234\fjfkj\second line,x:-\\5532\fjjeh等。有3个映射驱动程序,问题是提取服务器na请告诉我映射的驱动器完整路径(也称为第一个名称,它为我们提供了服务器的ip地址,以便与当前本地计算机的ip地址进行比较。(我不知道如何做…(从共享映射的网络地址提取ip。亲爱的,首先感谢您的回答,但脚本对我不起作用。)(可能我做错了……:@user3088460“不工作”是一个不充分的问题描述。您得到的结果与您预期的结果有多大不同?此外,在这种网络中,您应该拥有与广告站点关联的子网,并通过特定于站点的策略映射驱动器。