반응형

WinToHDD 의존성을 전부 걷어내고,

자체 기능으로 대체하여 개선 및 테스트 진행 중 . . .


https://noways.tistory.com/2359

 

wimlib WIMUPDATE를 활용한 WIM 파일 자동 구성

WinToHDD를 걷어내기 위한 두 번째 단계 - WinRE Manager v2.0 1. winre.wim과 boot.wim이 준비되면 WIM 파일에 사용할 파일을 추가하는 과정(단계)을 추가하려고 한다. * 추가는 wimlib의 WIMUPDATE 기능을 사용하며,

noways.tistory.com

 

https://noways.tistory.com/2358

 

WinRE.wim 대안 boot.wim 연동 및 ReAgentc 기반 복구 환경 재구성...

WinToHDD를 걷어내기 위한 첫 번째 단계 - WinRE Manager v1.0 WinRE Manager — 작업 개요와 시스템 구상WinRE Manager는 Windows 복구 환경(WinRE) 또는 PE 이미지를 점검 → 확보 → 등록 → 1회 부팅까지 한 번에 처

noways.tistory.com


 

Remote Windows 자동 설치 연동 개요

원격·무인 환경에서 Windows를 다시 깔 때, 호스트에서 설정을 모으고 PE로 넘겨 실제 설치까지 이어지도록 세 프로그램을 한 흐름으로 연결했습니다.


전체 한 줄 요약

Remote Windows Installation V2에서 디스크·이미지·설치 옵션을 정하고 설정을 남긴 뒤, WinRE Manager V2가 PE 부팅을 준비해 재시작하고, Remote WinSetup PE V1이 그 설정을 읽어 포맷·이미지 적용·부팅 구성을 끝냅니다.


1단계 — Remote Windows Installation V2

(디스크 축소 → 이미지 다운로드 → 윈도우 설치 설정)

호스트 Windows에서 설치 전 작업을 담당합니다.

  1. 디스크 축소
    대상 디스크에서 공간을 나누고, 작업용 WINSCP 영역을 만듭니다. 이후 다운로드·설정·도구가 모두 이 경로 아래에서 움직입니다.
  2. 이미지 다운로드
    서버에서 WIM / ESD / ISO를 받아 확장자별 폴더로 정리하고, 설치 탭 경로에 자동으로 연결합니다.
  3. 윈도우 설치 설정
    설치할 파티션, 이미지 인덱스, 응답 파일(Unattend) 등을 고른 뒤 **InstallConfig.ini**에 기록합니다.
    저장이 끝나면 WinRE Manager V2를 실행하고, 기동이 확인되면 호스트 프로그램은 종료합니다.

이 단계의 결과는 “무엇을, 어디에, 어떻게 설치할지”가 담긴 설정 파일과, PE에서 쓸 소스·도구가 모인 WINSCP 폴더입니다.




2단계 — WinRE Manager V2

(호스트 → PE 1회 부팅)

호스트에 남아 있는 동안 PE 환경을 준비합니다.

  • PE용 WIM을 확보하고, 설치에 필요한 도구와 Remote WinSetup PE를 이미지에 넣습니다.
  • 부팅 설정에 **한 번만 쓰는 PE 항목(BootOnce)**을 만든 뒤 재시작합니다.

사용자는 호스트에서 “설치 시작”까지 한 뒤, 재부팅만 하면 됩니다. 실제 디스크 포맷과 이미지 적용은 다음 단계인 PE에서 이뤄집니다.




3단계 — Remote WinSetup PE V1

(PE에서 설치 실행)

WinPE로 들어온 뒤, WINSCP가 있는 드라이브를 찾아 **InstallConfig.ini**를 읽습니다. 드라이브 문자가 바뀌어도 경로를 다시 맞춰 소스를 찾습니다.

이후 순서는 다음과 같습니다.

  1. 대상 파티션 빠른 포맷 (확인 후 진행)
  2. WIM / ESD는 그대로, ISO는 마운트 후 이미지 적용 (wimlib-imagex)
  3. OEM·Unattend 복사
  4. UEFI / BIOS에 맞는 BCD 구성
  5. 완료 후 재시작 → 설치된 Windows로 진입



 


연동이 유지되는 방식

세 프로그램은 화면을 이어 쓰는 것이 아니라, 공통 설정 파일과 폴더로 연결됩니다.

