在login时使用VBScript更改映射驱动器的位置

我有一个由组策略应用的脚本,在用户login时运行,以删除特定的映射驱动器(如果存在),然后重新映射它们。 这是一个脚本的例子:

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 

当我通过双击运行它时,脚本就起作用了。 如果我将strRemotePath1variables更改为“\ LocationB \ hr”,则在双击运行脚本时进行更改。 驱动器被删除,然后重新添加新的位置。 我知道,由于GPMT工具的“最后一次运行”时间,我login时脚本正在运行。

但是,每次login时,该驱动器都会回到原来的位置。 这些脚本是否caching?

尝试在删除驱动器和添加驱动器之间添加延迟。

 wscript.sleep 300 

看看是否有帮助。

我第二次WScript.Sleep,但你甚至可以尝试更长的时间。 我最近有一个脚本注意文本文件放在一个文件夹中。 等等,我想,300它仍然跳过文件。 我碰到了1000(一整秒),它解决了我的问题。

简单一点。 只需删除H驱动器并重新创build它。 如果H驱动器不存在,则“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中创build了另一个脚本,它将它映射到我不知道的旧位置。 我解决了这个问题,当然,它工作得很好。

谢谢您的帮助。