我有 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) 今天我被这个臭名昭著的 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 …
运行Enter-PSSession COMPUTERNAME时Enable-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 中排除了这个系统并手动创建了侦听器: …
我已在 Hyper-V 服务器上成功配置 WinRM 以使用 HTTPS。我能够连接到它并通过在我的客户端 PC 上使用相同的本地用户名和密码(它们在一个工作组中)来执行命令,例如winrs -r:https://<server>:5986 dir.
但是我无法弄清楚在 Hyper-V 管理器的“连接到服务器”对话框中指定什么地址以使其使用 HTTPS。默认情况下,它仅尝试通过失败的 HTTP 连接,因为我不想添加不安全的 TrustedHosts 异常。错误消息本身表明我可以使用 HTTPS 而不是 TrustedHosts。
我无法在运行 w2k8 r2 的本地机器上通过 EMC 连接到 Exchange Server 2010 的实例。我已经检查了所有默认的网站绑定,在 powershell 中将 kerberos auth 和 WSMan 设置为本机类型,但我仍然收到此错误消息。
连接到远程服务器失败并显示以下错误消息:
WS-Management 服务不支持该请求。
它正在运行命令“Discover-ExchangeServer -UseWIA $true -suppresserror $true”
我有一台需要与主机 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) 我有一个用于开发脚本的虚拟测试环境。由于 .NET 无法实现 PowerShell 提供的所有可能性,因此我使用远程 PowerShell 运行空间。
我现在的问题是,尽管该服务正在运行,但我无法访问 FileShare-Memberserver 上的 WinRM-Service。
初始情况:
winrm quickconfig 告诉我该服务正在所有各方上运行和配置。Test-wsman在 FileShare 本身上运行命令,那也不是问题。我在我的虚拟测试环境中快速绘制了服务器结构。(红色箭头表示该Test-WSMan命令无效)
我不知道如何继续解决这个问题。我在互联网上阅读了很多没有帮助的东西。我完成了TechNet 博客“about_Remote_Troubleshooting”的所有步骤。最重要的是,我的脚本可以访问同一台服务器上的 Exchange PS,这让我大吃一惊。几个月前我在SO上问了一个关于这个主题的问题,因为我认为我的脚本的 ShellUri 是错误的,尽管它适用于 DC 上的 PS。
因此,如果有人提示我接下来可以尝试什么,我将不胜感激。
我正在尝试执行以下 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) 我的 90% 的服务器上都有 PSRemoting。但是有一些我不确定他们发生了什么。Server 2016。
大部分是Hyper-V主机,但不是全部。
Enable-PSRemoting -Force作品。Windows 防火墙设置为接受。
测试 WSMan 错误是Code="2150858770".
Software caused connection abortport 5985),我得到 [SYN]、[SYN,ACK]、[ACK]、[PSH,ACK]、POST,然后是 [RST,ACK]。我可以尝试任何想法或事情吗?