전달 수단역할
WINSCP\InstallConfig.ini 디스크·파티션·소스 종류·경로·인덱스·응답 파일·부팅 방식
WINSCP\ 하위 폴더 WIM / ESD / ISO, Panther, 도구
PE BootOnce 호스트 → PE 전환
PE 종료 후 재부팅 PE → 설치된 Windows
 

호스트에서는 준비와 설정, PE에서는 실제 설치만 맡기도록 역할을 나눴습니다. 상용 설치 도구에 의존하지 않고, 설정 파일 기준으로 같은 절차를 반복할 수 있게 구성한 흐름입니다.

 


 


[시스템언어/영문] ReAgentc, WinRE.wim 모두 존재 하는 경우 - 움짤(GIF)

┗▶ \Windows\System32\Recovery\Winre.wim
┗▶ \Recovery\WindowsRE\Winre.wim

 


[시스템언어/한국어] ReAgentc, WinRE.wim 모두 존재 하는 경우 - 움짤(GIF)

┗▶ \Windows\System32\Recovery\Winre.wim
┗▶ \Recovery\WindowsRE\Winre.wim

 


[시스템언어한국어] ReAgentc는 있는데 WinRE.wim가 없는 경우 - 움짤(GIF)

┗▶ 설치용 `install.wim(esd)` 파일에서 `\Windows\System32\Recovery\Winre.wim` 추출 및 활용


[시스템언어한국어] ReAgentc는 있는데 WinRE.wim가 없는 경우 - 움짤(GIF)

┗▶ **NAS 서버 Ping 응답 확인 후 우선 다운로드, 실패 시 Google Drive에서 다운로드**


[시스템언어한국어] ReAgentc, WinRE.wim 모두 없는 경우 - 움짤(GIF)

┗▶ 설치용 `install.wim(esd)` 파일에서 `\Windows\System32\Recovery\Winre.wim` 추출 및 활용

 


 

 

■ 동영상 제목 클릭 후 전체화면(1080P)시청 가능합니다.

 

정보가 도움이 되었다면 아래 링크로 커피를 후원 해주세요. ^^

donaricano-btn

반응형
반응형

WinToHDD를 걷어내기 위한 두 번째 단계 - WinRE Manager v2.0

 

1. winre.wim과 boot.wim이 준비되면 WIM 파일에 사용할 파일을 추가하는 과정(단계)을 추가하려고 한다.


   * 추가는 wimlib의 WIMUPDATE 기능을 사용하며, 아래 링크의 명령어를 참고한다.
   * https://wimlib.net/man1/wimupdate.html

 

WIMUPDATE

