Windows域中PowerShell远程功能验证:额外排查项及规则疑问
Windows域环境下PowerShell远程功能故障排查补充要点及规则说明
一、现有Pester测试外的补充排查项
除你已覆盖的Pester测试内容,还需检查以下关键项:
- WinRM服务启动类型:确保WinRM服务设置为自动启动,避免系统重启后服务未运行。
(Get-Service -Name 'WinRM').StartType | Should -Be 'Automatic' - WinRM监听端口配置:确认WinRM默认的5985(HTTP)或5986(HTTPS)端口已正常监听,无端口占用情况。
Get-WSManInstance -ResourceURI winrm/config/listener | Should -Not -BeNullOrEmpty # 检查端口占用状态 Get-NetTCPConnection -LocalPort 5985,5986 | Should -Not -BeNullOrEmpty - 用户权限与组策略:验证执行远程操作的用户是否属于Remote Management Users组,或通过组策略被授予WinRM访问权限。
# 检查用户所属组 Get-LocalGroupMember -Group 'Remote Management Users' | Should -Contain $env:USERNAME # 查看PSSession配置的权限列表 Get-PSSessionConfiguration -Name Microsoft.PowerShell | Select-Object -ExpandProperty Permission - Kerberos认证有效性(域环境):域内PowerShell远程默认用Kerberos,需确认客户端与目标机器的Kerberos票据有效,无时钟偏移或DNS解析错误。
Test-WSMan -ComputerName <目标主机名> -Authentication Kerberos | Should -BeTrue - WinRM信任主机列表:跨域或非域环境下,需确认目标主机已添加到本地WinRM的信任列表。
Get-Item WSMan:\localhost\Client\TrustedHosts | Select-Object -ExpandProperty Value - HTTPS防火墙规则:若使用WinRM over HTTPS,需检查
WINRM-HTTPS-In-TCP规则是否按需启用并配置正确。 - PowerShell执行策略:目标主机的执行策略需允许远程脚本运行,至少设置为
RemoteSigned。Get-ExecutionPolicy -Scope LocalMachine | Should -Be 'RemoteSigned'
二、关于WINRM-HTTP-In-TCP-NoScope规则的说明
是的,WINRM-HTTP-In-TCP-NoScope规则正是通过执行Enable-PSRemoting -SkipNetworkProfileCheck命令创建的。
使用-SkipNetworkProfileCheck参数时,系统会跳过当前网络连接profile的安全检查(比如公共网络默认禁止WinRM),但为了避免过度暴露风险,不会直接开放WINRM-HTTP-In-TCP规则到公共网络,而是创建这个限制范围的规则——它仅允许本地主机发起的WinRM连接,不会对外暴露服务,以此在跳过网络profile检查的同时维持基础安全性。
内容的提问来源于stack exchange,提问作者Dennis
相关产品推荐
相关产品推荐

