---
title: session-0-vs-1
created: 2026-06-27
updated: 2026-06-27
type: concept
tags: [windows, ssh, flask, gui-control, schtasks-trap]
sources: [raw/articles/seomu-pitfalls-journal.md]
confidence: high
---

# Windows Session 0 vs 1

## 핵심 차이

| 항목 | Session 0 (Services) | Session 1 (Console/사용자) |
|---|---|---|
| 실행 컨텍스트 | 시스템 서비스 | 사용자 로그인 세션 |
| SSH 접속 | ✅ (PowerShell 응답) | ❌ (직접 불가) |
| GUI 윈도우 표시 | ❌ (HWND=0) | ✅ |
| SendKeys | Session 1 창에 도달 불가 | 동일 세션 내 정상 |
| pyautogui.screenshot | ❌ (null 반환) | ✅ |
| Excel COM (win32com) | ❌ WebView2 권한 오류 | ✅ |
| win32gui EnumWindows | 0 윈도우 | 모든 윈도우 |

## SSH 컨텍스트 상속 문제

```python
# SSH에서 Start-Process → Session 0 상속
subprocess.Popen("notepad.exe")  # PID 생성, HWND=0
```

**원인**: Windows 보안 정책 — Session 0에서 Session 1 윈도우 접근 차단 (Session Isolation).

## 해결 패턴

| # | 방법 | 효과 |
|---|---|---|
| 1 | `schtasks /create /sc onlogon /rl highest` + `/run` | Session 1 격리 시도 |
| 2 | **Jupyter Session 1 노트북** + `subprocess.Popen` (부모 세션 상속) | ✅ 검증됨 |
| 3 | Flask Agent (Session 1 사전 실행) + `/exec` Win32 API | ✅ |
| 4 | `DETACHED_PROCESS | CREATE_NEW_PROCESS_GROUP` 플래그 | 효과 미미 |

## 검증 사례 (2026-06-27)

| 시도 | 결과 |
|---|---|
| SSH + `Start-Process KakaoTalk.exe` | Session 0, HWND=0 |
| SSH + `explorer.exe KakaoTalk.exe` | 즉시 죽음 |
| schtasks `/run \Hermes\kakao_agent` | PID 생성 후 즉시 종료 |
| Flask Agent + `subprocess.Popen(DETACHED_PROCESS)` | PID 18824, HWND=0 |

## 판별 명령

```powershell
Get-Process -Id <PID> | Select-Object SessionId, MainWindowHandle
# SessionId=0 + MainWindowHandle=0 → Session 0 상속 실패
```

## 관련 페이지

- [[seomu-pc]]
- [[hermes-agent]]
- [[kakao-zombie]]
- [[dual-monitor]]