WIMUPDATE NAME SYNOPSIS DESCRIPTION AVAILABLE COMMANDS add [OPTION...] SOURCE DESTINATION delete [OPTION...] PATH rename OLD_PATH NEW_PATH OPTIONS NOTES EXAMPLES SEE ALSO NAME wimupdate - Update a WIM image SYNOPSIS wimupdate WIMFILE [IMAGE] [OPTION...] [<

wimlib.net

 


2. 컴파일 시 아래 Tools 폴더에 있는 파일을 FileInstall 패키징에 포함한 후 임시 폴더에 풀어서 사용한다.

   * wimlib 폴더의 파일은 \Windows 경로에 풀어서 사용해야 오류가 발생하지 않는다.
   * \Windows 경로에 파일이 존재하면 그대로 사용하고, 없으면 압축을 해제한 후 사용한다.

 

\Tools
│  LaunchBar_Source.7z
│
├─7zip
│      7z.dll
│      7z.exe
│
└─wimlib
        libwim-15.dll
        wimlib-imagex.exe



3. WIM에 추가할 파일의 트리 구조는 `LaunchBar_Source_tree.txt` 파일을 참고한다.

   * `LaunchBar_Source_tree.txt`의 구조를 참고하여 아래 `update_commands.txt` 형식에 맞게 변환해야 한다.

update_commands.txt:

add somedir /dir
add somefile /dir/file

$ wimupdate boot.wim 2 < update_commands.txt



4. winre.wim과 boot.wim의 인덱스 개수를 확인한다.

   * winre.wim의 인덱스가 1개인 경우 1번 인덱스에 추가한다.
   * boot.wim의 경우 인덱스가 2개이므로 2번 인덱스에 추가한다.
   * 실제 부팅되는 인덱스에 추가되도록 확인 및 검증한다.

5. 파일 추가 작업이 완료되면 WIMOptimizer 명령을 사용하여 WIM을 최적화한 후 다음 작업을 이어서 진행한다.

   * 추가 및 최적화 과정은 팝업 프로그레스로 표시하여 사용자가 진행 상황을 인지할 수 있도록 구성한다.

 


https://noways.tistory.com/2358

 

WinRE.wim 대안 boot.wim 연동 및 ReAgentc 기반 복구 환경 재구성...

WinToHDD를 걷어내기 위한 첫 번째 단계 - WinRE Manager v1.0 WinRE Manager — 작업 개요와 시스템 구상WinRE Manager는 Windows 복구 환경(WinRE) 또는 PE 이미지를 점검 → 확보 → 등록 → 1회 부팅까지 한 번에 처

noways.tistory.com

 

https://noways.tistory.com/2360

 

Remote Windows Installation V2 - 테스트 중 . . .

WinToHDD 의존성을 전부 걷어내고, 자체 기능으로 대체하여 개선 및 테스트 진행 중 . . .https://noways.tistory.com/2359 wimlib WIMUPDATE를 활용한 WIM 파일 자동 구성WinToHDD를 걷어내기 위한 두 번째 단계 - WinRE

noways.tistory.com


이걸 AI한데 명령을 내리면 . . .


▶▶ ReAgentc, WinRE.wim 모두 존재 하는 경우 - 움짤(GIF)

 


ReAgentc는 있는데 WinRE.wim가 없는 경우 - 움짤(GIF)

 


▶▶ ReAgentc, WinRE.wim 모두 없는 경우 - 움짤(GIF)

 

 


▶ ▶ Winre.wim / boot.wim 다운로드 전 대처 방안 추가 - 움짤(GIF)

             ┗▶ 설치용 `install.wim(esd)` 파일에서 `\Windows\System32\Recovery\Winre.wim` 추출 및 활용

 

 


PE로 재부팅해서 진입하고, 런처바 연동까지는 성공했고, 


남은 단계는 윈도우 설치 파티션을 찾아 포맷하고


설치까지 연동하는 것인데… ㅡㅅㅡ


대충 구상은 해놨는데, 이상하게 손대기가 싫은 이유가 뭘까? ㅋㅋㅋ

 

■ 동영상 제목 클릭 후 전체화면(1080P)시청 가능합니다.

 

정보가 도움이 되었다면 아래 링크로 커피를 후원 해주세요. ^^

donaricano-btn

반응형
반응형

WinToHDD를 걷어내기 위한 첫 번째 단계 - WinRE Manager v1.0

 

WinRE Manager — 작업 개요와 시스템 구상

WinRE Manager는 Windows 복구 환경(WinRE) 또는 PE 이미지를 점검 → 확보 → 등록 → 1회 부팅까지 한 번에 처리하는 AutoIt 자동화 도구입니다.

 

핵심은 단순합니다.
ReAgentc.exe 가 있느냐, 없느냐에 따라 역할을 완전히 나눕니다.

  • 경로 A (ReAgentc 있음) — 정식 WinRE 등록·활성화
  • 경로 B (ReAgentc 없음) — PE 1회 부팅(BCD BootOnce)만 수행
    ※ WinRE 등록을 흉내 내지 않음 (기능 자체가 불가하기 때문)

https://noways.tistory.com/2359

 

wimlib WIMUPDATE를 활용한 WIM 파일 자동 구성

WinToHDD를 걷어내기 위한 두 번째 단계 - WinRE Manager v2.0 1. winre.wim과 boot.wim이 준비되면 WIM 파일에 사용할 파일을 추가하는 과정(단계)을 추가하려고 한다. * 추가는 wimlib의 WIMUPDATE 기능을 사용하며,

noways.tistory.com

https://noways.tistory.com/2360

 

Remote Windows Installation V2 - 테스트 중 . . .

WinToHDD 의존성을 전부 걷어내고, 자체 기능으로 대체하여 개선 및 테스트 진행 중 . . .https://noways.tistory.com/2359 wimlib WIMUPDATE를 활용한 WIM 파일 자동 구성WinToHDD를 걷어내기 위한 두 번째 단계 - WinRE

noways.tistory.com



1. 프로그램 목적

관리자 권한으로 실행되며, 중복 실행을 막고(_Singleton), 로그(log.txt)와 경과 시간 UI를 유지한 채 아래 작업을 진행합니다.

  • 로컬 Winre.wim / PE용 WIM 존재·크기 검증 (최소 100MB)
  • 없으면 NAS 또는 Google Drive에서 다운로드
  • ReAgentc가 있으면 /setreimage · /enable 로 정식 등록
  • 없으면 BCD에 램디스크 1회 부팅 항목만 생성
  • 사용자 확인 후 재부팅

2. 프로그램 진행 상황 (상세)

2.1 시작 및 초기화

  1. #RequireAdmin — 관리자 권한 필수
  2. _Singleton — 이미 실행 중이면 경고 후 종료
  3. 로그 파일 초기화, 전체 경과 타이머·Adlib UI 갱신 시작
  4. ReAgentc.exe 경로 탐색
    • 후보: ReAgentc.exe / System32 / SysNative
    • 없으면 where ReAgentc.exe 폴백

2.2 1단계 — 모드 분기 및 로컬 점검

【경로 A】 ReAgentc 존재

  • ReAgentc /info 실행 → Enabled 여부, RE Location 파싱
  • 로컬 파일 검사
    • C:\Windows\System32\Recovery\Winre.wim
    • C:\Recovery\WindowsRE\Winre.wim
  • 완전 유효(Enabled + 위치 + 파일) → 재부팅 여부만 묻고 /boottore 또는 종료
  • 파일만 있으면 표준 경로로 재배치, 없으면 다운로드 플래그

【경로 B】 ReAgentc 없음 (PE 전용)

  • WinRE 등록 개념 없이 로컬 WIM만 검색
  • 검색 순서: Recovery 표준/대체 → C:\boot_sdi\boot.wim → 스크립트 폴더 boot.wim
  • 있으면 그대로 BCD에 사용, 없으면 다운로드 플래그
  • 사용자에게 “WinRE 등록 불가 / PE 1회 부팅” 안내

2.3 2단계 — WIM 다운로드 (필요 시)

  1. 사용자 동의 (취소 시 종료)
  2. NAS 192.168.0.9 Ping
    • 도달 → NAS 우선, 실패 시 Google Drive
    • 미도달 → Google Drive만 (또는 설정에 따른 순서)
  3. 저장 위치
    • WinRE 모드 → ...\Recovery\Winre.wim
    • PE 모드 → C:\boot_sdi\boot.wim
  4. 진행률·속도·용량 GUI, 100MB 미만이면 실패 후 다음 소스 시도

2.4 3단계 — 등록 / 부팅 항목 생성

경로 A

  • 속성 -RSH 제거
  • /disable/setreimage /path/enable
  • 성공 시 +SH 부여
  • 실패 시 BCD BootOnce 비상 폴백

경로 B

  • ReAgentc 호출 없음
  • _BootOnceViaBCD만 실행
    1. boot.sdi 탐색·복사 (C:\boot_sdi)
    2. {ramdiskoptions} 생성
    3. osloader 항목 생성 → GUID 파싱
    4. device / osdevice = ramdisk, path, winpe Yes
    5. 기존 bootsequence 정리 후 새 GUID로 /bootsequence
    6. RunOnce에 다음 부팅 후 GUID 삭제 등록

2.5 4단계 — 완료 및 재부팅

  • 모드별 완료 메시지 + 전체 소요 시간
  • WinRE: /boottoreShutdown(6) (실패 시 BCD 폴백)
  • PE: 이미 bootsequence 설정됨 → Shutdown(6)만 수행
  • 아니오 → 재부팅 취소 안내 후 종료

3. 시스템 구상도

전체 흐름을 한눈에 보는 플로우차트입니다.

파랑 계열 = 정식 WinRE 경로  |  주황 계열 = PE 1회 부팅 경로

 

 

C:\Users\Administrator\Desktop>reagentc/?

Windows RE(Windows 복구 환경) 및 시스템 초기화를 구성합니다.

REAGENTC.EXE <명령> <인수>

다음 명령을 지정할 수 있습니다.

  /info             - Windows RE 및 시스템 초기화 구성 정보를
                      표시합니다.
  /setreimage       - 사용자 지정 Windows RE 이미지의 위치를 설정합니다.
  /enable           - Windows RE를 사용하도록 설정합니다.
  /disable          - Windows RE를 사용하지 않도록 설정합니다.
  /boottore         - 다음에 시스템을 시작할 때 Windows RE를 시작하도록
                      시스템을 구성합니다.
  /setbootshelllink - 부팅 메뉴의 초기화 및 복원 페이지에 항목을
                      추가합니다.

이러한 명령과 인수에 대한 자세한 내용을 보려면
REAGENTC.EXE <명령> /?를 입력하세요.

  예:
    REAGENTC.EXE /setreimage /?
    REAGENTC.EXE /disable /?

REAGENTC.EXE: 작업 성공


C:\Users\Administrator\Desktop>reagentc /info
Windows RE(Windows 복구 환경) 및 시스템 재설정 구성
정보:

    Windows RE 상태:         Enabled
    Windows RE 위치:       \\?\GLOBALROOT\device\harddisk0\partition2\Recovery\WindowsRE
    BCD(부팅 구성 데이터) 식별자: da26f287-b236-11f1-8c07-f96f4bf4397a
    복구 이미지 위치:
    복구 이미지 인덱스:      0
    사용자 지정 이미지 위치:
    사용자 지정 이미지 인덱스:        0

REAGENTC.EXE: 작업 성공


C:\Users\Administrator\Desktop>

 


4. 경로·파일 요약

구분 경로
표준 WinRE C:\Windows\System32\Recovery\Winre.wim
대체 WinRE C:\Recovery\WindowsRE\Winre.wim
PE 다운로드 저장 C:\boot_sdi\boot.wim
boot.sdi 작업 위치 C:\boot_sdi\boot.sdi
로그 스크립트 폴더 log.txt
NAS URL http://192.168.0.9/boot.wim

5. 설계 원칙

  1. ReAgentc 없으면 WinRE 등록을 시도하지 않는다 — 기능 자체가 불가
  2. WMI / PowerShell / COM 미사용 — AutoIt + 시스템 실행 파일만
  3. 다운로드 전 NAS Ping으로 소스 우선순위 결정
  4. BCD 항목은 1회성(bootsequence)이며 RunOnce로 자동 정리
  5. 최소 WIM 크기 100MB로 손상·가짜 파일 차단
  6. 중요 안내는 항상 위(_MsgBoxTop), 진행률·경과 시간 UI 유지

정리

WinRE Manager는 “복구 환경을 어떻게든 띄운다”가 아니라, 가능한 수단에 맞춰 올바른 경로만 탄다는 쪽에 맞춰 두었습니다.

  • ReAgentc가 있으면 → Windows가 기대하는 WinRE 등록
  • 없으면 → PE 램디스크 1회 부팅으로 최소한의 목표만 달성

불필요한 검증과 WinRE 흉내를 줄이고, 분기만 명확히 해서 실제 현장(복구 이미지 유무, NAS 도달 여부)에 맞게 동작하도록 구성한 스크립트입니다.

 


▶▶ ReAgentc, WinRE.wim 모두 존재 하는 경우움짤(GIF)


 


▶▶ ReAgentc는 있는데 WinRE.wim가 없는 경우 - 움짤(GIF)


▶▶ ReAgentc, WinRE.wim 모두 없는 경우 - 움짤(GIF)


 

■ 동영상 제목 클릭 후 전체화면(1080P)시청 가능합니다.

 

정보가 도움이 되었다면 아래 링크로 커피를 후원 해주세요. ^^

donaricano-btn

반응형
반응형

IP 주소 찾기 v3.0

Windows 또는 WinPE 환경에서 현재 시스템의 네트워크 정보를 간편하게 확인할 수 있는 IP 주소 찾기 v3.0을 소개합니다. 이 프로그램은 단순히 현재 사용 중인 IP 주소 하나만 보여주는 도구가 아니라, 네트워크 인터페이스별 IPv4 주소, 서브넷 마스크, 기본 게이트웨이, DNS 서버 정보를 비롯하여 Windows 버전과 OS 빌드, 제품키, 설치된 프린터 정보까지 한 번에 확인할 수 있도록 구성했습니다. 특히 일반적인 Windows 환경뿐만 아니라 WinPE 환경에서도 오프라인으로 설치된 Windows 정보를 조회할 수 있도록 구성된 것이 특징입니다.

 

▼ 2023-09-21(월) / 갱신 ▼ 

IP Address Finder v3.0.zip
0.76MB

 


프로그램 기본 구성

프로그램을 실행하면 Main 탭과 도움말 탭으로 구성된 간단한 GUI가 표시됩니다.

상단에는 다음과 같은 바로가기 기능이 제공됩니다.

  • 장치 및 프린터
  • 네트워크 연결
  • 언어 선택

하단에는 조회 결과를 처리할 수 있도록 다음 버튼이 배치되어 있습니다.

  • 저장
  • 복사
  • IP 조회

조회 결과는 프로그램 내부의 편집 창에 표시되며, 확인한 정보를 텍스트 파일로 저장하거나 클립보드로 바로 복사할 수 있습니다.


Windows / WinPE 환경 자동 감지

프로그램 시작 시 현재 실행 환경을 자동으로 확인합니다.

IsPEEnvironment() 함수에서는 다음과 같은 방법으로 WinPE 환경 여부를 판단합니다.

  • HKLM\SYSTEM\CurrentControlSet\Control\MiniNT 레지스트리 확인
  • X:\Windows\System32 경로 존재 여부 확인
  • 현재 시스템 디렉터리가 X:\Windows\System32인지 확인

WinPE 환경으로 판단되면 일반 Windows 환경과 다른 조회 방식을 사용합니다. 또한 WinPE에서는 Windows 환경에서 사용할 수 있는 장치 및 프린터 / 네트워크 연결 바로가기 기능을 화면에서 숨기도록 처리되어 있습니다.

 


Windows 설치 드라이브 자동 탐색

WinPE에서 프로그램을 실행할 경우 현재 실행 중인 PE가 아닌 실제 Windows가 설치된 드라이브를 선택할 수 있도록 구성되어 있습니다. PopulateDriveCombo() 함수에서는 고정 디스크 드라이브를 검색한 후 다음 경로를 확인합니다. Windows\System32\config\SYSTEM 해당 SYSTEM 하이브가 존재하는 드라이브를 Windows 설치 드라이브로 판단하여 콤보박스에 등록합니다. 따라서 여러 개의 Windows 설치 디스크가 연결되어 있는 PE 환경에서도 조회 대상 Windows를 선택할 수 있습니다. PE에서 사용되는 X:, Y:, Z: 드라이브는 Windows 설치 드라이브 검색 대상에서 제외하도록 처리되어 있습니다.


Windows 환경의 IP 정보 조회

일반적인 Windows 환경에서는 FindIPInWindows()를 통해 현재 실행 중인 Windows의 정보를 조회합니다.

조회 과정은 다음과 같이 단계적으로 진행됩니다.

  1. 장치 및 OS 정보 조회
  2. 네트워크 정보 조회
  3. 프린터 정보 조회
  4. 결과 정리

조회 과정에는 별도의 진행 창이 표시되어 현재 어떤 정보를 확인하고 있는지 사용자에게 알려줍니다.

 


Windows OS 정보 및 제품키 조회

Windows 환경에서는 레지스트리에서 다음 정보를 가져옵니다.

  • ProductName
  • DisplayVersion
  • CurrentBuild
  • UBR
  • DigitalProductId

이를 이용하여 Windows 제품명과 버전, OS 빌드 정보를 구성합니다.

예를 들어 결과에는 다음과 같은 형태로 표시됩니다.

Windows 정보 : Windows 11 Pro
                : 버전 25H2 (OS 빌드 26200.xxx)
제품키        : XXXXX-XXXXX-XXXXX-XXXXX-XXXXX

 

 

제품키는 단순히 레지스트리 값을 그대로 출력하는 방식이 아니라 DecodeDigitalProductId() 함수를 이용하여 DigitalProductId 바이너리 데이터를 해석하고 25자리 제품키 형태로 변환합니다.

 


Windows API를 이용한 네트워크 정보 조회

네트워크 정보는 AutoIt의 외부 명령어에 의존하지 않고 Windows API를 직접 호출하는 방식으로 구성되어 있습니다. _GetNetworkAdapterInfoWinAPI() 함수에서는 Windows의 GetAdaptersAddresses API를 이용하여 네트워크 어댑터 정보를 가져옵니다.

 

 

각 네트워크 인터페이스에 대해 다음 정보를 확인합니다.

  • 인터페이스 이름
  • IPv4 주소
  • 서브넷 마스크
  • 기본 게이트웨이
  • DNS 서버

 

게이트웨이와 DNS 정보는 각각 연결된 주소 구조를 순회하면서 IPv4 주소를 추출하고 inet_ntoa를 이용하여 사람이 읽을 수 있는 IP 주소 형태로 변환합니다. 이 방식으로 여러 개의 네트워크 어댑터가 연결된 시스템에서도 인터페이스별 네트워크 정보를 구분하여 표시할 수 있습니다.

 


서브넷 마스크 조회

네트워크 어댑터 정보에서 IPv4 주소를 확인한 후 해당 IP에 대응하는 서브넷 마스크를 레지스트리에서도 확인하도록 구성되어 있습니다.

_GetSubnetMaskFromRegistryWinAPI() 함수에서는 SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces

 

경로의 네트워크 인터페이스 정보를 순회합니다.

각 인터페이스에서 IPAddress, SubnetMask 값을 확인하고, DHCP 환경에서는 다음 값을 대체하여 확인합니다.

  • DhcpIPAddress
  • DhcpSubnetMask

이를 통해 고정 IP뿐만 아니라 DHCP로 할당된 네트워크 설정도 확인할 수 있도록 구성되어 있습니다.


설치된 프린터 정보 조회

이 프로그램은 네트워크 정보뿐만 아니라 설치된 프린터 정보도 함께 확인합니다. _GetPrinterInfoWinAPI() 함수에서는 Windows 레지스트리의 프린터 정보를 직접 조회하여 프린터 이름과 연결된 포트 정보를 확인합니다. 네트워크 프린터의 경우 포트 이름에서 IPv4 주소를 추출하고, 필요한 경우 Standard TCP/IP Port의 레지스트리 정보를 추가로 조회하여 IP 주소를 확인합니다.

 

결과에는 다음과 같은 형태로 표시됩니다.

프린터 정보:

  프린터 이름 : 프린터 이름
  IP 주소     : 192.168.0.xxx

 

 

IP 주소를 확인할 수 없는 USB 또는 로컬 포트 등의 경우에는 미확인 (USB/로컬 포트)로 표시합니다.

또한 OneNote와 Root-Printer 등 프로그램에서 제외하도록 지정된 항목은 조회 결과에서 제외합니다.


WinPE에서 오프라인 Windows 정보 조회

이 프로그램에서 가장 특징적인 부분은 WinPE 환경에서 실행했을 때 실제 설치된 Windows의 정보를 조회할 수 있다는 점입니다.

WinPE에서는 현재 실행 중인 운영체제가 PE이기 때문에 일반적인 HKLM 레지스트리만 조회해서는 대상 Windows의 네트워크 설정을 확인할 수 없습니다.

 

이를 해결하기 위해 선택한 Windows 설치 드라이브의 다음 하이브를 임시로 로드합니다.

Windows\System32\config\SYSTEM
Windows\System32\config\SOFTWARE

 

SYSTEM 하이브는 HKLM\TempSystem, SOFTWARE 하이브는 HKLM\TempSoftware에 임시로 연결합니다.

이후 해당 하이브에서 다음 정보를 조회합니다.

  • 컴퓨터 이름
  • Windows 제품명
  • DisplayVersion
  • OS 빌드
  • DigitalProductId
  • 네트워크 인터페이스
  • IP 주소
  • 서브넷 마스크
  • 기본 게이트웨이
  • DNS 서버
  • 프린터 관련 정보

조회가 끝나면 사용했던 하이브를 자동으로 언로드합니다. 따라서 PE 환경에서 대상 Windows를 직접 부팅하지 않은 상태에서도 저장된 Windows의 시스템 정보를 확인할 수 있습니다.


WinPE 네트워크 설정 조회

WinPE에서는 대상 Windows의 SYSTEM 하이브에서 다음 경로를 기준으로 네트워크 인터페이스 정보를 확인합니다.

ControlSet001\Services\Tcpip\Parameters\Interfaces

 

각 인터페이스에서 다음 값을 조회합니다.

IPAddress
SubnetMask
DefaultGateway
NameServer

 

고정 설정값이 없는 경우 DHCP 관련 값을 추가로 확인합니다.

DhcpIPAddress
DhcpSubnetMask
DhcpDefaultGateway
DhcpNameServer

 

또한 네트워크 인터페이스 GUID를 이용하여 실제 네트워크 어댑터 이름을 찾아 결과에 표시하도록 구성되어 있습니다.


WinPE에서 프린터 정보 확인

프린터 정보 역시 대상 Windows의 SYSTEM 하이브를 기준으로 조회합니다. 프린터 드라이버 정보는 Version-3 및 Version-4 영역을 확인하고, Standard TCP/IP Port에 등록된 포트 정보도 함께 확인합니다. 이를 통해 WinPE에서 실행하더라도 현재 PE에 설치된 프린터가 아니라 선택한 Windows 설치 환경에 저장되어 있는 프린터 관련 정보를 확인할 수 있습니다.

 


조회 결과 저장 및 클립보드 복사

IP 조회가 완료되면 결과는 내부 변수에 저장되며 두 가지 방법으로 활용할 수 있습니다.

저장

저장 버튼을 클릭하면 파일 저장 대화상자가 표시되고 조회 결과를 .txt 파일로 저장할 수 있습니다.

기본 파일명은 다음과 같습니다.

IP_Info.txt

복사

복사 버튼을 이용하면 마지막으로 조회한 결과를 클립보드에 복사할 수 있습니다. 따라서 네트워크 설정을 다른 문서나 작업 화면에 옮겨야 할 경우 별도로 IP 주소를 직접 입력할 필요 없이 바로 붙여 넣을 수 있습니다.


한국어 / 영어 다국어 지원

프로그램 우측 상단에는 언어 선택 콤보박스가 있습니다.

현재 다음 두 가지 언어를 지원합니다.

  • 한국어
  • English

언어를 변경하면 프로그램 제목과 버튼, 도움말뿐만 아니라 조회 결과에 표시되는 주요 문구도 함께 변경됩니다. 선택한 언어는 프로그램 실행 폴더의 setting.ini에 저장되기 때문에 다음 실행에서도 마지막으로 선택한 언어 설정을 유지합니다.


장치 및 프린터 / 네트워크 연결 바로가기

프로그램 상단에는 Windows의 관련 시스템 기능을 바로 실행할 수 있는 링크가 배치되어 있습니다.

장치 및 프린터

Windows의 장치 및 프린터 화면을 바로 실행합니다.

네트워크 연결

ncpa.cpl을 실행하여 Windows의 네트워크 연결 화면을 바로 열 수 있습니다.

다만 WinPE 환경에서는 해당 기능이 지원되지 않기 때문에 두 링크를 화면에서 숨기도록 처리되어 있습니다.


중복 실행 방지

프로그램 실행 시 _Singleton()을 이용하여 동일 프로그램의 중복 실행을 방지합니다.

이미 프로그램이 실행 중인 상태에서 다시 실행하면 알림을 표시하고 새로운 인스턴스는 종료됩니다.

여러 개의 프로그램 창이 동시에 실행되는 것을 방지하여 단일 프로그램 형태로 사용할 수 있도록 구성했습니다.


관리자 권한 실행

소스에서는 다음과 같이 관리자 권한 실행을 요구하도록 설정되어 있습니다.

#RequireAdmin

 

특히 WinPE에서 외부 Windows의 레지스트리 하이브를 로드하거나 시스템 정보를 확인하는 작업이 포함되어 있기 때문에 프로그램은 관리자 권한으로 실행하도록 구성되어 있습니다.


IP 주소 찾기 v3.0의 주요 기능

정리하면 이번 프로그램은 다음과 같은 기능을 제공합니다.

  • Windows / WinPE 환경 자동 감지
  • Windows 설치 드라이브 자동 검색
  • WinPE에서 오프라인 Windows 정보 조회
  • 컴퓨터 이름 확인
  • Windows 제품명 및 버전 확인
  • OS 빌드 정보 확인
  • DigitalProductId 기반 Windows 제품키 조회
  • 네트워크 인터페이스별 IPv4 주소 조회
  • 서브넷 마스크 조회
  • 기본 게이트웨이 조회
  • DNS 서버 조회
  • 설치된 프린터 정보 조회
  • 네트워크 프린터 IP 주소 조회
  • 조회 결과 TXT 저장
  • 조회 결과 클립보드 복사
  • 한국어 / 영어 지원
  • 장치 및 프린터 바로가기
  • 네트워크 연결 바로가기
  • 중복 실행 방지

마무리

IP 주소 찾기 v3.0은 단순한 IP 확인 프로그램을 넘어 Windows 환경에서 필요한 네트워크 및 시스템 정보를 한 번에 확인할 수 있도록 구성한 진단용 유틸리티입니다. 특히 WinPE 환경에서 실행하여 실제 설치된 Windows의 SYSTEM 및 SOFTWARE 하이브를 임시로 로드하고, 해당 Windows에 저장된 네트워크 설정과 OS 정보를 확인할 수 있도록 구성한 부분이 핵심입니다. 또한 Windows API를 직접 호출하여 네트워크 어댑터와 프린터 정보를 조회하고, 조회된 결과를 텍스트 파일이나 클립보드로 활용할 수 있도록 구성했습니다. Windows 설치 및 복구 작업, WinPE 기반 유지보수 환경, 네트워크 설정 확인 등의 작업에서 간단하게 실행하여 필요한 정보를 확인하는 용도로 활용할 수 있습니다.

 

[윈도우 환경] IP Address Finder v3.0 사용 방법 - 움짤(GIF)

 

 

[PE 환경] IP Address Finder v3.0 사용 방법 - 움짤(GIF)

반응형

+ Recent posts