我有一个 PowerShell v1 脚本,它通过映射驱动器连接到远程服务器并来回移动文件,远程服务器由驱动器号“M”和 UNC 路径 REMOTESERVER\DATA 标识:
(M:) \\REMOTESERVER\DATA
当远程服务器重新启动时,我认为我被搞砸了,因为现在脚本无法访问映射驱动器。
如何在 PowerShell 脚本中以编程方式处理这种情况?
有没有办法通过编写一些 PowerShell 代码来重新连接到映射驱动器?
问题不在于映射驱动器何时真正消失,而在于重新启动后需要进行身份验证,而 Windows 显然不会记住这一点。
只是好奇这是如何实现的?
答案1
有几种方法。首先,您可以使用net use
带有开关的命令在服务器上映射驱动器/persistent
,以便在登录时重新映射驱动器。其次,具体在 powershell 中,您可以使用 cmdlet 映射驱动器new-psdrive
,然后以这种方式引用驱动器,您甚至不需要驱动器号。
如果您选择第二种选择,我会确保脚本运行的任何上下文都具有共享权限,或者如果这不可能,那么您可以将所需的凭据加密存储在文本文件中,以便脚本可以在需要时导入它们,但需要注意的是,加密是可逆的,以防有人狡猾且愿意掌握您的脚本。
http://technet.microsoft.com/en-us/library/hh849829.aspx
http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/net_use.mspx?mfr=true