为什么我的login脚本不能在Windows 7下映射驱动器?
我正在使用类似于下面的VBScript脚本。 该脚本使用组策略运行。
Dim WshNetwork Set WshNetwork = WScript.CreateObject("WScript.Network") WshNetwork.MapNetworkDrive "g:", "\\\Saturn\data\" WshNetwork.MapNetworkDrive "k:", "\\\Saturn\stuff\"
它适用于Windows XP。
更新:在本地复制脚本并运行它运行良好,所以我怀疑组策略没有在Windows 7上运行脚本。
在启用UAC的情况下,无法映射使用组策略对象(GPO)分配的login脚本中的驱动器。 GPOlogin脚本确实运行,但在不同的安全上下文中,映射丢失。
Microsoft提供了一个示例脚本,名为launchapp.wsf ,通过在正确的安全上下文之后运行实时login脚本来解决此问题。
它在这里可用: http : //technet.microsoft.com/en-us/library/cc766208(WS.10).aspx
请查找标题为“组策略脚本可能由于用户帐户控制而失败”的部分以及附录A,这是“ launchapp.wsf的源代码。
launchapp.wsf确实解决了在启用了UAC的Vista(和Windows 7)个人电脑上映射驱动器的问题。 但是,它会导致另一个问题:在Windows XP中不起作用,所以XP计算机显示错误而不是运行login脚本。
幸运的是,XP电脑并不需要bootchapp破解,所以我的公司做了一个修改版的launchapp,试图以Vista的方式做事,但如果失败了(因为你正在运行XP),它只是直接启动真正的login脚本。 我无法与你分享,因为它是我公司的内部(有真正的服务器名称等),但这并不难。
使用EnableLinkedConnectionsregistry设置可能不是一个好主意 – 微软在该知识库中特别指出,它不受支持 – 这一定会在以后给你带来悲伤。 我在这里写了一个解决scheme: http : //pcloadletter.co.uk/2010/05/15/missing-network-drives/
我强烈怀疑你的脚本运行良好。
我打赌你的用户是pipe理员,并且因为你有用户帐户控制启用用户的筛选标记,运行资源pipe理器,不能访问login脚本运行时“映射”的“驱动器”。
如果你不打算使用组策略首选项,那么你有两个select:
使用户标准用户。 这是我的select,但对于大多数人来说似乎太难处理了。
将EnableLinkedConnectionsregistry值更改为“1”(有关详细信息,请参阅http://support.microsoft.com/default.aspx?scid=kb;EN-US;937624 )。
您创build的确切脚本在Windows 7上可以正常工作,只要将初始反斜杠变为双精度型即可。 所以你试着映射\\saturn\data 。 (使用反引号来保存你的代码格式。)
当您通过双击运行而不是作为启动脚本运行时,此脚本是否会产生任何错误?
我怀疑缺less斜杠,但是我build议放弃脚本,只要您有一台Windows 7 / Windows Vista / Windows Server 2008机器,您现在可以使用组策略首选项。
您将需要通过Windows Update在所有工作站上安装首选项客户端,但它使映射驱动器比脚本更容易。 本文是一个很好的总结(比technet上的更好)总结如何去做:
Windows 2003域(和Windows 2008域)中的组策略首选项
另一方面,我从来没有喜欢从Windows XP的映射驱动器(是的,我知道有时你必须)。 您还应该考虑开始向用户介绍如何将最喜欢的networking位置添加到操作系统。 Windows 7上的库function使得这一切变得非常简单,一旦build立起来,我发现大多数用户更喜欢将其映射到映射的驱动器上,等它们抵达初始阻力时)。