如何为SQL Server报告启用PowerShell远程处理和SPN?


1

我在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

Answers:


2

我相信我们找到了解决方案。要避免Reporting Services和WinRM争用HTTP SPN,您可以为WinRM设置特定于端口的SPN,如下所示:

setspn -S HTTP/<Machine>:<port> <Machine>

为短机器名称和FQDN创建SPN是个好主意。
HTTP的默认端口为5985,HTTPS的默认端口为5986,但我相信它可以设置为使用不同的端口。

使用WinRM时,我只是建立一个这样的会话:

$CimSessionOption = New-CimSessionOption -EncodePortInServicePrincipalName
$CimSession = New-CimSession -Name ServiceSession -SessionOption $CimSessionOption -ComputerName <Machine>
Get-CimInstance Win32_Service -CimSession $CimSession

祝你有美好的一天

Hynne


1

除了@ carsten-hynne答案,要使用您使用的端口创建PowerShell会话:

$option = New-PSSessionOption -IncludePortInSPN
$pssession = New-PSSession -ComputerName MYMACHINE -SessionOption $option

注意:确保您已经从@ carsten-hynne的答案中添加了PORT SPN!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.