我正在尝试优化登录脚本,使其尽可能健壮且快速执行。
该脚本记录了许多驱动器,我可以看到我可以使用:
(New-Object -ComObject WScript.Network).MapNetworkDrive("X:", \\myserver\myshare))
或
net use x: \\myserver\myshare
映射驱动器。
哪种“更好”的方式? “传统”方式似乎更强大,但比新方法慢。
当我测试驱动器是否存在时,我也遇到了一些奇怪的问题。即使它们在资源管理器中显示,有时当我测试时:
if (test-path x:) { write "Drive mapped already" }
它不会输出任何结果。这似乎只发生了某些,但我还没有解决这个问题。
谢谢,
本
答案 0 :(得分:4)
使用“net use”映射驱动器不会自动使它在PowerShell中作为PSDrive显示。不幸的是,它们不是一回事。 Test-Path只检查PSPath,它是一个UNC路径或一个指向powershell提供者的PSDrive(或类似于filesystem :: c :)的提供者限定。
这是为什么powershell不是登录脚本的最佳shell的原因之一。
-Oisin