我在Stack Exchange上试过这个问题 - 数据库管理员( https://dba.stackexchange.com/q/129286/51925 ),但我没有得到任何回应,所以我会在这里尝试。
我正在努力使用SQL Server Reporting Services远程处理服务器。我的Reporting Services使用单独的域帐户运行,我已为它们设置了SPN( HTTP/<Machine> <domain>\<user>
)。据我所知,这有效地禁用了PowerShell远程处理,因为WinRM应使用的SPN指向Reporting Services使用的域帐户。
我没有问题,例如 Get-Service -ComputerName <Machine>
,但如果我尝试 Get-CimInstance Win32_Service -ComputerName <machine>
要么 Enter-PsSession <machine>
我收到类似这样的错误:
Get-CimInstance:WinRM无法处理请求。下列 使用Kerberos时出现错误代码0x80090322 身份验证:发生未知的安全错误。
可能的原因是:
- 指定的用户名或密码无效。
-Kerberos在没有指定身份验证方法和用户名时使用。
-Kerberos接受域用户名,但不接受本地用户名。
- 远程计算机名称和端口的服务主体名称(SPN) 不存在。
- 客户端和远程计算机位于不同的域中,两个域之间没有信任。
检查后 对于上述问题,请尝试以下方法:
- 检查事件查看器以查找与身份验证相关的事件。
- 更改身份验证方法;将目标计算机添加到WinRM TrustedHosts配置设置或使用HTTPS传输。
请注意,TrustedHosts列表中的计算机可能未经过身份验证。
-欲获得更多信息 关于WinRM配置,运行以下命令:winrm help 配置。在行:1个字符:1
+ Get-CimInstance win32_service -ComputerName<machine>
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~
+ CategoryInfo:AuthenticationError:(root \ cimv2:win32_service:String)[Get-CimInstance],CimException
+ FullyQualifiedErrorId:HRESULT 0x8033809d,Microsoft.Management.Infrastructure.CimCmdlets.GetCimInstanceCommand
+ PSComputerName:<machine>
如果我在我的一台服务器上删除SPN,那么几秒钟后(AD复制有点快?)我可以使用上面的命令,但如果我重置SPN,命令会在一段时间后再次失败。
我的一些Reporting Services需要能够转发凭据,因此我希望有人能够帮助我解决这个难题。
祝大家好日子。
Hynne