通过PowerShell PSRemote挂载网络共享异常问题
解决远程创建PowerShell驱动器异常的问题
问题分析
远程执行New-PSDrive创建的驱动器仅在当前脚本局部作用域可见,导致后续访问时找不到路径,且Provider字段显示为空。另外PowerShell会话作用域和系统网络映射机制存在差异,也会引发这类问题。
解决方案
方案1:使用net use命令(更稳定)
修改test2.ps1为以下内容,直接通过Windows系统命令映射网络驱动器:
# 清理已存在的X盘映射(避免冲突) net use X: /delete /y # 映射网络驱动器,/persistent:no表示重启后不保留 net use X: "\\PCname\deploy" /persistent:no # 切换路径并列出内容 Set-Location X:\ Get-ChildItem
方案2:调整New-PSDrive的作用域
如果坚持使用PowerShell原生命令,需指定全局作用域确保驱动器在会话中可见:
# 先移除已存在的X盘 $drive = Get-PSDrive -Name X -ErrorAction SilentlyContinue if ($drive) { Remove-PSDrive -Name X -Force } # 创建全局作用域的文件系统驱动器 New-PSDrive -Name "X" -PSProvider "FileSystem" -Root "\\PCname\deploy" -Scope Global # 访问驱动器并列出内容 Set-Location X:\ Get-ChildItem
额外排查点
- 替换
PCname为目标机器的IP地址,规避DNS解析可能出现的问题 - 确认
Invoke-Command使用的账号拥有访问\\PCname\deploy共享的权限(远程执行的账号可能和当前登录账号不同)
内容的提问来源于stack exchange,提问作者Sfynx
相关产品推荐
相关产品推荐

