标签: winrm

如何允许非管理员用户访问 winrs?

我有 Windows Server 2012(和 Server 2008,但它是下一个优先级)来使用txwinrm监视它。txwinrm 库内部使用的是 WinRS 协议。我必须使用最低权限的用户来监视它,但不知道如何为他配置访问权限。

我设法做的就是为我的用户配置远程 Powershell 会话,但看起来 winrs 和 powershell 会话具有不同的安全描述符:

Invoke-Command -ComputerName 192.168.173.206 -Credential (credential Administrator $pwd) -ScriptBlock { 2 + 2}
# gives 4
Invoke-Command -ComputerName 192.168.173.206 -Credential (credential lpu1 $pwd) -ScriptBlock { 2 + 2}
# gives 4
winrs -r:192.168.173.206 -u:Administrator -p:$pwd 'powershell -command "2+2"'
# gives 4
winrs -r:192.168.173.206 -u:lpu1 -p:$pwd 'powershell -command "2+2"'
# Gives Winrs error: Access is denied.
Run Code Online (Sandbox Code Playgroud)

我的用户的配置如下:

(Get-Item WSMan:\localhost\Service\RootSDDL).value
# O:NSG:BAD:P(A;;GA;;;BA)(A;;GA;;;S-1-5-21-3231263931-1371906242-1889625497-1141)S:P(AU;FA;GA;;;WD)(AU;SA;GWGX;;;WD)
(Get-PSSessionConfiguration -name Microsoft.Powershell).SecurityDescriptorSddl …
Run Code Online (Sandbox Code Playgroud)

windows powershell remoting winrm

7
推荐指数
1
解决办法
1万
查看次数

W2K12R2 上的服务器管理器 WinRM 插件可能已损坏或丢失

今天我被这个臭名昭著的 2012R2 错误彻底打败了:

Server Manager could not start the task due to the following error: Failed to open the runspace pool. The Server Manager WinRM plug-in might be corrupted or missing. 
Run Code Online (Sandbox Code Playgroud)

我反复尝试了此处此处此处提出的每种解决方案。

没运气。事件日志中没有一个错误。当然,我可以使用 Powershell 添加删除角色或完全擦除这台机器。我仍然在寻找这个简单问题的正常解决方案。

进一步的测试表明我的错误是可重复的。我已经在原始默认完全更新的 Windows Server 2012 R2 标准安装上进行了测试,并且能够重现它。问题在此声明之后开始:

winrm invoke Restore http://schemas.microsoft.com/wbem/wsman/1/config/plugin @{}
Run Code Online (Sandbox Code Playgroud)

完整详情如下。有任何想法吗?

域控制器从 win2008 R2 升级到 2012R2 后,一切正常。
[dcdiag /fix /q] 除了下面的错误没有显示任何内容。 
升级后几个小时内发生错误(不是立即):
  来源:Microsoft-Windows-WinRM
  事件 ID:10155
  级别:错误
  描述:
  WSMan 服务无法读取以下插件的配置: 
   微软服务器管理器。 

  收到的错误是-2144108144:%%-2144108144 
   WS-Management 服务无法处理该请求。插件配置:“Microsoft.ServerManager”已损坏。此插件需要重新配置或删除。使用以下命令删除插件配置

   winrm 删除 http://schemas.microsoft.com/wbem/wsman/1/config/plugin?Name=xyz 

   或者使用以下命令恢复默认插件配置。请注意,在此还原操作期间将取消注册所有外部插件。

   winrm …

winrm windows-server-2012

7
推荐指数
1
解决办法
3万
查看次数

使用新证书自动重新配置 WinRM HTTPS 侦听器?

我希望在我们所有的服务器上启用 WinRM HTTPS 侦听器,以便在服务器之间使用 CredSSP 解决双跳问题时进行安全通信。

设置这个很好,我们有来自内部 CA 的 CN 适当的证书,所以侦听器的初始设置很好并且工作得很好。唯一的问题是这些证书的有效期仅为 1 年,因此一旦它们到期,我们需要重新配置每台服务器上的侦听器,因为服务器证书的自动注册不会修改 WinRM 配置中的证书指纹.

有没有人遇到过这个问题的好解决方案?

remote-access powershell https credssp winrm

6
推荐指数
2
解决办法
2万
查看次数

远程 PowerShell、WinRM 失败:WinRM 无法完成操作

运行Enter-PSSession COMPUTERNAMEEnable-PSWSManCombinedTrace,我在 Windows 远程管理操作日志中看到以下相关消息:


