Windows-Server-2008-R2

在 Windows 2008 R2 上從 WinRM 拒絕訪問

  • May 23, 2016

如何將 Windows 2008 R2 機器上的 WinRM 恢復到“開箱即用”狀態?或者,我如何讓 WinRM 再次開始與我交談?

我通過 RDP 以管理員身份登錄。任何訪問或配置 winrm 的嘗試都會遇到拒絕訪問。

我還有其他 3 台 WinRM 可以正常工作的伺服器。

在過去 2 個月的某個時間點,WinRM 在第四台伺服器上變得無法訪問。

我花了大約 2 天的時間閱讀、研究和嘗試不同的方法來讓 WinRM 再次工作。這裡有幾個:

LocalAccountTokenFilterPolicy 設置為 1

所有伺服器的防火牆規則都相同。

Windows 遠端管理服務已啟動並正在執行。

以下是我使用各種命令看到的一些範例:

PS C:\> winrm id IdentifyResponse
    ProtocolVersion = http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd
    ProductVendor = Microsoft Corporation
    ProductVersion = OS: 6.1.7601 SP: 1.0 Stack: 2.0

winrm 快速配置

PS C:\> winrm quickconfig
WinRM already is set up to receive requests on this machine.
WSManFault
   Message = Access is denied.

Error number:  -2147024891 0x80070005

winrm 列舉 winrm/config/listener

PS C:\>  winrm enumerate winrm/config/listener
WSManFault
   Message = Access is denied.

Error number:  -2147024891 0x80070005
Access is denied.

設置-PSSessionConfiguration Microsoft.Powershell -ShowSecurityDescriptorUI

Performing operation "Set-PSSessionConfiguration" on Target "Name: Microsoft.PowerShell".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): Y
Access is denied.
At line:15 char:26
+    if ((!$pluginName) -or <<<<  !(test-path "$pluginDir"))
   + CategoryInfo          : InvalidOperation: (:) [], InvalidOperationException
   + FullyQualifiedErrorId : WsManError

Join-Path : Access is denied.
At line:22 char:35
+    $pluginFileNamePath = Join-Path <<<<  "$pluginDir" 'FileName'
   + CategoryInfo          : NotSpecified: (:) [Join-Path], InvalidOperationException
   + FullyQualifiedErrorId : System.InvalidOperationException,Microsoft.PowerShell.Commands.JoinPathCommand

Test-Path : Cannot bind argument to parameter 'Path' because it is an empty string.
At line:23 char:19
+    if (!(test-path <<<<  "$pluginFileNamePath"))
   + CategoryInfo          : InvalidData: (:) [Test-Path], ParameterBindingValidationException
   + FullyQualifiedErrorId : ParameterArgumentValidationErrorEmptyStringNotAllowed,Microsoft.PowerShell.Commands.Test
  PathCommand

Get-Item : Cannot bind argument to parameter 'LiteralPath' because it is an empty string.
At line:29 char:43
+    $pluginFileName = get-item -literalpath <<<<  "$pluginFileNamePath"
   + CategoryInfo          : InvalidData: (:) [Get-Item], ParameterBindingValidationException
   + FullyQualifiedErrorId : ParameterArgumentValidationErrorEmptyStringNotAllowed,Microsoft.PowerShell.Commands.GetI
  temCommand

Set-PSSessionConfiguration : Session Configuration "Microsoft.PowerShell" is not a PowerShell based shell.
At line:89 char:27
+ Set-PSSessionConfiguration <<<<  $args[0] $args[1] $args[2] $args[3] $args[4] $args[5] $args[6] $args[7] $args[8]
   + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
   + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Set-PSSessionConfiguration

和伺服器管理器

伺服器管理器 - 配置伺服器管理器遠端管理

我發現,在受影響的伺服器上,對 winrm 的訪問僅限於單個自定義組(本地使用者和組)的成員。將管理員使用者添加到該組可為這些使用者啟用訪問權限。

現在我想弄清楚如何將訪問限制為自定義組的成員。我的安慰是,我們託管公司的 IT 專家還沒有弄清楚。

引用自:https://serverfault.com/questions/778127