文档首页> 技术教程> PowerShell Remoting:远程桌面之外的运维入口

PowerShell Remoting:远程桌面之外的运维入口

发布时间:2026-07-05 11:16        更新时间:2026-07-06 02:52
远程桌面适合点鼠标,批量执行命令、跑脚本、改配置这类活,PowerShell Remoting 更顺手。它基于 WinRM 服务走 5985/5986 端口,不占用 3389,也不依赖图形会话。 准备条件 两端均为 Windows Server,网络互通,手上有目标机的管理员账号。目标机要开启 WinRM;本机 PowerShell 系统自带,无需安装。第一次配置建议安排在业务低峰:启用 WinRM 会重启服务并改动防火墙,虽然不中断业务,改完也要留几分钟验证通道,别赶在发布前动手。动手前可以先探测服务在不在:Test-WSMan -ComputerName 192.168.1.10 返回版本信息即通道可用。 第一步:目标机启用 以管理员身份打开 PowerShell,执行: Enable-PSRemoting -Force 这条命令会启动 WinRM 服务、设为自启并配好防火墙规则。域环境下通常直接可用;工作组环境还需在两边执行: Set-Item WSMan:\localhost\Client\TrustedHosts -Value "192.168.1.10" 把对方地址加进信任列表,值写具体 IP,不要偷懒写成星号。 第二步:从本机连接 Enter-PSSession -ComputerName 192.168.1.10 -Credential 管理员账号 输完密码,提示符变成以 [192.168.1.10] 开头,之后的命令都在远端执行,输入 Exit 退出会话。不进交互模式、只想跑一条命令,用 Invoke-Command -ComputerName 192.168.1.10 -ScriptBlock { hostname }。 连上之后的高频动作 远程重启:Restart-Computer -ComputerName 192.168.1.10 -Force。结束进程:Invoke-Command -ComputerName 192.168.1.10 -ScriptBlock { Stop-Process -Name notepad -Force }。互拷文件先建持久会话 $s = New-PSSession -ComputerName 192.168.1.10,再 Copy-Item -ToSession $s -Path D:\tools\a.zip -Destination C:\temp。 验证与安全边界 能进入会话并返回结果即配置生效。报错时先分清方向:提示 WinRM 无法处理请求,在目标机跑 winrm enumerate winrm/config/listener 确认监听器存在,再核对 TrustedHosts 有没有写进对方地址;提示拒绝访问,多数是账号不在管理员组,或密码带特殊字符没加引号。命令行能配的通道,问题基本都在配置,不在网络。安全上另外记四条:5985 基于 HTTP,公网直连风险高,建议改走 5986 的 HTTPS 方式或经内网访问;防火墙上把 WinRM 放行规则限定到运维网段,Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP" -RemoteAddress 10.0.0.0/24;TrustedHosts 保持最小列表;不用远程管理的机器干脆停掉 WinRM,用的时候再开。 多台机器批量执行时,把 ComputerName 换成机器名数组,Invoke-Command 会并发跑完再汇总结果,这是远程桌面给不了的效率。