반응형

IP 주소 찾기 v3.0

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

 


프로그램 기본 구성

프로그램을 실행하면 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)

반응형
반응형

Windows Credential and Advanced Share Manager v1.0

Windows 환경에서 네트워크 공유 폴더를 사용하다 보면 Windows 자격 증명 관리, 네트워크 검색, 파일 및 프린터 공유, 공용 폴더 공유, 암호 보호 공유 등의 설정을 각각 다른 위치에서 확인하고 변경해야 하는 경우가 있습니다. 이번에 제작한 Windows Credential and Advanced Share Manager v1.0은 이러한 네트워크 관련 설정을 하나의 GUI에서 관리할 수 있도록 구성한 AutoIt 기반 프로그램입니다. 프로그램은 크게 **「자격 증명 관리자」**와 「고급 공유 설정」 두 개의 탭으로 구성되어 있으며, Windows에 저장된 네트워크 자격 증명을 확인하고 관리하는 기능과 Windows의 고급 공유 관련 설정을 한곳에서 변경할 수 있도록 구성했습니다.


1. 자격 증명 관리자

첫 번째 탭은 Windows에 저장되어 있는 자격 증명을 확인하고 관리하는 기능입니다. 프로그램에서는 Windows Credential API의 CredEnumerateW를 이용하여 현재 시스템에 등록된 자격 증명 정보를 조회합니다.

 

 

조회 결과는 다음과 같은 항목으로 표시됩니다.

  • 대상 이름
  • 사용자 이름
  • 유형
  • 지속성

또한 자격 증명의 종류에 따라 필터링할 수 있도록 구성했습니다.

자격 증명 필터

상단에는 다음 세 가지 필터가 있습니다.

  • Windows 자격 증명
  • 인증서 기반 자격 증명
  • 일반 자격 증명

필요한 항목만 체크하여 목록에 표시할 수 있기 때문에 여러 종류의 자격 증명이 등록되어 있는 시스템에서도 원하는 정보만 확인할 수 있습니다. 기본적으로는 Windows 자격 증명이 선택되도록 구성되어 있으며, 필터 상태는 INI 파일에 저장됩니다.


2. 자격 증명 추가

네트워크 위치에 접속하기 위한 자격 증명도 프로그램에서 직접 추가할 수 있습니다.

 

입력 항목은 다음과 같습니다.

  • 인터넷 또는 네트워크 주소
  • 사용자 이름
  • 암호

예를 들어 네트워크 서버나 공유 폴더에 접근할 때 사용하는 서버 이름 또는 네트워크 위치를 입력하고 해당 계정 정보를 등록할 수 있습니다. 자격 증명 추가 방식은 다음 두 가지를 선택할 수 있습니다.

  • Windows 자격 증명으로 추가
  • 일반 자격 증명으로 추가

자격 증명 등록에는 Windows의 CredWriteW API를 사용하도록 구성되어 있습니다. 따라서 단순히 프로그램 내부에 별도의 목록을 만들어 저장하는 방식이 아니라 Windows 자격 증명 저장 기능을 이용하는 구조입니다.

 


3. 자격 증명 수정 및 제거

등록되어 있는 자격 증명을 선택하면 해당 항목의 정보를 입력 영역으로 불러올 수 있으며, 이를 이용하여 자격 증명을 수정하거나 제거할 수 있습니다.

 

하단에는 다음 버튼을 배치했습니다.

  • 새로고침
  • 제거
  • 수정
  • 추가
  • 자격 증명 관리자 열기

특히 「자격 증명 관리자 열기」 버튼을 이용하면 Windows의 기본 자격 증명 관리 화면으로 바로 이동할 수 있도록 구성했습니다.

프로그램 자체에서 관리하는 기능과 Windows 기본 관리 기능을 함께 사용할 수 있도록 한 부분입니다.

 


4. 고급 공유 설정

