登录
首页 >  文章 >  软件教程

PowerShell远程连接技巧:Enter-PSSession教程

时间:2026-04-10 09:00:43 412浏览 收藏

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

Windows怎么用PowerShell远程管理_Windows如何用Enter-PSSession连接远程电脑执行命令【进阶】

如果您希望在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学习网公众号!

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>