# Windows System Troubleshooting

> Windows OS issues: credential popups, drives, services.

- Skill: `wcpaka-lgtm/windows-system-troubleshooting` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add wcpaka-lgtm/windows-system-troubleshooting`
- Raw SKILL.md: https://api.skillmd.com/api/skills/wcpaka-lgtm/windows-system-troubleshooting/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: wcpaka-lgtm (https://skillmd.com/u/wcpaka-lgtm)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/wcpaka-lgtm/windows-system-troubleshooting

---


# Windows System Troubleshooting

Diagnose and fix recurring Windows OS-level problems: credential/key-selection popups, disconnected network drives, service failures, event log analysis.

## When to use
- "암호 키 선택창이 계속 떠" / credential prompt keeps appearing
- Network drive disconnected / reconnecting
- Mysterious recurring Windows dialogs or notifications
- Service or startup program misbehaving

## Diagnostic sequence (credential / key-selection popups)

The #1 cause of recurring "암호 키 선택" or credential dialogs is a **disconnected mapped network drive** whose target (NAS, file server) is offline. Windows retries the connection periodically and pops a credential prompt each time.

### Step 1 — Check mapped drives
```cmd
net use
```
Look for entries with status **"연결 끊김"** (Disconnected). Note the remote path (e.g. `\\192.168.0.22\NASfolder`).

### Step 2 — Check if target is reachable
```cmd
ping -n 2 -w 2000 <IP>
```
If ping fails → target is offline → that's the cause.

### Step 3 — Fix
**Immediate stop:** delete the stale mapping
```cmd
net use Z: /delete
```

**Permanent fix (when target is back online):** store credentials so reconnect is silent
```cmd
cmdkey /add:<IP-or-hostname> /user:<username> /pass:<password>
```

### Step 4 — Verify
```cmd
net use
```
Confirm the drive is gone or shows "연결됨".

## Other diagnostic tools

| Symptom | Command |
|---|---|
| What windows are open | `tasklist /V` (filter non-empty window titles) |
| Stored credentials | `cmdkey /list` |
| Event logs (system) | `wevtutil qe "System" /c:20 /rd:true /f:text` |
| Event logs (application) | `wevtutil qe "Application" /c:20 /rd:true /f:text` |
| BitLocker status | `manage-bde -status` (needs admin) |
| TPM status | `Get-Tpm` (PowerShell, needs admin) |
| Certificates (personal) | `Get-ChildItem Cert:\CurrentUser\My` |
| Startup programs | `Get-CimInstance Win32_StartupCommand` |
| Scheduled tasks (non-MS) | `Get-ScheduledTask \| Where {$_.TaskPath -notlike "\Microsoft\*"}` |
| USB/smartcard devices | `Get-PnpDevice \| Where {$_.Class -match "SmartCard\|SecurityDevices"}` |
| Services | `Get-Service -Name "SCardSvr","CertPropSvc"` |

## Non-ASCII (Korean) paths break npm / node tooling

`npm install` and any node tar extraction fail on paths containing Korean (or other non-ASCII) characters — e.g. the NAS mount `G:\내 드라이브\NAS폴더\...`. Symptom is a wall of `npm warn tar TAR_ENTRY_ERROR UNKNOWN` / `EBADF: bad file descriptor` followed by `npm error EBADF`, plus `EPERM rmdir` during cleanup. The install never completes.

**Fix:** do the build in an ASCII path under the user home, then copy the finished artifact to the NAS destination.
```bash
mkdir -p /c/Users/okya1/<build-dir> && cd /c/Users/okya1/<build-dir>
npm init -y && npm install <pkg>     # works fine here
# ...build...
cp <artifact> "/g/내 드라이브/NAS폴더/NASfolder/Hermes/<task>/"   # copy at the end
```
This generalizes: any tool that extracts tars or writes many small files (npm, some pip builds, unzip of large archives) can choke on the Korean NAS path. Build local, copy once.

## Pitfalls
- `manage-bde`, `Get-BitLockerVolume`, `Get-Tpm` all require **admin elevation** — they silently return empty or error in a non-admin shell. Don't waste time retrying; note "needs admin" and move on.
- `wevtutil` channel names are exact — `Microsoft-Windows-BitLocker-Driver/Operational` may not exist if BitLocker was never enabled. "채널을 찾을 수 없습니다" = channel doesn't exist, not an error.
- PowerShell `$_` inside bash terminal gets mangled (bash interprets `$_` as a path). Use `execute_code` with `subprocess.run(['powershell', '-NoProfile', '-Command', ...])` for complex PS commands, or write a `.ps1` file and run it.
- Korean Windows output is EUC-KR/CP949 — terminal output will be garbled mojibake. Use structure (numbers, paths, English tokens) to parse, not the Korean text.
- `net use` output IS readable even with mojibake — drive letters, UNC paths, and status columns are ASCII.

## References
- `references/credential-popup-diagnosis.md` — full diagnostic transcript from the NAS credential popup case
