2010-07-14 47 views
3

我想优化一个登录脚本,使其尽可能健壮和快速地执行。在Powershell中映射驱动器的“更好”方法是什么?

脚本注册多个驱动器,我可以看到我可以使用:

(New-Object -ComObject WScript.Network).MapNetworkDrive("X:", \\myserver\myshare)) 

net use x: \\myserver\myshare 

要映射驱动器。

哪种“更好”的方式? “传统”方式似乎更加强大,但比新方法慢。

当我测试驱动器是否存在时,我也遇到了一些问题。尽管它们显示在资源管理器中,但有时在我测试时:

if (test-path x:) { write "Drive mapped already" } 

它不输出任何结果。这似乎只发生在的一些的时间,但我还没有制定出模式。

感谢,

+2

关于'测试路径X:'古怪,难道是因为你测试X:不是X:(该驱动器上即根目录)\?例如,如果驱动器'X:'上的当前目录是没有所需访问权限的目录,那么即使映射了'X:',测试也会失败? – stakx 2010-07-14 14:39:39

+0

如果你觉得我已经回答了你,请标记为答案。谢谢! – x0n 2010-08-10 20:58:30

回答

4

映射用 “net使用” 驱动器不会自动使其在PowerShell中的PSDrive来可见。不幸的是,它们不是一回事。 Test-Path只检查一个PSPath,它指向一个PowerShell提供程序,它是一个UNC路径或PSDrive(或提供者限定的文件系统:: c :)。

这是为什么powershell不是登录脚本的最佳外壳的原因之一。

-Oisin

相关问题