두 번째 탭에서는 Windows의 네트워크 공유와 관련된 주요 설정을 하나의 화면에서 확인하고 변경할 수 있습니다.

 

설정은 크게 다음과 같이 나누어져 있습니다.

개인 / 프라이빗 네트워크

  • 네트워크 검색
  • 네트워크 연결 장치의 자동 설정
  • 파일 및 프린터 공유

게스트 또는 공용 네트워크

  • 네트워크 검색
  • 파일 및 프린터 공유

모든 네트워크

  • 공용 폴더 공유
  • 파일 공유 연결 암호화
  • 암호로 보호된 공유

각 항목은 현재 Windows에 적용되어 있는 상태를 읽어와 GUI에 표시하도록 구성했습니다. 따라서 단순히 프로그램에 저장된 설정값을 보여주는 방식이 아니라 시스템의 실제 상태를 조회하여 표시하는 것을 기본 구조로 하고 있습니다.

 


5. 네트워크 검색 및 파일·프린터 공유

개인 네트워크와 공용 네트워크를 구분하여 네트워크 검색과 파일 및 프린터 공유를 각각 켜거나 끌 수 있습니다. 예를 들어 개인 네트워크에서는 네트워크 검색과 파일 및 프린터 공유를 활성화하고, 공용 네트워크에서는 해당 기능을 비활성화하는 형태로 각각 독립적으로 설정할 수 있습니다. Windows 방화벽의 네트워크 검색 및 파일·프린터 공유 관련 규칙 그룹을 이용하여 설정을 적용하도록 구현되어 있습니다. 또한 개인 네트워크에서 네트워크 검색을 켜는 경우에는 「네트워크 연결 장치의 자동 설정」 옵션도 별도로 관리할 수 있습니다.

 


6. 공용 폴더 공유

모든 네트워크 영역에서는 Windows의 공용 폴더 공유 설정을 별도로 관리할 수 있습니다.

 

프로그램에서는 기본 공용 폴더 경로를 다음과 같이 정의하고 있습니다.

 

C:\Users\Public

 

공용 폴더 공유를 활성화하면 Users 공유를 구성하고 공유 권한을 적용하며, 비활성화하면 해당 공유를 제거하도록 구현되어 있습니다. 설정 변경 후에는 실제 상태를 다시 확인하여 성공 여부를 로그에 기록하도록 구성했습니다.

 


7. 파일 공유 연결 암호화

파일 공유 연결에 사용되는 암호화 수준도 프로그램에서 변경할 수 있습니다.

두 가지 옵션을 제공합니다.

  • 128비트 암호화 사용
  • 40비트 또는 56비트 암호화 사용

기본적으로 128비트 암호화를 사용하는 형태이며, 구형 NAS나 공유기 등에서 호환성 문제가 발생하는 경우 40/56비트 암호화 설정을 선택할 수 있도록 구성했습니다. 해당 설정은 NtlmMinClientSec 및 NtlmMinServerSec 레지스트리 값을 이용하여 적용합니다.

 


8. 암호로 보호된 공유

Windows 파일 공유에서 자주 확인하게 되는 암호로 보호된 공유 설정도 프로그램에서 직접 변경할 수 있습니다. 프로그램에서는 Windows의 Guest 계정 상태를 NetUserGetInfo API로 조회하여 현재 암호 보호 공유 상태를 판단하도록 구성했습니다. 설정 변경 시에는 Guest 계정의 활성화 또는 비활성화를 이용하여 상태를 변경합니다. 따라서 Windows 11에서 제어판의 고급 공유 설정에서 확인할 수 있는 암호 보호 공유 항목과 연계하여 사용할 수 있습니다.

 


9. 문제 해결 프리셋

이번 프로그램에서 특히 편리하게 사용할 수 있도록 구성한 부분이 「문제 해결 선택」 기능입니다.

고급 공유 설정 화면 상단에서 상황에 맞는 프리셋을 선택할 수 있습니다.