WSMan 操作获取失败,错误代码 2150859046


WinRM 无法完成操作。验证指定的计算机名称是否有效、该计算机是否可通过网络访问以及 WinRM 服务的防火墙例外是否已启用并允许从该计算机进行访问。默认情况下,公共配置文件的 WinRM 防火墙例外限制对同一本地子网中的远程计算机的访问。


WinRM 协议操作因以下错误而失败:由于以下错误,无法从服务器检索元数据:WinRM 无法完成操作。验证指定的计算机名称是否有效、该计算机是否可通过网络访问以及 WinRM 服务的防火墙例外是否已启用并允许从该计算机进行访问。默认情况下,公共配置文件的 WinRM 防火墙例外限制对同一本地子网中的远程计算机的访问。.


而有时:

客户端从网络层得到超时(ERROR_WINHTTP_TIMEOUT)


COMPUTERNAME在域上一个2012 R2核心服务器,同组的政策下,作为其远程PowerShell,服务器管理器,许多其他的服务器工作正常。我可以 RDP 到这个系统,我可以从中获取 WMI 数据(例如Get-WmiObject -ComputerName COMPUTERNAME -Class Win32_OperatingSystem返回它应该返回的数据),并且在其他所有方面,它似乎运行得很好。

虽然它已经通过组策略设置,但我已经尝试(无数次)启用 WinRM 和远程 PowerShell,例如Enable-PSRemoting,或调用此命令单独执行的伴随步骤。

我已更改为不同的网络接口,已确保同一网段上的其他系统不会出现这些症状,我已遵循 的建议Get-Help about_Remote_Troubleshooting,并将必需的山羊牺牲给 Baal。没有任何帮助。

这些症状可从任何域客户端复制到此服务器,或者如果您通过 IP 联系服务器(将其放入 TrustedHosts 后)。没有其他服务器出现此问题。没有任何软件或配置(一直到启用 FW 规则和安装的功能)不在我环境中的至少 2 台其他服务器上。

有任何想法吗?


最近的发现:

netsh http show iplist返回127.0.0.1非工作系统,但回报的工作制度什么。

正如@out-null 在评论中正确指出的那样,5985 正在侦听 127.0.0.1 的事实是一个问题。我已经从配置我们的 WinRM 设置的 GPO 中排除了这个系统并手动创建了侦听器: …

winrm windows-server-2012-r2

6
推荐指数
1
解决办法
5万
查看次数

Hyper-V 管理器 - 在 WinRM 中使用 HTTPS

我已在 Hyper-V 服务器上成功配置 WinRM 以使用 HTTPS。我能够连接到它并通过在我的客户端 PC 上使用相同的本地用户名和密码(它们在一个工作组中)来执行命令,例如winrs -r:https://<server>:5986 dir.

但是我无法弄清楚在 Hyper-V 管理器的“连接到服务器”对话框中指定什么地址以使其使用 HTTPS。默认情况下,它仅尝试通过失败的 HTTP 连接,因为我不想添加不安全的 TrustedHosts 异常。错误消息本身表明我可以使用 HTTPS 而不是 TrustedHosts。

windows hyper-v winrm windows-server-2012-r2

6
推荐指数
1
解决办法
398
查看次数

远程管理 Exchange Server 2010 的问题

我无法在运行 w2k8 r2 的本地机器上通过 EMC 连接到 Exchange Server 2010 的实例。我已经检查了所有默认的网站绑定,在 powershell 中将 kerberos auth 和 WSMan 设置为本机类型,但我仍然收到此错误消息。

连接到远程服务器失败并显示以下错误消息:

WS-Management 服务不支持该请求。

它正在运行命令“Discover-ExchangeServer -UseWIA $true -suppresserror $true”

exchange exchange-2010 winrm

5
推荐指数
1
解决办法
1457
查看次数

在 Ansible 上转发 Kerberos 身份验证

我有一台需要与主机 C 通信的 ansible 控制机器(主机 A),一台没有本地用户的 Windows 机器(它是一个 Active Directory)。

主机 A 无法访问主机 C,但可以使用主机 B 进行通信。

host-B 它是一台 linux 机器。

host-A 通过 ssh 访问 host-B。

在这篇文章之后,我创建了一个 nginx 服务器来路由主机 B上的 WinRM 流量

