应用程序验证工具 - 停止代码 - 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。

可能的原因

使用 pAuthData) 提供的凭据 (的应用程序直接或间接调用 AcquireCredentialsHandle,其中“-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
  • 严重性: 警告
  • 一次性错误: 不
  • 错误报告: 没有
  • 记录到文件: 是的
  • 创建回溯: 是的

另请参阅

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

应用程序验证程序 - 概述

应用程序验证工具 - 功能

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

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

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

应用程序验证工具 - 常见问题解答