제공되는 항목은 다음과 같습니다.

 

네트워크 폴더 접근 안 됨 (암호 요구)

다른 PC의 공유 폴더에 접근할 때 암호를 요구하거나 접근이 거부되는 경우를 대상으로 합니다.

적용되는 설정은 다음과 같습니다.

  • 암호로 보호된 공유 끄기
  • 공용 폴더 공유 켜기
  • 공용 네트워크 파일 및 프린터 공유 켜기

다른 컴퓨터에서 공유가 안 보임

다른 컴퓨터에서 현재 PC의 공유 폴더나 장치가 보이지 않는 경우를 대상으로 합니다.

다음 설정을 적용합니다.

  • 개인 네트워크 검색 켜기
  • 네트워크 장치 자동 설정 켜기
  • 개인 네트워크 파일 및 프린터 공유 켜기
  • 공용 네트워크 검색 켜기
  • 공용 네트워크 파일 및 프린터 공유 켜기

Guest로 접근 허용

Guest 계정을 통한 공유 폴더 접근이 필요한 경우 사용할 수 있으며, 암호로 보호된 공유를 끄는 방식으로 설정합니다.

보안 강화

네트워크 공유 및 검색 기능을 전체적으로 제한하는 프리셋입니다.

  • 개인 네트워크 검색 끄기
  • 개인 네트워크 파일 및 프린터 공유 끄기
  • 공용 네트워크 검색 끄기
  • 공용 네트워크 파일 및 프린터 공유 끄기
  • 공용 폴더 공유 끄기
  • 암호로 보호된 공유 켜기

구형 NAS/공유기 연결 안 됨

128비트 암호화를 지원하지 않는 구형 장치와의 연결 문제가 있는 경우를 대상으로 하며, 파일 공유 연결 암호화를 40비트 또는 56비트로 전환합니다. 프리셋을 선택하면 적용될 설정 내용을 먼저 확인할 수 있으며, 사용자의 확인을 거친 후 실제 설정을 변경하도록 구성했습니다.


10. Windows 기본값 복원

설정을 여러 가지 변경한 후 원래 Windows의 기본적인 고급 공유 구성으로 되돌리고 싶은 경우를 위해 「기본값 복원」 기능도 추가했습니다.

 

 

 

복원 작업은 여러 단계로 나누어 진행 상황을 표시합니다.

  1. 개인 네트워크 네트워크 검색 켜기
  2. 네트워크 장치 자동 설정 켜기
  3. 개인 네트워크 파일 및 프린터 공유 켜기
  4. 공용 네트워크 검색 끄기
  5. 공용 네트워크 파일 및 프린터 공유 끄기
  6. 공용 폴더 공유 끄기
  7. 파일 공유 암호화를 128비트로 설정
  8. 암호로 보호된 공유 켜기

진행 중에는 별도의 프로그레스 창을 표시하여 현재 어떤 설정을 처리하고 있는지 확인할 수 있도록 했습니다.

복원이 완료되면 다시 시스템 상태를 조회하여 프로그램 화면에 반영하고 INI 설정도 저장합니다.


11. 상태 로그

고급 공유 설정 화면 하단에는 로그 영역을 배치했습니다. 설정 변경 작업이 실행될 때마다 시간과 함께 처리 결과가 기록됩니다.

예를 들어 설정 성공 여부나 문제 해결 프리셋 적용 과정 등을 확인할 수 있기 때문에 여러 설정을 한 번에 변경했을 때 어떤 작업이 수행되었는지 확인하기 편리합니다. 로그는 최신 메시지가 아래쪽에 표시되도록 구성되어 있습니다.

 


12. 설정값 저장