server {
    listen 5986 default ssl;
    server_name localhost;

    ssl_certificate  ssl/nginx.crt;
    ssl_certificate_key ssl/nginx.key;

    location /host-c {
        proxy_pass https://host-c-address:5986/wsman;
    }
}
Run Code Online (Sandbox Code Playgroud)

我对 host-C 的 ansible 库存如下:

[windows]
host-c ansible_host=host-b ansible_winrm_path=host-c
Run Code Online (Sandbox Code Playgroud)

group_vars窗户是:

ansible_user: myuser
ansible_pass: andmypass
ansible_port: 5986
ansible_connection: winrm
ansible_winrm_realm: HOSTCDOMAIN.LOCAL
ansible_winrm_scheme: https
ansible_winrm_transport: kerberos …
Run Code Online (Sandbox Code Playgroud)

nginx kerberos winrm ansible

5
推荐指数
1
解决办法
1563
查看次数

WinRM-Service 正在运行但无法访问

我有一个用于开发脚本的虚拟测试环境。由于 .NET 无法实现 PowerShell 提供的所有可能性,因此我使用远程 PowerShell 运行空间。

我现在的问题是,尽管该服务正在运行,但我无法访问 FileShare-Memberserver 上的 WinRM-Service。

失败信息

初始情况:

  • winrm quickconfig 告诉我该服务正在所有各方上运行和配置。
  • 如果我Test-wsman在 FileShare 本身上运行命令,那也不是问题。
  • 我显然重新启动了服务几次
  • 使用我的远程脚本,我可以访问 FileShare 上的 Exchange Shell,但不能访问 MS PowerShell
  • 我可以使用“远程桌面连接”-应用程序手动连接到服务器
  • 有一次我停用了所有防火墙,因为我想合并请求在那里停止的可能性。

我在我的虚拟测试环境中快速绘制了服务器结构。(红色箭头表示该Test-WSMan命令无效)

服务器结构

我不知道如何继续解决这个问题。我在互联网上阅读了很多没有帮助的东西。我完成了TechNet 博客“about_Remote_Troubleshooting”的所有步骤。最重要的是,我的脚本可以访问同一台服务器上的 Exchange PS,这让我大吃一惊。几个月前我在SO上问了一个关于这个主题的问题,因为我认为我的脚本的 ShellUri 是错误的,尽管它适用于 DC 上的 PS。

因此,如果有人提示我接下来可以尝试什么,我将不胜感激。

powershell remote service winrm

5
推荐指数
1
解决办法
2万
查看次数

本地主机上的 Enter-PSSession 失败

我正在尝试执行以下 Powershell 命令:

Enter-PSSession -ComputerName localhost
Run Code Online (Sandbox Code Playgroud)

正在使用的服务器运行的是 Windows Server 2008 R2 SP1 64 位。服务器位于域中。我使用域管理员帐户登录。powershell 会话以管理员身份启动。

我从 powershell 本身收到以下错误消息:

PS C:\Users\Daniel> Enter-PSSession -Computername localhost
Enter-PSSession : Connecting to remote server localhost failed with the following error message : The client cannot
connect to the destination specified in the request. Verify that the service on the destination is running and is
accepting requests. Consult the logs and documentation for the WS-Management service running on the destination, most
commonly IIS or WinRM. If …
Run Code Online (Sandbox Code Playgroud)

powershell remoting windows-server-2008-r2 winrm

5
推荐指数
1
解决办法
5794
查看次数

Powershell 远程处理不起作用

我的 90% 的服务器上都有 PSRemoting。但是有一些我不确定他们发生了什么。Server 2016。
大部分是Hyper-V主机,但不是全部。

  • Enable-PSRemoting -Force作品。Windows 防火墙设置为接受。

  • 测试 WSMan 错误是Code="2150858770".

  • Test-NetConnection -ComputerName remoteserver -port 5985 显示成功。
  • telnet with Putty to 5985 显示 Software caused connection abort
  • 侦听器由 GPO 设置,在 TrustedHosts 中的端口 5985 上使用 *。这是由 netstat -abn 验证的。
  • 我可以在本地和远程获取 wmimgmt.msc 中的属性。
  • 使用 Wireshark 数据包跟踪(我将捕获过滤器设置为port 5985),我得到 [SYN]、[SYN,ACK]、[ACK]、[PSH,ACK]、POST,然后是 [RST,ACK]。
  • Windows 防火墙日志显示已接受的数据包。

我可以尝试任何想法或事情吗?

windows powershell wmi winrm

5
推荐指数
0
解决办法
566
查看次数