You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

New-PSDrive同一凭据映射部分路径报密码错误的原因与解决

问题:相同Credential下New-PSDrive映射部分失败,提示“指定的网络密码不正确”

我使用以下PowerShell脚本映射网络驱动器:

New-PSDrive -Name X -PSProvider FileSystem -Root "$DeployLocation" -Credential $credentials
New-PSDrive -Name K -PSProvider FileSystem -Root "$autobuildSourceFiles" -Credential $credentials

执行时X盘映射成功,但K盘映射失败,报错:

InvalidOperation: The specified network password is not correct

令人困惑的是两次调用使用的是完全相同的$credentials对象,既然一次成功,密码理论上不应存在错误。

相关变量定义如下:

$DeployLocation = "\\dev-server\DevFiles\Technical\MyProjectNameHere"
$autobuildSourceFiles = "\\mainshare\build`$\Technical\MyProjectNameHere\1.0.0.94"

$credentials对应的用户对$DeployLocation拥有读写权限,对$autobuildSourceFiles拥有只读权限,权限差异应该不会导致密码错误提示。

我已尝试以下操作:

  • 调换命令调用顺序,结果仍为K盘映射失败;
  • 更换驱动器盘符(尝试过Y盘);
  • 将成功的命令替换为失败的路径,依旧失败。

注:使用的是Windows系统上的PowerShell 5.1.14393.5127版本。

请问该错误的原因是什么,如何解决?


原因分析

这个问题的核心是Windows身份验证上下文的复用规则:当你第一次用$credentials访问\\dev-server后,Windows会将该凭据缓存到对应服务器的身份验证上下文里。而第二个路径\\mainshare属于另一台服务器,此时系统可能尝试复用之前的凭据缓存,但由于两台服务器的身份验证环境差异(比如分属不同域/工作组,或SPN配置不一致),导致凭据无法跨服务器复用,进而抛出了“密码不正确”的误导性提示。

另外,路径中的build$是隐藏共享,Windows处理隐藏共享的身份验证流程存在细微差异,叠加跨服务器凭据缓存冲突,最终触发了这个错误。

解决方法

  1. 使用完整的用户名格式
    确保$credentials中的用户名采用UPN格式(如user@domain.com)或域\用户名格式(如DOMAIN\user),若为本地用户则用服务器名\用户名格式,避免系统对不同服务器的身份解析出现歧义。

  2. 清除缓存凭据后重新映射
    先清除已缓存的服务器凭据,再执行映射命令:

    # 清除dev-server的凭据缓存
    cmdkey /delete:dev-server
    # 清除mainshare的凭据缓存
    cmdkey /delete:mainshare
    # 重新执行映射
    New-PSDrive -Name X -PSProvider FileSystem -Root "$DeployLocation" -Credential $credentials
    New-PSDrive -Name K -PSProvider FileSystem -Root "$autobuildSourceFiles" -Credential $credentials
    
  3. 改用New-SmbMapping命令
    New-SmbMapping是专门针对SMB共享的映射cmdlet,在处理跨服务器身份验证时比New-PSDrive更稳定:

    New-SmbMapping -LocalPath "X:" -RemotePath "$DeployLocation" -Credential $credentials
    New-SmbMapping -LocalPath "K:" -RemotePath "$autobuildSourceFiles" -Credential $credentials
    
  4. 检查域服务器SPN配置
    若处于域环境,确认mainshare服务器的SPN(服务主体名称)配置正确,避免Kerberos身份验证失败。可使用以下命令检查:

    setspn -L mainshare
    

    确保结果包含cifs/mainshare和cifs/mainshare.domain.com(替换为实际域名)。


内容的提问来源于stack exchange,提问作者Vaccano

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 08:27:38