PowerShell远程连接技巧:Enter-PSSession教程
时间:2026-04-10 09:00:43 412浏览 收藏
本文系统讲解了在Windows环境中使用PowerShell进行远程管理的核心实践,涵盖从启用WinRM服务、配置可信主机、建立交互式远程会话(Enter-PSSession)到高效执行单次或多台批量命令(Invoke-Command)的完整流程,并提供了针对连接失败时常见问题(如服务未启动、防火墙拦截、认证失败等)的精准排查与解决方案,帮助系统管理员和IT运维人员安全、稳定、高效地实现跨主机自动化管理。

如果您希望在Windows系统中通过PowerShell远程连接另一台计算机并执行命令,则需确保目标主机已启用PowerShell远程处理功能,并配置了正确的网络与权限策略。以下是实现此操作的具体步骤:
一、启用远程目标主机的PowerShell远程处理服务
PowerShell远程管理依赖WinRM(Windows Remote Management)服务,该服务默认在大多数Windows客户端版本中处于禁用状态,必须手动启用并配置监听器。
1、以管理员身份运行PowerShell。
2、执行命令:Enable-PSRemoting -Force,该命令将启动WinRM服务、设置其为自动启动、创建防火墙规则并注册必要配置。
3、验证WinRM监听器是否已就绪:运行 winrm enumerate winrm/config/listener,确认输出中包含类似“Transport = HTTP”或“HTTPS”的监听条目。
二、配置目标主机的信任主机列表(适用于非域环境)
当远程主机不在同一Active Directory域中时,本地PowerShell会因证书或身份验证策略拒绝连接;此时需将目标IP或主机名添加至本地受信任的主机列表。
1、在本地控制端PowerShell中执行:Set-Item WSMan:\localhost\Client\TrustedHosts -Value "192.168.1.100" -Force(将IP替换为目标主机实际地址)。
2、如需添加多个地址,使用逗号分隔:Set-Item WSMan:\localhost\Client\TrustedHosts -Value "192.168.1.100,192.168.1.101" -Force。
3、查看当前可信主机列表:Get-Item WSMan:\localhost\Client\TrustedHosts。
三、使用Enter-PSSession建立交互式远程会话
Enter-PSSession命令启动一个持久的、交互式的远程PowerShell会话,所有后续输入均在远程主机上下文中执行,适合需要多步连续操作的场景。
1、确保已获取目标主机的管理员凭据,或当前用户具备远程管理权限。
2、执行:Enter-PSSession -ComputerName 192.168.1.100 -Credential (Get-Credential),系统将弹出凭据窗口要求输入用户名和密码。
3、成功连接后,命令行提示符将变为 [192.168.1.100]: PS>,表示当前处于远程会话中。
4、输入任意PowerShell命令(如 Get-Service WinRM),结果即时返回并运行于远程主机。
5、退出会话:键入 Exit-PSSession 或按 Ctrl+Z 后回车。
四、使用Invoke-Command执行单次或批量远程命令
Invoke-Command无需维持持续会话,适用于一次性任务或向多台主机并行下发指令,资源开销更低且更易脚本化。
1、对单台主机运行命令:Invoke-Command -ComputerName 192.168.1.100 -ScriptBlock { Get-Process | Where-Object CPU -gt 100 } -Credential (Get-Credential)。
2、对多台主机并行执行相同命令:Invoke-Command -ComputerName "192.168.1.100","192.168.1.101" -ScriptBlock { hostname } -Credential $cred($cred需预先通过Get-Credential赋值)。
3、从本地文件导入脚本块:$script = Get-Content .\remote-task.ps1 -Raw; Invoke-Command -ComputerName 192.168.1.100 -ScriptBlock ([scriptblock]::Create($script)) -Credential $cred。
五、解决常见连接失败问题
连接中断或认证拒绝通常源于网络层、服务状态或安全策略限制,需逐项排查。
1、检查WinRM服务状态:在目标主机上运行 Get-Service WinRM,确认状态为“Running”。
2、测试WinRM连通性:Test-WsMan 192.168.1.100,若返回详细配置信息则证明基础通信正常。
3、验证防火墙放行:确保入站规则“Windows Remote Management (HTTP-In)”在目标主机的专用/公用配置文件中已启用。
4、处理NTLM/Kerberos认证错误:在非域环境中,可临时启用NTLM:Set-Item WSMan:\localhost\Service\Auth\Negotiate -Value $true,但须知此举降低安全性。
以上就是《PowerShell远程连接技巧:Enter-PSSession教程》的详细内容,更多关于的资料请关注golang学习网公众号!
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
488 收藏
-
421 收藏
-
216 收藏
-
122 收藏
-
210 收藏
-
447 收藏
-
350 收藏
-
472 收藏
-
222 收藏
-
199 收藏
-
466 收藏
-
494 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习