首页/系统/Windows 运维速查/Enter-PSSession 交互式远程

Enter-PSSession 交互式远程

临时进远程 shell:加载远程会话环境,适合人工排查;生产脚本用 Invoke-Command 而不是交互式会话。

Windows 运维速查系统更新于 2026-10-13

命令是干什么的

Enter-PSSession 用于建立交互式远程 PowerShell 会话:进入后执行的命令都在远端运行,提示符会变成远端主机名,适合人工排查。会话是有状态的——变量、当前目录与已加载模块都保留在远端,直到执行 Exit-PSSession 或连接中断。

为什么脚本不该用它

自动化场景应使用 Invoke-Command:执行完即返回,不需要维持交互会话,也不会因为网络抖动把命令留在半途。把 Enter-PSSession 写进脚本的典型问题是命令还没结束会话就退出,导致远端资源长期占用与后续连接失败。

基本信息

适用平台Windows 7/10/11 与各 Server,PowerShell 2.0 及以后
权限要求目标机需已启用 PSRemoting;跨域或工作组场景需额外信任配置
语法Enter-PSSession -ComputerName 主机 [-Credential (Get-Credential)]
退出与会话Exit-PSSession 退出;Get-PSSession 查看活动会话

典型使用场景

  • 人工排查远程主机问题,需要像在本地一样敲命令
  • 在远端环境里测试脚本片段,避免反复上传文件
  • 临时查看远端服务、日志与目录结构
  • 跨主机复现问题,验证是否与环境相关
  • 协同排障时共享实际操作过程

常用示例

常用示例
Enter-PSSession -ComputerName app01
# 以下命令在远端执行
$env:COMPUTERNAME
Get-Service | Where-Object Status -eq 'Stopped' | Select-Object -First 10
Get-PSSession                      # 查看现有会话
Exit-PSSession                     # 用完必须退出,否则会话一直占用

相关命令读法

命令作用注意
Enter-PSSession进入交互式远程会话同一时间只能有一个活动会话
Invoke-Command在远端执行并返回结果自动化场景的首选
New-PSSession建立可复用的持久会话适合多命令连续执行
Get-PSSession查看现有会话用于排查残留会话占用
Exit-PSSession退出交互会话用完必须执行
-Credential指定连接凭据用户名格式随环境不同
交互式会话是有状态的:变量与当前目录都保留在远端,用完记得 Exit,否则会话会一直占用资源。
不要在交互式会话里启动长任务:网络抖动或客户端关闭会中断连接,远端命令可能停在半途且状态不明。确有长任务需求时,改用 Invoke-Command 或后台作业来执行。

易错点

  • 交互式会话里跑长任务,断线后命令中断且状态不明
  • 跨域或工作组凭据格式约定不同,用户名要写对(域\账号)
  • 忘记 Exit-PSSession 会残留会话,逐步耗尽目标机的连接资源
  • 把交互式会话写进自动化脚本,脚本会卡在等待输入处

数据来源与参考

  • Microsoft Learn:Enter-PSSession

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