프로그램에서 변경한 필터와 공유 설정 상태는 프로그램 실행 폴더의 WinShareCred Manager.ini 파일에 저장됩니다. 저장되는 항목에는 자격 증명 목록의 표시 필터와 추가 방식, 그리고 고급 공유 설정의 각 상태값이 포함됩니다. 특히 최초 실행 시에는 시스템에서 실제 고급 공유 설정 상태를 조회하여 INI 파일을 생성하도록 구성되어 있어 프로그램의 저장값과 Windows의 실제 상태가 처음부터 분리되어 동작하지 않도록 구성했습니다.

 


마무리

Windows Credential and Advanced Share Manager v1.0은 Windows에서 네트워크 공유 작업을 할 때 자주 확인해야 하는 여러 설정을 하나의 프로그램으로 묶어 관리할 수 있도록 제작한 유틸리티입니다. 첫 번째 탭에서는 Windows에 저장된 네트워크 자격 증명을 조회하고 추가·수정·삭제할 수 있으며, 두 번째 탭에서는 네트워크 검색, 파일 및 프린터 공유, 공용 폴더 공유, 파일 공유 암호화, 암호 보호 공유 등의 설정을 한 화면에서 관리할 수 있습니다.

 

특히 네트워크 공유 문제를 해결하기 위한 문제 해결 프리셋과 Windows 기본 고급 공유 설정으로 되돌릴 수 있는 기본값 복원 기능을 함께 구성하여, 여러 Windows 시스템을 설정하거나 네트워크 공유 환경을 구성할 때 반복적으로 발생하는 작업을 조금 더 간편하게 처리할 수 있도록 제작했습니다. 이번 버전은 Windows의 관련 API와 시스템 설정을 직접 조회하고 적용하는 방향으로 구성했으며, 설정 변경 결과는 프로그램 내부 로그를 통해 확인할 수 있도록 했습니다. Windows 설치 후 네트워크 공유 환경을 구성하거나, 여러 PC에서 동일한 공유 설정을 반복적으로 적용해야 하는 경우 활용할 수 있는 관리 도구를 목표로 제작한 프로그램입니다.

반응형
반응형

원격 윈도우 설치가 완료되고 바탕화면에 진입하면 RunOnce를 이용해 드라이버 설치와 윈도우 정품 인증, 원격 호출 연계 작업을 자동으로 실행할 수 있도록 Command Line 옵션 기능을 추가했습니다.

; --- 명령줄 옵션 (GUI 없이 실행 후 종료) ---
; /Driver          : Backup\Drivers\Net 랜 드라이버만 pnputil 설치
; /Driver all      : Backup\Drivers 전체 드라이버 pnputil 설치 (/driver:all 도 동일)
; /WinActive       : ProductKey.txt 정품 인증 (ping → /ipk → /ato)
; /AnyDesk|/AnyDeskID [/t N] : AnyDesk 제어코드 조회·Discord 전송
; 여러 옵션 동시 지정 시 Driver → WinActive → AnyDeskID 순, 단계 사이 5초 대기
If $CmdLine[0] >= 1 Then
	Local $bCmdDriver = False, $bCmdDriverAll = False, $bCmdWinActive = False, $bCmdAnyDesk = False
	Local $iAnyDeskDelaySec = 0
	For $iCmd = 1 To $CmdLine[0]
		Local $sArg = StringLower(StringStripWS($CmdLine[$iCmd], 3))
		If $sArg = "/driver" Then
			$bCmdDriver = True
			; 다음 인자가 all 이면 전체 드라이버
			If $iCmd < $CmdLine[0] Then
				Local $sNext = StringLower(StringStripWS($CmdLine[$iCmd + 1], 3))
				If $sNext = "all" Then $bCmdDriverAll = True
			EndIf
		ElseIf $sArg = "/driver:all" Or $sArg = "/driverall" Then
			$bCmdDriver = True
			$bCmdDriverAll = True
		ElseIf $sArg = "/winactive" Then
			$bCmdWinActive = True
		ElseIf $sArg = "/anydesk" Or $sArg = "/anydeskid" Then
			$bCmdAnyDesk = True
		ElseIf $sArg = "/t" And $iCmd < $CmdLine[0] Then
			Local $sDelay = StringStripWS($CmdLine[$iCmd + 1], 3)
			If StringIsDigit($sDelay) Then $iAnyDeskDelaySec = Int($sDelay)
		ElseIf StringLeft($sArg, 3) = "/t:" Then
			Local $sDelay2 = StringTrimLeft($sArg, 3)
			If StringIsDigit($sDelay2) Then $iAnyDeskDelaySec = Int($sDelay2)
		ElseIf StringLeft($sArg, 2) = "/t" And StringLen($sArg) > 2 And StringIsDigit(StringTrimLeft($sArg, 2)) Then
			$iAnyDeskDelaySec = Int(StringTrimLeft($sArg, 2))
		EndIf
	Next
	If $bCmdDriver Or $bCmdWinActive Or $bCmdAnyDesk Then
		If $iAnyDeskDelaySec < 0 Then $iAnyDeskDelaySec = 0
		If $iAnyDeskDelaySec > 120 Then $iAnyDeskDelaySec = 120
		_EnsureIniDefaults()
		$g_sDiscordWebhookURL = _LoadWebhookUrlFromIni()
		_CmdLineRunChain($bCmdDriver, $bCmdWinActive, $bCmdAnyDesk, $iAnyDeskDelaySec, $bCmdDriverAll)
		Exit
	EndIf
