使用New-PSDrive映射网络驱动器的问题

时间:2015-05-09 18:16:51

标签: powershell network-drive copy-item

我正在运行基于PowerShell的多线程应用程序,其中每个线程(.net任务)需要使用不同的凭据将一堆文件从一台机器复制到另一台机器。 这是在每个.net任务中运行的脚本

New-PSDrive -Name tid -PSProvider FileSystem -Root \\sname\c$\Users\<Uname>\Appdata\Local\temp\<myapp>\tid -Credential $cred
Copy-Item -Source c:\test\* tid:\
Remove-PSDrive -Name tid

在任何时候都可能有许多任务执行此脚本。大部分时间它工作正常,文件被复制。偶尔我在映射网络驱动器时看到这个错误:

  

同一用户与服务器或共享资源的多个连接,   不允许使用多个用户名。断开所有连接   先前与服务器或共享资源的连接,然后重试

出于测试目的,我的所有任务都获得了相同的凭证。无法解释为什么如果错误字符串出现多个连接的问题,每次都不会发生此错误。

将20个并行脚本运行15次(总共300次)并且看到此错误6次。有人可以解释这个的原因以及如何解决这个问题,

1 个答案:

答案 0 :(得分:0)

我有类似的错误消息。以下是我的历史和解决方案。 所以昨天我创建了新的PS-Drive

$c = Get-Credential
$Drive = new-PSDrive -Name "MyDrive" -PSProvider FileSystem -Root "\\10.11.22.100\LogShare" -Credential $c -Scope global

之后,我成功使用了“ MyDrive”

get-childItem -path  "MyDrive:\"

今天,重新启动PC后,再次尝试

get-childItem -path  "MyDrive:\"

但是得到了

  

Get-ChildItem:找不到驱动器。名称为“ MyDrive”的驱动器   不存在。

试图再次创建驱动器:

$c = Get-Credential
$Drive = new-PSDrive -Name "MyDrive" -PSProvider FileSystem -Root "\\10.11.22.100\LogShare" -Credential $c -Scope global

现在有了

  

new-PSDrive:通过以下方式与服务器或共享资源建立多个连接   不允许同一用户使用多个用户名。   断开与服务器或共享资源的所有先前连接   然后重试

作为一种解决方案,我从New-PSDrive命令中删除了-凭据$ c ,它可以正常工作。

Powershell会以某种方式记住凭据,并且不允许使用相同的凭据连接到共享驱动器