PowerShell远程会话不支持直接挂载本地磁盘,但可通过三种方式等效实现:一、UNC共享+远程访问;二、New-PSDrive映射UNC为驱动器;三、Copy-Item -ToSession预传输文件。
powershell 远程会话本身不支持直接“挂载”本地磁盘目录到远程计算机的文件系统(比如像 linux 的 mount 或 windows 的 net use 那样映射为驱动器),因为远程会话运行在远程 powershell 引擎中,其进程上下文属于远程操作系统,无法自动暴露本地物理磁盘路径。
但你可以通过以下三种实用方式实现等效效果:把本地目录内容安全、可控地提供给远程会话使用。
一、用 UNC 共享 + 远程访问(推荐用于域/可信内网)
前提:本地机器已启用 SMB 共享,并配置好网络发现与防火墙规则。
- 在本地 Windows 上共享一个文件夹(如
C:LocalData),设共享名为DataShare - 确保远程计算机能通过
\<本地IP>DataShare访问(建议用固定 IP 或主机名) - 在远程 PowerShell 会话中,直接使用 UNC 路径操作:
# 进入远程会话后执行 Get-ChildItem \192.168.1.100DataShare Copy-Item \192.168.1.100DataShareconfig.json C:Temp
✅ 优点:无需复制文件,实时读写;支持 Copy-Item、Invoke-Command 中调用
⚠️ 注意:远程账户需有该共享的读写权限;若跨域或无信任关系,需显式提供凭据(用 New-PSDrive -Credential)
二、用 New-PSDrive 映射 UNC 路径为远程驱动器(提升可读性)
在远程会话内部,可临时映射 UNC 路径为一个驱动器号(仅对当前会话有效):
# 在 Enter-PSSession 后执行 New-PSDrive -Name Z -PSProvider FileSystem -Root "\192.168.1.100DataShare" -Persist Z: dir
? –Persist 参数让映射在资源管理器中也可见(需远程用户交互登录);不加则仅 PowerShell 会话内有效。
? 若共享需要认证,加上 -Credential (Get-Credential)。
三、用 Copy-Item -ToSession 预先传输文件(适合一次性任务)
不依赖网络共享,适合非域环境或临时调试:
$session = New-PSSession -ComputerName RemoteServer -Credential $cred
Copy-Item C:LocalData*.ps1 -Destination C:RemoteScripts -ToSession $session
Invoke-Command -Session $session -ScriptBlock {
Set-Location C:RemoteScripts
& .deploy.ps1
}
Remove-PSSession $session✅ 安全隔离;无需开放 SMB 端口
❌ 文件需提前复制,不适用于大目录或动态更新场景
PowerShell 没有“远程挂载本地磁盘”的底层机制,本质是网络文件访问或数据传输。选哪种方式,取决于你的网络拓扑、安全策略和使用频率。内网可信环境优先走 UNC 共享;离线或受限网络用 Copy-Item -ToSession 更稳妥。


