EndIf

 

Remote_Windows_Installation / Command Line Option - 움짤(GIF)

 


Remote_Windows_Installation / 원격 지원 요청 - 움짤(GIF)

 


윈도우 설치 > 바탕화면 진입 > RunOnce 호출 - 움짤(GIF)

 


이건 보너스~

위 원격제어 요청 기능만 따로  런처로 분리~

 


 

 

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

 

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

donaricano-btn

반응형
반응형

---------------------------------------------------------------------------------------------------------------------
▶ 2026-09-14
---------------------------------------------------------------------------------------------------------------------
1. 프로그램 재실행 시 「다운로드」 탭의 프로토콜 동기화 오류 개선
 - 포트는 저장된 값이 있으면 사용하고, 없으면 프로토콜에 맞게 22(SFTP) / 21(FTP) 설정

 

다운로드」 탭의 프로토콜 동기화 오류 개선 - 움짤(GIF)

 

 

---------------------------------------------------------------------------------------------------------------------
▶ 2026-09-13
---------------------------------------------------------------------------------------------------------------------
1. ISO 파일 연속 탑재 관련 개선
 - ISO 파일을 연속으로 탑재하는 과정에서 마운트 및 언마운트 처리에 문제가 있었던 것으로 확인되어 관련 함수를 수정했습니다.

 

 

