应用程序验证工具 - 停止代码 - NTLM

以下停止代码包含在这组测试中。

AcquireCredentialsHandle 显式获取 NTLM 凭据。

可能导致

使用 pszPackage = 'NTLM' 的应用程序直接或间接调用 AcquireCredentialsHandle。 应使用“协商”来解决此问题。 错误的调用示例:AcquireCredentialsHandle( ...'NTLM', // pszPackage ... ...良好调用的示例:AcquireCredentialsHandle( ...'Negotiate', // pszPackage ... ]有关此停止代码的更多详细信息,请参阅帮助。

应用程序验证程序 显示的 信息
  • 参数 1 - 未使用 。
  • 参数 2 - 未使用 。
  • 参数 3 - 未使用 。
  • 参数 4 - 未使用 。

其他信息
  • 测试层: NTLMCaller
  • 停止 ID: ACH_EXPLICIT_NTLM_PACKAGE
  • 停止代码: 5000000
  • 严重性: 错误
  • 一次性错误: 否
  • 错误报告: 中断
  • 日志文件: 是
  • 创建回溯: 是

AcquireCredentialsHandle 首选 NTLM 凭据。 有关 PackageList 的值,请参阅 Param1。

可能导致

使用 pszPackage = “Negotiate”的应用程序直接或间接调用 AcquireCredentialsHandle。 但是,在提供的凭据(pAuthData)中首选 NTLM。 错误的调用示例:AcquireCredentialsHandle( ...'Negotiate', // pszPackage ...pAuthData、//pAuthData、((SEC_WINNT_AUTH_IDENTITY_EX*)pAuthData)->PackageList 为“NTLM”或“NTLM,KERBEROS”等。良好调用的示例:AcquireCredentialsHandle( ...'Negotiate', // pszPackage ...pAuthData、// pAuthData、((SEC_WINNT_AUTH_IDENTITY_EX*)pAuthData)->PackageList = NULL 或 NTLM 不太优先。 ... );有关此停止代码的更多详细信息,请参阅帮助。

应用程序验证程序 显示的 信息
  • 格式: - Packagelist:%.*hs%.*ws
  • 参数 1 - PackageList。
  • 参数 2 - 未使用 。
  • 参数 3 - 未使用 。
  • 参数 4 - 未使用 。

其他信息
  • 测试层: NTLMCaller
  • 停止 ID: ACH_IMPLICITLY_USE_NTLM
  • 停止代码: 5000001
  • 严重性: 错误
  • 一次性错误: 否
  • 错误报告: 中断
  • 日志文件: 是
  • 创建回溯: 是

AcquireCredentialsHandle 错误地使用“-NTLM”排除 NTLM 凭据。 有关 PackageList 的值,请参阅 Param1。

可能导致

AcquireCredentialsHandle 由提供凭据(pAuthData)的应用程序直接或间接调用,其中“-NTLM”错误地用于排除 NTLM 凭据。 '!NTLM'应用于解决此问题。 错误的调用示例:AcquireCredentialsHandle( ...'Negotiate', // pszPackage ...pAuthData、// pAuthData、((SEC_WINNT_AUTH_IDENTITY_EX*)pAuthData)->PackageList 使用“-NTLM”。 ... );良好调用的示例:AcquireCredentialsHandle( ...'Negotiate', // pszPackage ...pAuthData、 // pAuthData, ((SEC_WINNT_AUTH_IDENTITY_EX*)pAuthData)->PackageList 使用 '!NTLM'。 ... );有关此停止代码的更多详细信息,请参阅帮助。

应用程序验证程序 显示的 信息
  • 格式: - PackageList:%.*hs%.*ws
  • 参数 1 - PackageList。
  • 参数 2 - 未使用 。
  • 参数 3 - 未使用 。
  • 参数 4 - 未使用 。

其他信息
  • 测试层: NTLMCaller
  • 停止 ID: ACH_BAD_NTLM_EXCLUSION
  • 停止代码: 5000002
  • 严重性: 错误
  • 一次性错误: 否
  • 错误报告: 中断
  • 日志文件: 是
  • 创建回溯: 是

InitializeSecurityContext 对 Kerberos 服务使用 NULL 目标或格式不正确的目标。 有关目标值,请参阅 pszTargetName。

可能导致

InitializeSecurityContext 由应用程序直接或间接调用,pszTargetName 为 NULL 或格式不正确,因此无法协商 Kerberos。 下面提供了解决此问题以使用 Kerberos 的指南:(1) 客户端应用程序进行身份验证的服务应在其林中唯一注册其 SPN;(2) 服务必须在标识、域用户或计算机帐户下运行,并注册此 SPN;(3) 应使用此 SPN 调用 InitializedSecuirtyContext。 错误的调用示例:InitializeSecurityContext(...NULL、/pszTargetName...另一个错误调用示例:InitializeSecurityContext(...'\\\localhost', // pszTargetName ...良好的调用示例:InitializeSecurityContext(...“myservice/mymachine.mydomain.com”、//pszTargetName、myservice/mymachine.mydomain.com 是运行服务的唯一注册 SPN。... );有关此停止代码的更多详细信息,请参阅帮助。

应用程序验证程序 显示的 信息
  • 格式: - pszTargetName:%hs%ws
  • 参数 1 - 未使用 。
  • 参数 2 - 未使用 。
  • 参数 3 - 未使用 。
  • 参数 4 - 未使用 。

其他信息
  • 测试层: NTLMCaller
  • 停止 ID: ISC_MALFORMED_TARGET
  • 停止代码: 5000003
  • 严重性: 错误
  • 一次性错误: 否
  • 错误报告: 中断
  • 日志文件: 是
  • 创建回溯: 是

由于协商,客户端应用程序降级为使用 NTLM 身份验证。 有关详细信息,请参阅 pAuthData。 pAuthData 显示用于此协商的凭据和目标。

可能导致

由于协商,客户端应用程序降级为使用 NTLM 身份验证。 此问题可能有很多原因。 排查此问题的指导如下:(1) 打开 NTLMCaller 应用器层(如果尚未打开)。 此层将捕获可能导致降级的常见问题;(2) 如果 pszTargetName 是 SPN,请确保此 SPN 在林中唯一注册(SPN 无法缺失或重复):(3) 运行客户端应用程序的客户端系统必须查找 SPN;(4) 服务必须在具有其 Kerberos 凭据的标识下运行;(5) Windows 安全专家应审查方案。 有关此停止代码的更多详细信息,请参阅帮助。

应用程序验证程序 显示的 信息
  • 格式: - pAuthData: %ws \n\tUser: %hs%ws \n\tDomain: %hs%ws \npszTargetName: %hs%ws
  • 参数 1 - 未使用 。
  • 参数 2 - 未使用 。
  • 参数 3 - 未使用 。
  • 参数 4 - 未使用 。

其他信息
  • 测试层: NTLMDowngrade
  • 停止 ID: FALLBACK_TO_NTLM
  • 停止代码: 5010000
  • 严重性: 警告
  • 一次性错误: 否
  • 错误报告: 无
  • 日志文件: 是
  • 创建回溯: 是

另请参阅

应用程序验证程序 - 停止代码和定义

应用程序验证程序 - 概述

应用程序验证程序 - 功能

应用程序验证程序 - 测试应用程序

应用程序验证程序 - 应用程序验证程序中的测试

应用程序验证程序 - 调试应用程序验证程序停止

应用程序验证程序 - 常见问题