작업하던 앱이 갑자기 사라집니다. 오류 창도 없고, 다시 켜면 멀쩡합니다. 몇 분 뒤 또 사라집니다. 이럴 때 추측으로 고치면 세 번쯤 헛다리를 짚습니다. 로그만으로 원인을 좁히는 순서를 적었습니다.

명령은 전부 파워셸에서 그대로 실행하실 수 있습니다.

1단계 — PC가 꺼진 것인지부터 가른다

앱이 아니라 컴퓨터가 재시작됐을 수도 있습니다. 먼저 이것부터 봅니다.

Get-WinEvent -FilterHashtable @{LogName='System'; Id=@(41,1074,6008); StartTime=(Get-Date).AddDays(-3)} | Format-List TimeCreated, Id, Message
  • 1074가 있으면 누군가 종료를 명령한 것입니다. 어떤 프로세스가 시작했는지 메시지에 적힙니다
  • 41 + 6008은 예기치 않은 종료입니다. 명령을 받지 못한 채 멈췄거나 전원이 끊긴 것입니다

부팅 시각도 같이 봐 두면 좋습니다. "앱이 죽었다"가 실은 "PC가 재부팅됐다"인 경우가 있습니다.

(Get-CimInstance Win32_OperatingSystem).LastBootUpTime

2단계 — 크래시인지 강제 종료인지 가른다

여기가 핵심입니다. 크래시는 흔적을 남기고, 강제 종료는 안 남깁니다.

Get-WinEvent -FilterHashtable @{LogName='Application'; ProviderName=@('Application Error','Application Hang'); StartTime=(Get-Date).AddDays(-1)}

오류 보고서도 함께 봅니다.

Get-ChildItem "$env:ProgramData\Microsoft\Windows\WER\ReportArchive" | Sort-Object LastWriteTime -Descending | Select-Object -First 10 Name

여기에 그 앱 이름이 하나도 없으면 크래시가 아닙니다. 예외로 죽은 프로세스는 거의 반드시 보고서를 남깁니다. 없다는 것은 밖에서 닫혔다는 뜻입니다.

3단계 — 패키지 배포 로그를 본다

스토어(MSIX) 앱이라면 여기서 답이 나오는 경우가 많습니다.

Get-WinEvent -LogName 'Microsoft-Windows-AppXDeploymentServer/Operational' -MaxEvents 500 | Where-Object { $_.Message -match '앱이름' } | Select-Object TimeCreated, Id, Message

찾을 것은 ForceTargetApplicationShutdownOption이라는 단어입니다. 이름 그대로 "대상 앱을 강제로 닫는다"는 옵션이고, 보통 RepairAppRegistrationOption과 같이 나옵니다. 윈도우가 그 패키지의 등록 상태를 고치려고 실행 중인 앱을 닫은 것입니다.

제 경우 이 항목이 45분 사이에 여덟 번 찍혀 있었습니다. 앱이 사라진 시각과 정확히 맞아떨어졌고, 오류 보고서는 하나도 없었습니다. 크래시가 아니라 서비싱이었습니다.

4단계 — 왜 반복되는지 본다

한 번이면 업데이트지만, 반복되면 무언가 실패하고 있다는 뜻입니다. 스토어 쪽을 봅니다.

Get-WinEvent -FilterHashtable @{LogName='Application'; ProviderName='Windows Error Reporting'; StartTime=(Get-Date).AddDays(-1)} | Select-Object -First 5 | Format-List Message

StoreAgentDownloadFailure가 보이면 스토어가 무언가를 받으려다 계속 실패하는 중입니다. 회사망처럼 다운로드 서버가 막힌 환경에서는 성공할 수 없는 일을 계속 재시도하고, 시도할 때마다 앱이 닫힙니다.

정말 막혔는지는 직접 재 보면 됩니다.

Invoke-WebRequest https://dl.delivery.mp.microsoft.com/ -Method Head -TimeoutSec 10

카탈로그 쪽은 응답하는데 이 다운로드 주소만 시간 초과된다면 네트워크 차단입니다. 인증서 문제와 구분하는 방법은 회사망 TLS 프록시 글에 적어 두었습니다.

그래서 무엇을 하면 되나

  • 자동 업데이트를 끕니다. 스토어 → 프로필 → 설정 → 앱 자동 업데이트. 성공할 수 없는 재시도가 앱을 닫는 것이라면 이걸로 고리가 끊깁니다. 관리자 권한이 필요 없습니다
  • 한 번은 성공시켜 둡니다. 다운로드가 열리는 망(예: 휴대폰 테더링)에서 업데이트를 한 번 끝내면 그 뒤로는 조용해집니다
  • 앱 복구를 씁니다. 설정 → 앱 → 해당 앱 → 고급 옵션 → 복구. 데이터는 유지됩니다
  • 오래 걸리는 작업은 스토어 앱이 아닌 경로로 합니다. 같은 도구의 명령줄 버전이 있다면 그쪽은 패키지 서비싱의 영향을 받지 않습니다

정리

증상확인판정
오류 창 없이 사라짐WER 보고서에 앱 이름 없음크래시 아님
사라진 시각에 배포 로그ForceTargetApplicationShutdown윈도우가 닫음
그게 반복됨StoreAgentDownloadFailure실패하는 업데이트 재시도
다운로드만 안 됨검증 꺼도 시간 초과네트워크 차단

추측으로 고치기 전에 이 네 줄만 확인해도 방향이 정해집니다. 저는 이 순서를 밟기 전에 폰트를 의심하고, 뒤로가기를 의심하고, 메모리를 의심했습니다. 셋 다 아니었습니다.