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

如何在退出Enter-PSSession远程会话后保存变量值

获取Enter-PSSession退出后的远程会话变量值

方法1:通过远程文件传递变量

在交互式远程会话内,将变量写入远程机器的本地文件:

# 远程会话内执行
$remote_var = '3333'
$remote_var | Out-File -Path C:\temp\remote_var.txt -Encoding UTF8

退出会话后,在本地通过UNC路径读取该文件:

# 本地执行,替换RemotePC为实际远程机器名
Get-Content \\RemotePC\C$\temp\remote_var.txt

注意:确保远程机器的C:\temp目录存在,且本地账户拥有该共享路径的读取权限。

方法2:利用PSSession对象的自定义属性传递

先在本地创建并保存PSSession对象,再进入交互式会话:

# 本地执行,创建会话并保存到变量
$session = New-PSSession -ComputerName RemotePC
# 进入交互式远程会话
Enter-PSSession -Session $session

在远程会话内,将变量存入当前会话的CustomProperties集合:

# 远程会话内执行
$remote_var = '3333'
$PSSession.CustomProperties['remote_var'] = $remote_var

执行Exit-PSSession退出后,直接在本地通过之前保存的会话对象获取变量:

# 本地执行
$session.CustomProperties['remote_var']

该方法无需依赖文件,变量直接存储在本地维护的会话对象中,只要会话未关闭即可访问。

方法3:存入远程机器的环境变量(需管理员权限)

如果需要变量在远程会话重启后仍保留,可将其存入远程机器的系统环境变量(需以管理员身份操作):

# 远程会话内执行
$remote_var = '3333'
[Environment]::SetEnvironmentVariable('remote_var', $remote_var, 'Machine')

退出会话后,即使远程会话关闭,也可通过以下方式读取(仅调用一次Invoke-Command,不影响持续会话需求):

# 本地执行
Invoke-Command -ComputerName RemotePC -ScriptBlock { $env:remote_var }

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 05:22:10