[18:26:58] --- ISO 마운트 시작 ---
[18:26:58] SUCCESS: ISO 마운트 완료 (I: 드라이브) -> I:\sources\install.wim
[18:26:58] SUCCESS: WIM 인덱스 5개를 불러왔습니다. (I:\sources\install.wim)
[18:27:00] --- ISO 마운트 시작 ---
[18:27:01] SUCCESS: ISO 마운트 완료 (J: 드라이브) -> J:\sources\install.wim
[18:27:01] SUCCESS: WIM 인덱스 5개를 불러왔습니다. (J:\sources\install.wim)
[18:27:03] --- ISO 마운트 시작 ---
[18:27:03] SUCCESS: ISO 마운트 완료 (I: 드라이브) -> I:\sources\install.wim
[18:27:04] SUCCESS: WIM 인덱스 5개를 불러왔습니다. (I:\sources\install.wim)
[18:27:06] --- ISO 마운트 시작 ---
[18:27:06] SUCCESS: ISO 마운트 완료 (I: 드라이브) -> I:\sources\install.wim
[18:27:06] SUCCESS: WIM 인덱스 5개를 불러왔습니다. (I:\sources\install.wim)
[18:27:09] --- ISO 마운트 시작 ---
[18:27:10] SUCCESS: ISO 마운트 완료 (J: 드라이브) -> J:\sources\install.wim
[18:27:10] SUCCESS: WIM 인덱스 5개를 불러왔습니다. (J:\sources\install.wim)
[18:27:12] --- ISO 마운트 시작 ---
[18:27:12] SUCCESS: ISO 마운트 완료 (I: 드라이브) -> I:\sources\install.wim
[18:27:12] SUCCESS: WIM 인덱스 10개를 불러왔습니다. (I:\sources\install.wim)
[18:27:14] --- ISO 마운트 시작 ---
[18:27:15] SUCCESS: ISO 마운트 완료 (I: 드라이브) -> I:\sources\install.wim
[18:27:15] SUCCESS: WIM 인덱스 5개를 불러왔습니다. (I:\sources\install.wim)
[18:27:17] --- ISO 마운트 시작 ---
[18:27:18] SUCCESS: ISO 마운트 완료 (J: 드라이브) -> J:\sources\install.wim
[18:27:18] SUCCESS: WIM 인덱스 5개를 불러왔습니다. (J:\sources\install.wim)
[18:27:20] --- ISO 마운트 시작 ---
[18:27:21] SUCCESS: ISO 마운트 완료 (I: 드라이브) -> I:\sources\install.wim
[18:27:21] SUCCESS: WIM 인덱스 5개를 불러왔습니다. (I:\sources\install.wim)



2. 「디스크 축소」 탭 WinSCP 구성 요소 수동 배포 기능 추가
 - WinSCP 구성 요소를 수동으로 배포할 수 있는 기능을 추가했습니다.
 - WinSCP 수동 배포 시 「윈도우 설치」 탭의 백업 경로, 실행 파일, 파일 경로가 자동으로 매핑되도록 조건을 추가했습니다.

 

구성 요소 수동 배포 및 맵핑 기능 개선 - 움짤(GIF)


3. 리스트에서 응답파일 선택 또는 XML 수동 경로 지정이 된 상태에서
 - 「WIM에 unattend.xml 추가」가 체크되지 않은 경우, 안내 메시지 표시
 - 예 → 옵션 자동 체크 후 계속
 - 아니오 → 주입 없이 설치 진행
 - 둘 다 지정된 경우, 수동 XML 경로를 우선 적용 (_PrepareUnattendXml과 동일)

 

 

WIM에 unattend.xml 추가 옵션 상태 확인 추가 - 움짤(GIF)

 

 

4. 「디스크 축소」 탭의 축소 용량 콤보박스에서 수동 입력이 가능하도록 개선
 - 콤보박스 스타일 변경: `$CBS_DROPDOWNLIST` → `$CBS_DROPDOWN`
 - 목록에서 용량을 선택하거나 원하는 값을 직접 입력 가능
 - 실행 시 입력값 검사: 양의 정수만 허용 (`^\d+$`), 1GB 이상 2048GB 이하
 - 예시) `12`, `18`, `100` 등 목록에 없는 용량도 직접 입력 가능

 

 

5. 「윈도우 설치」 탭의 드라이버 및 시스템 정보 백업시 팝업 안내 추가
 - 백업 경로 확인 후 아래 내용으로 확인합니다.
 - 드라이버 및 시스템 정보 백업을 시작하시겠습니까?
 - 백업 경로: W:\Backup\
 - ※ 드라이버 Class 정리 중 창 제목에 '응답 없음'이 잠시(1~2초) 표시될 수 있으나 정상 동작입니다.
 - 예 → 백업 진행, 아니오 → 취소

 

 

