Windows PowerShell远程管理需先启用WinRM服务并配置信任主机,再通过Enter-PSSession建立交互式会话或New-PSSession创建持久化PSSession,支持断开重连与资源清理。
在 windows powershell 基础环境中管理远程连接会话(pssession),核心是区分“交互式会话”和“持久化会话”,并掌握创建、使用、断开与清理的基本操作。不需要复杂配置就能起步,但关键步骤不能跳过。
启用远程管理是前提
目标服务器必须开启 WinRM 服务,否则所有远程会话都会失败。
- 以管理员身份打开 PowerShell,运行 Enable-PSRemoting -Force —— 它会自动启动 WinRM、配置监听器、添加防火墙规则
- 验证是否就绪:执行 winrm quickconfig,看到 “WinRM service is already running” 即表示服务已运行
- 若本地与目标不在同一域且用 HTTP(仅限内网),需设置信任主机:Set-Item WSMan:\localhost\Client\TrustedHosts -Value "192.168.1.10"(替换为实际 IP)
创建和进入交互式会话(Enter-PSSession)
适合临时登录、手动排查或快速执行几条命令,会话退出即断开。
- 直接输入:Enter-PSSession -ComputerName Server01 -Credential (Get-Credential)
- 成功后提示符变成 [Server01]: PS C:\>,所有命令都在远程执行
- 退出只需输入 Exit-PSSession 或按 Ctrl+Z
- 注意:本地与远程系统时间差不能超过 5 分钟,否则 Kerberos 认证失败
创建和复用持久化会话(New-PSSession)
PSSession 是后台保持连接的对象,支持多次调用、变量共享、跨命令数据传递,更适合脚本和批量操作。
由 ReMe 驱动的记忆管理系统,支持跨会话记忆持久化、自动应用用户偏好以及智能上下文压缩...
- 新建并保存会话:$s = New-PSSession -ComputerName Server01 -Credential (Get-Credential)
- 在该会话中运行命令:Invoke-Command -Session $s -ScriptBlock { Get-Service WinRM }
- 导入远程模块到本地(如 NetSecurity):Import-PSSession -Session $s -Module NetSecurity
- 可一次创建多个会话:$sessions = New-PSSession -ComputerName Server01,Server02
断开、重连与清理会话
持久会话默认有空闲超时(通常 10–30 分钟),但你可以主动控制生命周期。
- 断开而不销毁:Disconnect-PSSession -Session $s —— 会话仍在远程运行,可后续重连
- 重新连接交互式会话:Connect-PSSession -Session $s
- 获取远程未关闭的会话列表:Get-PSSession -ComputerName Server01
- 彻底释放资源(推荐用完即清):Remove-PSSession -Session $s 或 Remove-PSSession -Name *










