PowerShell 启用远程管理时的防火墙问题 6


启用某台机器上的PowerShell远程管理是一件简单的事,可以以管理员的权限直接在Powershell控制台上敲入:Enable-PSRemoting -Force,一路yes即可。

但是可能会碰到两类问题。一类是关于公用网络适配器的问题。例如提示说:

PS C:\windows\system32> Enable-PSRemoting

WinRM 快速配置
正在运行命令“Set-WSManQuickConfig”,以使该计算机能够通过 WinRM 服务进行远程管理。
其中包括:
1. 启动或重新启动(如果已启动) WinRM 服务
2. 将 WinRM 服务类型设置为自动启动
3. 创建一个侦听器以接受任意 IP 地址上的请求
4. 对 WS-Management 流量启用防火墙例外(仅适用于 http)。

是否继续?
[Y] 是(Y)  [A] 全是(A)  [N] 否(N)  [L] 全否(L)  [S] 挂起(S)  [?] 帮助 (默认值为“Y”): y
WinRM 已更新为接收请求。
成功更改 WinRM 服务类型。
已启动 WinRM 服务。
已配置 LocalAccountTokenFilterPolicy 以远程向本地用户授予管理权限。

Set-WSManQuickConfig : 由于此计算机上的网络连接类型之一设置为公用,因此 WinRM 防火墙例外将不运行。 将网络连接类型更改为域或专用,然后再次尝试。

此时可以打开网络共享中心在窗口的最左边选择更改适配器设置,选择公用网络配置器,临时禁用它,再运行上面的命令。但是在PowerShell 3.0 中多了一个参数-SkipNetworkProfileCheck可以跳过这步网络类型检查。

另外一类问题可能会提示防火墙不能验证,原因是当前使用的语言包和系统的语言包不匹配,就像两个人一个用中文,一个用德文,没有共同语言。遇到这样的问题,一定要确保当前的UI语言和系统的语言匹配。

最后不要忘记将你要连接的远程主机名或IP地址存放在本机的受信任列表中。

Set-Item WSMan:\localhost\client\trustedhosts * -Force

2016-3-17更新

@wanglang0728:

外加一个有时候提醒无法验证防火墙状态,是因为系统语言的问题,比如我的本来是中文版,我下载了英文语言包做了修改,这时候只要改了语言再次开启就好。

原文链接:http://powershell.com/cs/blogs/tips/archive/2012/10/24/firewall-problems-when-enabling-remoting.aspx

本文链接: https://www.pstips.net/firewall-problems-when-enabling-powershell-remoting.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

6 条评论 “PowerShell 启用远程管理时的防火墙问题

  • jieche

    启动远程访问问题,机器A(win8 psv3.0)发出ps 命令机器,机器B(win8.1 psv4.0)被访问机器。
    1.在机器B中执行:enable-psremoting -SkipNetworkProfileCheck 一路yes
    2.在机器A中执行:Set-Item WSMan:\localhost\client\trustedhosts [B:ComputerName] 一路yes
    3.在机器A中执行:enter-pssession -computername [B:ComputerName] 回车
    错误提示为:链接失败,拒绝访问!
    是否还需要其他的配置?

      • jieche

        是域环境,在B中event log没有相关信息。
        在B中添加了A的域账号,则enter-pssession 成功。
        还有别的方法吗?难道需要再所有被管理的机器中添加一个ps的运行账号么?

        • Mooser Lee 文章作者

          A 远程管理 B,至少A得有操作B的权限(账号,域账号和本地账户都可以)。
          我目前见过两种情况:

          1. 当A的当前用户没有操作B的权限时,你需要指定账号:域账号或者B的本地账户
          2.当A的当前用户有操作B的权限时(此时一般都是域账号),不需要指定账户。

          其它的就没见过了,不好意思。

  • wanglang0728

    外加一个有时候提醒无法验证防火墙状态,是因为系统语言的问题,比如我的本来是中文版,我下载了英文语言包做了修改,这时候只要改了语言再次开启就好。