6. 「디스크 축소」 탭의 디스크 축소 및 WinSCP 수동 배포 시, 프로그램 자체를 루트 경로에 복사하도록 개선
 - 디스크 축소 및 자가 배포 시 프로그램 자체를 복사하여 재활용 가능하도록 개선

 

축소 및 자가 배포시 프로그램 자체를 복사하여 재활용 - 움짤(GIF)



---------------------------------------------------------------------------------------------------------------------
▶ 2026-09-12
---------------------------------------------------------------------------------------------------------------------
1. 우측 상단 한국어, English 언어 전환 기능 추가

 



2. "다운로드" 탭
 - 다운로드 시작 시 **다운로드 버튼을 취소 버튼으로 전환**하여 다운로드를 중단할 수 있도록 개선
 - 다운로드 취소 시 관련 파일을 삭제하고 다운로드 목록을 갱신하도록 개선

 



3. "윈도우 설치" 탭
 - 드라이버 및 시스템 정보 **백업 기능 개선**
 - 백업 진행 과정을 프로그레스바로 시각화
 - `PCInfo.txt`에 수집되는 시스템 정보를 보다 상세하게 개선
 - `ShowKeyPlus.exe` 정보를 활용하여 Windows 제품 키 및 라이선스 정보 수집
 - `IPAddress.txt` 생성 시 VMware 및 VirtualBox 관련 가상 네트워크 정보 필터링
 - 즐겨찾기 백업 기능 개선
 - **백업 기능과 응답파일의 랜 드라이버 자동 설치 기능 연동**
   ┗▶ 드라이브 루트 경로에 `WinSCP` 폴더가 있는 드라이브 검색
   ┗▶ 해당 드라이브의 `\Backup\Drivers\Net` 경로에 있는 랜 드라이버를 자동 설치 대상으로 지정
   ┗▶ Windows 설치 후 바탕화면에 진입시 RunOnce가 호출 되고 선행 작업 실행 후 **5초 뒤 랜 드라이버 자동 설치**
   ┗▶ pnputil /add-driver "$driverPath\*.inf" /subdirs /install

 

 

백업 진행 과정을 프로그레스바로 시각화 - 움짤(GIF)

 

----------------------------------------------------------------------------------------------------------------------------
pnputil /add-driver "$driverPath\*.inf" /subdirs /install (예시)

Tip : 아래 `Backup\Drivers\Net` 경로 조건을 `Backup`으로 변경하면 백업된 드라이버 전체를 자동 설치할 수 있습니다.
----------------------------------------------------------------------------------------------------------------------------

{
Write-Host "[정보] 5초 후에 랜 드라이버 자동 설치를 시작합니다." -ForegroundColor Cyan;
for ($i = 5; $i -gt 0; $i--) {
Write-Host "[대기] $i 초..." -ForegroundColor Yellow -NoNewline;
Start-Sleep -Seconds 1;
Write-Host "`r" -NoNewline;
}
Write-Host "[정보] 랜 드라이버 자동 설치를 시작합니다.        " -ForegroundColor Cyan;

$targetDrive = $null;
foreach ($drive in [System.IO.DriveInfo]::GetDrives()) {
if ($drive.DriveType -eq 'Fixed') {
$winscpPath = Join-Path $drive.RootDirectory.FullName 'WinSCP';
if (Test-Path -LiteralPath $winscpPath -PathType Container) {
$targetDrive = $drive.RootDirectory.FullName;
break;
}
}
}

if ($targetDrive) {
$driverPath = Join-Path $targetDrive 'Backup\Drivers\Net';
if (Test-Path -LiteralPath $driverPath -PathType Container) {
Write-Host "[정보] 대상 경로: $driverPath" -ForegroundColor Yellow;
Write-Progress -Activity "네트워크 드라이버 설치" -Status "드라이버 패키지를 등록하는 중입니다..." -PercentComplete 50;

pnputil /add-driver "$driverPath\*.inf" /subdirs /install;

Write-Progress -Activity "네트워크 드라이버 설치" -Status "설치가 완료되었습니다." -PercentComplete 100;
Start-Sleep -Seconds 1;
Write-Host "[성공] 랜 드라이버 설치가 완료되었습니다." -ForegroundColor Green;
} else {
Write-Host "[경고] Net 드라이버 폴더를 찾을 수 없습니다: $driverPath" -ForegroundColor Red;
}
} else {
Write-Host "[경고] WinSCP 폴더가 존재하는 드라이브를 찾지 못했습니다." -ForegroundColor Red;
}
};

 

 

