從網域電腦運行時應用程式立即崩潰,當電腦脫離網域時,它運作正常

從網域電腦運行時應用程式立即崩潰,當電腦脫離網域時,它運作正常

我們公司開發了一個新的 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 中的資料夾是安全的。嘗試以提升的權限運行該應用程序,看看是否有效。

如果是,那麼我會說該應用程式未正確開發,因為用戶通常無法寫入程式文件,但可以寫入應保存任何應用程式生成的資料的程式資料。

如果沒有,請向他們提供對您的環境的存取權限,以便他們可以在您的環境中進行測試並進行調試,或者要求他們將詳細的日誌寫入文件中,這將有助於分析。

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 showfilters。作為此命令的結果,將產生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

接收端防火牆:您正在連線到不同的子網,是否可能有需要設定的防火牆/路由問題?

祝你好運!

相關內容