当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 默认 WinRm 端口以及如何更改它们

作者:精品下载站 日期:2024-12-14 13:05:00 浏览:14 分类:玩电脑

默认 WinRm 端口以及如何更改它们


WinRM 和 PowerShell 远程处理是管理远程 Windows 计算机时的一项重要功能。就像其他服务一样,WinRM 在特定情况下侦听特定端口。在本教程中,了解这些 WinRM 端口,甚至了解如何更改它们(如果需要)。

相关:PowerShell 远程处理:终极指南

WinRM 监听器

WInRM(及其运行的端口)最重要的部分之一是 WinRM 侦听器。

WinRM 侦听器的核心是一个 Web 服务器。它使用 HTTP 和 HTTPS 进行通信,在 Windows 7 出现之前,它甚至默认使用大多数 Web 服务器使用的相同端口 80 和端口 443。

侦听器作为计算机上的一项服务运行,等待尝试建立连接,就像普通的 Web 服务器一样。

WinRm 侦听器可以以两种不同的方式侦听; HTTP 或 HTTPS。默认情况下,HTTP 的 WinRM 端口为 5985,HTTPS 的 WinRm 端口为 5986。

  • HTTP - 端口 5985
  • HTTPS - 端口 5986

相关:PowerShell 远程处理:终极指南

连接到错误端口时出错

如果您在更改端口时不添加防火墙规则,即使提供这样的端口,您也会收到相同的消息。

更改 WinRM 端口

虽然 Microsoft 建议保留默认侦听端口以实现兼容性和易用性,但您可以更改它们。当与默认端口发生冲突或防火墙限制阻止使用这些端口时,这会很有帮助。

也许您的系统已配置为通过自定义端口连接到 WinRM。当您尝试像平常一样连接时,您会收到以下错误消息:

[玩转系统] 默认 WinRm 端口以及如何更改它们

如果是这样,是时候更改服务器端的 WinRM 端口了!

要更改 WinRm 端口,您首先需要确定是否已有服务正在侦听这些端口。

追踪现有连接

要发现 Windows 计算机上正在使用哪些端口,最简单的方法是使用 netstat 工具。 Netstat 检查系统上的所有活动端口,如果活动,则返回所使用的源和目标 IP 以及端口。

要在更改 WinRm 帖子之前跟踪侦听端口,请运行 netstat -aon-aon 开关:

  • 显示所有活动连接 (a)
  • 显示打开连接的进程的进程 ID (o)
  • 不尝试解析目标 IP 的任何 DNS 名称 (n)

[玩转系统] 默认 WinRm 端口以及如何更改它们

例如,如果 Web 服务器正在侦听端口 80,您将在本地地址 列下看到一行本地地址以 :80 结尾的行。您将在此行看到连接正在使用的 PID 或进程 ID。

一旦知道 PID,您就可以使用 Get-Process PowerShell cmdlet 等引用 PID 来查找进程名称。

[玩转系统] 默认 WinRm 端口以及如何更改它们

尽管在本例中,您可以在上面看到进程名称只是System。这意味着该进程高度集成在操作系统内,并且可能内置于 Windows 中。

设置 WinRM 兼容端口

WinRM 有一个名为兼容性端口的功能。兼容性端口的存在是为了向后兼容某些仅在 HTTP 端口 80 和 HTTPS 端口 443 上工作的旧系统。如果需要更改 WinRm 以侦听这些端口,请启用兼容性侦听器。

一旦您知道端口 80 和 443 上没有运行任何其他内容,请将 WSMan 侦听器设置为使用兼容性端口(80 用于 HTTP,443 用于 HTTPS)。

Set-Item WSMan:\localhost\Service\EnableCompatibilityHttpListener -Value $true
 Set-Item WSMan:\localhost\Service\EnableCompatibilityHttpsListener -Value $true

将 WinRM 设置为侦听任何端口

如果由于某种原因,您需要配置 WinRM 以侦听非标准端口,您也可以这样做。为此:

  1. 查找侦听器名称。您可以通过使用 Get-Item cmdlet 枚举所有 WinRM 侦听器来完成此操作。下面的命令列出了当前安装的所有 (*) 侦听器。
Get-Item WSMan:\localhost\Listener*

[玩转系统] 默认 WinRm 端口以及如何更改它们

2. 接下来,使用上面显示的侦听器名称,使用 Set-Item 配置每个侦听器,提供侦听器的路径和要更改为的端口号。

Set-Item WSMan:\localhost\Listener\Port -Value 

3. 此时,WinRM 侦听器正在侦听正确的端口,Windows 防火墙可能拒绝到这些端口的任何远程连接。您需要打开这些端口。为此,请运行以下命令。下面的 New-NetFirewallRule 正在创建一个 Windows 防火墙规则,以允许所有入站 TCP 连接到自定义端口。

$FirewallParam = @{
     DisplayName = 'Custom WinRM Port Rule'
     Direction = 'Inbound'
     LocalPort = 
     Protocol = 'TCP'
     Action = 'Allow'
     Program = 'System'
 }
 New-NetFirewallRule @FirewallParam

相关:禁用 Windows 防火墙:探索多种方法

如果您没有打开相应的 Windows 防火墙端口,则在尝试连接时会收到如下消息:

[玩转系统] 默认 WinRm 端口以及如何更改它们

使用 PSRemoting 连接到自定义端口

现在您已在 WinRM 服务器上成功设置并配置了 WinRM,您需要测试与 WinRM 客户端的连接。要做到这一点只需要一个附加参数; 端口

使用任何 PSRemoting 命令(例如 Invoke-CommandEnter-PSSession),指定 Port 参数和设置的端口以成功建立连接。

Enter-PSSession -ComputerName <hostname> -Port 1111

[玩转系统] 默认 WinRm 端口以及如何更改它们

相关:Invoke-Command:运行远程代码的最佳方式

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