timeline-activities
윈도우 10의 ActivitiesCache.db 파일을 파싱하여 타임라인 액티비티 내역을 조회합니다. 이 파일은 사용자가 실행한 프로그램, 열람한 문서, 방문한 웹 페이지 등의 활동 기록을 포함합니다.
명령어 속성
| 항목 | 설명 |
|---|---|
| 명령어 유형 | 드라이버 쿼리 |
| 필요 권한 | 클러스터 관리자 |
| 라이선스 사용량 | 집계함 |
| 병렬 실행 | 미지원 |
| 분산 실행 | 수집 노드에서 실행 (mapper) |
문법
대상
FILE_PATH- 조회할 ActivitiesCache.db 파일의 경로. 이 파일은 윈도우 10의
C:\Users\<username>\AppData\Local\ConnectedDevicesPlatform디렉터리 내부에 위치합니다.
출력 필드
| 필드 | 타입 | 설명 |
|---|---|---|
id | 바이너리 | 액티비티 고유 식별자 |
executable | 문자열 | 실행 파일 경로. AppId JSON 배열의 첫 번째 항목에서 추출한 값 (예: {1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\cmd.exe) |
activity_type | 문자열 | 작업 유형. ExecuteOpen(5): 프로그램 실행, InFocus(6): 포커스 활성화, CopyPaste(16): 클립보드 복사/붙여넣기 |
payload_app_display_name | 문자열 | 앱 표시 이름 (예: 명령 프롬프트) |
payload_display_text | 문자열 | 액티비티 표시 텍스트 |
payload_description | 문자열 | 액티비티 설명 |
payload_active_duration | 32비트 정수 | 활성화 기간 (초) |
start_time | 날짜 | 액티비티 시작 시각 |
end_time | 날짜 | 액티비티 종료 시각. 종료되지 않은 경우 null을 반환합니다. |
last_modified_time | 날짜 | 최종 수정 시각 |
last_modified_on_client | 날짜 | 클라이언트에서의 최종 수정 시각 |
expiration_time | 날짜 | 만료 시각 |
priority | 32비트 정수 | 중요도 |
activity_status | 32비트 정수 | 액티비티 상태 |
user_action_state | 32비트 정수 | 사용자 액션 상태 |
created_in_cloud | 32비트 정수 | 클라우드에서 생성 여부 |
is_read | 32비트 정수 | 읽기 여부 |
is_local_only | 32비트 정수 | 로컬 전용 여부 |
etag | 32비트 정수 | ETag 값 |
group_app_activity_id | 문자열 | 그룹 앱 액티비티 식별자 |
app_activity_id | 문자열 | 앱 액티비티 식별자 |
parent_activity_id | 바이너리 | 부모 액티비티 식별자 |
package_id_hash | 문자열 | 패키지 ID 해시 |
platform_device_id | 문자열 | 플랫폼 장치 식별자 |
payload_activation_uri | 문자열 | 활성화 URI |
payload_background_color | 문자열 | 배경 색상 |
payload_content_uri | 문자열 | 콘텐츠 URI |
payload_type | 문자열 | 페이로드 유형 |
payload_user_timezone | 문자열 | 사용자 시간대 |
payload_reporting_app | 문자열 | 보고 앱 |
clipboard_payload | 문자열 | 클립보드 페이로드 |
tag | 문자열 | 태그 |
오류 코드
파싱 오류
해당 사항 없음
런타임 오류
해당 사항 없음
설명
timeline-activities 명령어는 지정한 ActivitiesCache.db 파일을 SQLite 데이터베이스로 열어 Activity 테이블의 레코드를 조회합니다. 윈도우 10 타임라인은 사용자가 수행한 프로그램 실행, 문서 열기, 웹 브라우징 등의 활동을 기록합니다.
AppId 컬럼은 JSON 배열 형식으로 저장되어 있으며, 첫 번째 항목의 application 필드에서 실행 파일 경로를 추출하여 executable 필드에 할당합니다. ActivityType 컬럼은 정수값을 의미 있는 문자열로 변환합니다. Payload 컬럼은 JSON 형식으로 저장되어 있으며, 앱 표시 이름, 표시 텍스트, 활성화 기간 등의 세부 정보를 개별 필드로 분리하여 할당합니다.
날짜 필드는 유닉스 타임스탬프(초 단위)에서 날짜 타입으로 변환됩니다. end_time이 0이면 null을 할당합니다.
이 명령어는 ZIP 파일 내부의 파일 조회를 지원하지 않습니다.
이 명령어는 4.0.2511.0 버전부터 클러스터 관리자 권한이 필요하며, 접근 가능한 파일 경로가 제한됩니다. 자세한 내용은 파일 접근 제한을 참고하세요.
사용 예
각 사용 예의 파일 경로는 ALLOWED_FILE_SCAN_PATHS 설정에 포함되어 있다고 가정합니다.
-
ActivitiesCache.db 파일 조회
timeline-activities /opt/logpresso/evidence/ActivitiesCache.db지정한 경로의 ActivitiesCache.db 파일에서 모든 타임라인 액티비티를 조회합니다.
-
프로그램 실행 이력 필터링
timeline-activities /opt/logpresso/evidence/ActivitiesCache.db | search activity_type == "ExecuteOpen"프로그램 실행(ExecuteOpen) 유형의 액티비티만 필터링합니다.
-
특정 기간의 액티비티 조회
timeline-activities /opt/logpresso/evidence/ActivitiesCache.db | search start_time >= date("2025-01-01", "yyyy-MM-dd") | sort start_time2025년 1월 1일 이후에 발생한 액티비티를 시작 시각 기준으로 정렬하여 조회합니다.
호환성
timeline-activities 명령어는 소나 4.0 이전 버전부터 제공되었습니다. 4.0.2511.0 버전부터 클러스터 관리자 권한이 필요합니다.