在使用 WISE 打包安装程序编写的自定义应用程序包中遇到 Kerberos and/or NTLM 身份验证失败

Encountering Kerberos and/or NTLM authentication failures in custom application packages written using the WISE packaging Installer

我们在使用 WISE 打包安装程序为 Windows 7 设计的自定义应用程序包中遇到 Kerberos and/or NTLM 身份验证失败。在 Windows 7 上,它们工作正常,但现在在 Windows 10 上失败。在 Windows 10 上使用 Microsoft SCCM 工具安装期间,它们都失败了,特别是在使用 Kerberos 身份验证时失败安装过程中网络上的 SMB 共享。我们可以在网络跟踪中看到客户端应用程序在身份验证事务期间从 Kerberos 故障转移到 NTLM。我们不确定为什么。我们有一个大规模的 Active Directory 环境。因为 WISE 包是编译好的,所以我们无法查看它。在成功的 Windows 7 台计算机上,计算机似乎需要在执行程序包时访问共享,并且登录用户必须具有对 SMB 共享的读取和执行访问权限。我们可以使用 Windows 7 系统帐户访问 same SMB 共享,但在使用 Windows 10 系统帐户时则不能。很奇怪!这是包内的代码问题吗?这可能很重要:SMB 共享正在使用 DNS 别名,不确定这是否有任何区别。主机的真实名称不同。当使用主机的真实名称而不是别名时,访问问题似乎已得到解决。

网络共享不会碰巧由非 Windows 服务器托管,对吗?如果有,看看这篇文章是否适用:

SMB file server share access is unsuccessful through DNS CNAME alias

基本上 Windows 10 的安全模型发生了变化。默认情况下,Windows 10 不会请求 DNS 别名的 Kerberos 票证,但 Windows 7 会. SMB 服务器基本上是在说,因为您没有使用我的真实姓名(如服务单所示),所以我不允许连接。使用成功的 Windows 7 台机器连接的名称创建一个新的 SPN,但采用 SPN 形式。例如,如果 Windows 7 正在使用这样的东西:

\servername.domain.com\sharename

..然后找到代表主机的 AD 计算机对象的名称,并将辅助 SPN 添加到该 AD 对象,如下所示:

HOST/servername.domain.com