응답파일(unattend.xml) 연동 랜드라이버 자동 설치 - 움짤(GIF)


---------------------------------------------------------------------------------------------------------------------
▶ 2026-09-10
---------------------------------------------------------------------------------------------------------------------
1. "윈도우 설치" 탭에서 WIM 파일에 추가되는 파일을 간소화하고 응답 파일을 개선했습니다.
 - `unattend.xml`과 `DrvAutoLauncher.bat` 두 개의 파일만 추가되도록 수정
 - 응답 파일에 `ExtractScript`를 사용하여 다양한 옵션 적용 과정을 간소화
 - 추가 소요 시간은 약 10~20초 내외이며, WIM 파일의 경우 최적화 과정까지 포함하면 약 1분 내외가 소요됩니다.
 - 단, 설치 파일이 10GB 이상의 대용량인 경우 작업 시간이 다소 지연될 수 있습니다.

 

\Windows\Panther\unattend.xml

\Windows\Setup\Scripts\DrvAutoLauncher.bat

 


---------------------------------------------------------------------------------------------------------------------
▶ 2026-09-09
---------------------------------------------------------------------------------------------------------------------
1. WinToHDD 자동 설치 시 `WinRE.wim` 파일이 없는 경우, 다운로드 안내 타이틀을 감지하여 다운로드 과정이 정상적으로 진행되도록 개선
 - 일부 트윅된 Windows에서 `WinRE.wim` 관련 경로 및 환경 변수 차이로 발생할 수 있는 문제에 대응하도록 개선
 - `WinRE.wim` 기본 경로 확인
   - `\Recovery\WindowsRE\Winre.wim`

WinRE 누락시 동작 개선 - 움짤(GIF)



2. "다운로드" 탭에서 FTP/SFTP 프로토콜을 선택하여 접속할 수 있도록 기능을 개선했습니다.
 - FTP/SFTP 서버 접속 지원
 - WIM/ESD 및 ISO 파일 목록 다운로드 지원

 



3. "ISO_WIM_ESD" 탭에 ESD 확장자 지원을 추가했습니다.

 

 



---------------------------------------------------------------------------------------------------------------------
▶ 2026-09-08
---------------------------------------------------------------------------------------------------------------------
1. WinToHDD의 응답 파일(`unattend.xml`) 자동 생성 기능을 우회할 수 있도록 `WinToHDD.exe` 파일을 HxD Hex Editor로 수정했습니다.
 - `\Windows\Panther\unattend.xml` 생성 경로를 `\Windows\Temp\unattend.xml`로 변경하여 WinToHDD의 자동 응답 파일 생성 과정을 우회

 



---------------------------------------------------------------------------------------------------------------------
▶ 2026-09-07
---------------------------------------------------------------------------------------------------------------------
1. NAS/FTP 서버를 사용할 수 없는 사용자를 위해 "ISO_WIM" 탭을 추가했습니다.
 - ISO 또는 WIM 파일을 선택하면 포함된 이미지 인덱스 목록을 출력하고, 선택한 인덱스를 축소 파티션 경로로 내보낼 수 있도록 개선
 - 인덱스가 1개인 경우 별도의 내보내기 과정 없이 해당 이미지를 그대로 복사하도록 처리

 

 

 

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

 

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

donaricano-btn

반응형

+ Recent posts