我有一个脚本,由组策略应用,在用户登录时运行以删除特定的映射驱动器(如果存在),然后重新映射它们。这是脚本的一个示例:
Option Explicit
Dim WshNetwork, objUser, objNetwork
Dim strRemotePath1
Dim strDriveLetter1
Set WshNetwork = WScript.CreateObject("WScript.Network")
Set objNetwork = CreateObject("WScript.Network")
on error resume next
strDriveLetter1 = "H:"
WshNetwork.RemoveNetworkDrive strDriveLetter1, True, True
strRemotePath1 = "\\LocationA\hr"
objNetwork.MapNetworkDrive strDriveLetter1, strRemotePath1, true
Wscript.Quit
该脚本在我通过双击运行它时起作用。如果我将 strRemotePath1 变量更改为“\LocationB\hr”,则在我双击运行脚本时会进行更改。驱动器被移除,然后重新添加到新位置。我知道当我登录时脚本正在运行,GPMT 工具的上次运行时间证明了这一点。
但是,每次我登录时,该驱动器都会回到旧位置。这些脚本是否被缓存?
尝试在移除驱动器和添加驱动器之间添加延迟。
看看是否有帮助。
我支持 WScript.Sleep,但您甚至可以尝试更长的时间。我最近有一个脚本监视放在文件夹中的文本文件。等待,我认为,300 它仍然跳过文件。我将它提高到 1000(整秒),它解决了我的问题。
让它变得简单。只需删除 H 驱动器并重新创建它。如果H盘不存在,“On Error Resume Next”会绕过错误继续执行脚本。
on Error Resume Next
设置 wn = Wscript.CreateObject ("WScript.Network")
设置 fs = WScript.CreateObject ("Scripting.FileSystemObject")
如果 fs.DriveExists("H:") = True 那么 wn.RemoveNetworkDrive "H:", true, true
wn.MapNetworkDrive "H:" , "\LocationA\hr"
麦克风
问题变得简单得令人尴尬。我在另一个 GPO 中有另一个脚本,将它映射到我不知道的旧位置。我解决了这种情况,当然,它工作得很好。
谢谢您的帮助。