我们公司开发了一款新的 Windows 应用,用于连接 SQL 数据库。当该应用在域环境之外运行时,它运行良好。当运行它的计算机连接到域时,该应用立即崩溃。
我发现了一些错误,我认为这些错误可能表明了问题所在,但我不确定如何准确解释它们,也不知道是什么阻碍了程序的运行。我不认为这是防火墙的问题,因为当 PC 不在域中时,程序可以正常工作。我仔细检查了每个组策略设置,似乎也没有任何东西可以抑制应用程序的运行,尽管考虑到具体情况,它似乎是罪魁祸首。
错误如下:
应用程序日志
Faulting application name: WcBc.UWP.exe, version: 1.0.0.0, time stamp: 0x5e1b7efb
Faulting module name: ntdll.dll, version: 10.0.18362.418, time stamp: 0x99ca0526
Exception code: 0xc0000005
Fault offset: 0x000000000001792d
Faulting process id: 0x5e2c
Faulting application start time: 0x01d5cd738a0fa05b
Faulting application path: C:\Program Files\WindowsApps\WcBc_6.0.3.0_x64__x092f3jx59vf4\WcBc.UWP.exe
Faulting module path: C:\Windows\SYSTEM32\ntdll.dll
Report Id: fc0e2bd5-9704-4ad2-b601-b61c8bfd53a7
Faulting package full name: WcBc_6.0.3.0_x64__x092f3jx59vf4
Faulting package-relative application ID: App
安全日志
The Windows Filtering Platform has blocked a packet.
Application Information:
Process ID: 24108
Application Name: \device\harddiskvolume3\program files\windowsapps\wcbc_6.0.3.0_x64__x092f3jx59vf4\wcbc.uwp.exe
Network Information:
Direction: Outbound
Source Address: 10.80.243.64
Source Port: 58988
Destination Address: 10.101.10.18
Destination Port: 4118
Protocol: 6
Filter Information:
Filter Run-Time ID: 71531
Layer Name: Connect
Layer Run-Time ID: 48
答案1
开发人员应该能够告诉您具体哪里出了问题,但我假设是 WindowsApps 中文件夹的安全性出了问题。尝试以提升的权限运行该应用程序,看看是否可行。
如果是,那么我会说该应用程序没有正确开发,因为用户通常无法写入 Program Files 但可以写入 ProgramData ,任何应用程序生成的数据都应该保存在那里。
如果没有,请让他们访问您的环境,以便他们可以在您的环境中进行测试并调试,或者要求他们将详细的日志写入文件中,这将有助于分析。
PS 如果可以的话,使用 SQL Server 设置一个快速域并在默认环境中测试它。如果它在那里工作,那就是组策略,因此通过逐个添加来反向工作,直到找到它中断的地方。
答案2
由于您正在进行逆向工程,因此看起来您可以使用过滤器运行时 ID 来识别正确的过滤器。
从文档[这里][1]中,您应该能够通过确定阻止层
netsh wfp show filters
并查找 71531 过滤器运行时 ID(过滤器运行时 ID:71531
Filter Run-Time ID [Type = UInt64]: unique filter ID which blocked the packet.
要按 ID 查找特定的 Windows 过滤平台过滤器,您需要执行以下命令:netsh wfp show filters。此命令的结果将生成 filters.xml 文件。您需要打开此文件并查找具有所需过滤器 ID 的特定子字符串()
这应该给你一个起点。除了 GPO 之外,还有一些其他项目可能需要进行故障排除:
Kerberos 和身份验证:SQL 服务器是否也在域中?是否由 DNS 名称或 IP 使用?SQL 帐户或域帐户?时间差是否大于 5 分钟?(https://web.mit.edu/Kerberos/krb5-1.5/krb5-1.5.4/doc/krb5-admin/Clock-Skew.html)
接收方防火墙:您正在连接到不同的子网,是否可能存在需要配置的防火墙/路由问题?
祝你好运!