我正在运行一个基于 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 次。有人可以解释一下这个问题的原因以及应该如何解决吗?
我有类似的错误消息。以下是我的历史和解决方案。
所以昨天我创建了新的 PS-Drive
$c = Get-Credential
$Drive = new-PSDrive -Name "MyDrive" -PSProvider FileSystem -Root "\\10.11.22.100\LogShare" -Credential $c -Scope global
之后我成功使用“MyDrive”
Like
get-childItem -path "MyDrive:\"
今天重启电脑后再次尝试
get-childItem -path "MyDrive:\"
but got
Get-ChildItem:找不到驱动器。名为“MyDrive”的驱动器
不存在。
尝试再次创建驱动器:
$c = Get-Credential
$Drive = new-PSDrive -Name "MyDrive" -PSProvider FileSystem -Root "\\10.11.22.100\LogShare" -Credential $c -Scope global
Now got
new-PSDrive :与服务器或共享资源的多个连接
不允许同一用户使用多个用户名。
断开之前与服务器或共享资源的所有连接
然后再试一次
作为解决方案,我删除了-凭证$c来自 New-PSDrive 命令并且它有效。
Powershell 以某种方式记住凭据并且不允许使用相同的凭据连接到共享驱动器
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)