Windows-Server-2008-R2
在 Windows 2008 R2 上從 WinRM 拒絕訪問
如何將 Windows 2008 R2 機器上的 WinRM 恢復到“開箱即用”狀態?或者,我如何讓 WinRM 再次開始與我交談?
我通過 RDP 以管理員身份登錄。任何訪問或配置 winrm 的嘗試都會遇到拒絕訪問。
我還有其他 3 台 WinRM 可以正常工作的伺服器。
在過去 2 個月的某個時間點,WinRM 在第四台伺服器上變得無法訪問。
我花了大約 2 天的時間閱讀、研究和嘗試不同的方法來讓 WinRM 再次工作。這裡有幾個:
- 幫助 about_Remote_Troubleshooting
- Jonathan Jordan 的 WinRM 故障排除文章
- PowerShell 遠端處理指南
- 一堆這些Google點擊
- 這些答案都沒有重複解決我的問題,他們也沒有回答我關於如何將 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 專家還沒有弄清楚。