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

PowerShell函数内挂载的共享驱动器无法被后续代码访问问题求助

问题原因确认

你的猜测完全正确,问题确实是PSDrive的作用域限制导致的。
默认情况下,New-PSDrive 创建的驱动器仅对当前作用域可见:当挂载命令写在函数内部时,默认作用域为函数本地,函数执行完成后挂载的M盘会被自动回收,因此后续的Make_Dir函数、Windows资源管理器都无法识别该挂载盘。

解决方案

方案1:指定全局作用域(推荐,不改动现有函数结构)

在Mount_Drive函数的New-PSDrive命令中添加-Scope Global参数,让挂载的驱动器在整个PowerShell会话生命周期内生效,所有函数都可以正常访问:

function Mount_Drive {
    Clear-Host
    Write-Host "Mounting drive..." -NoNewLine -ForegroundColor Yellow
    # 添加-Scope Global参数
    New-PSDrive -Name "M" -Root "\\192.168.1.10\f" -PSProvider "FileSystem" -Credential $S_Creds -Scope Global
    Write-Host "Done" -ForegroundColor Green
}

如果你需要让该挂载盘在Windows资源管理器中也可见,再额外添加-Persistent参数即可,二者配合使用就能实现和GUI手动挂载一致的效果。

方案2:取消函数封装

和你姊妹系统上的可用脚本保持一致,直接在脚本的全局作用域执行New-PSDrive挂载命令,不封装到函数中,也可以规避作用域限制问题。

注意事项
  • 若使用-Persistent参数,该网络挂载会被系统保留,用户下次登录时会自动重新挂载,不需要持久化可以省略该参数。
  • 如果挂载时使用的凭据和当前登录Windows的凭据不同,资源管理器中默认不会显示该挂载盘,属于Windows的安全机制限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 22:36:04