반응형

주 목적은 부팅이 불가능한 PC의 고정 IP 주소를 확인하는 것이며, 윈도우 환경에서도 작동할 수 있도록 겸용으로 제작하였습니다.

 

1. 확인할 네트워크 정보
 - IP 주소 (IPAddress)
 - 서브넷 마스크 (SubnetMask)
 - 기본 게이트웨이 (DefaultGateway)
 - DNS 서버 (DNS1, DNS2)


2. PE 환경에서 Windows 설치 디스크 확인
 - PE(Preinstallation Environment)로 부팅한 후, Windows가 설치된 디스크(드라이브)를 찾습니다.

3. SYSTEM 레지스트리 하이브 로드
 - Windows의 네트워크 설정 정보를 확인하기 위해 \Windows\System32\config\SYSTEM 파일을 특정 경로에 하이브 로드합니다.
 - 예제 경로 : HKLM\Temp\ControlSet001\Services\Tcpip\Parameters\Interfaces
 - 해당 경로에서 IP 주소, 서브넷 마스크, 기본 게이트웨이, DNS 서버 정보를 확인합니다.

 

4. IP 정보 출력
 - 하이브에서 가져온 IP, 서브넷 마스크, 게이트웨이, DNS 정보를 출력합니다.

5. Windows 환경에서 IP 정보 출력
 - Windows가 정상적으로 부팅되는 환경에서는 PowerShell 명령어를 사용하여 네트워크 정보를 확인할 수 있습니다.
 - (ipconfig /all | Select-String "이더넷|IPv4 주소|서브넷 마스크|기본 게이트웨이|DNS 서버") -join "`n"

PS C:\Users\Administrator\Desktop> (ipconfig /all | Select-String "이더넷|IPv4 주소|서브넷 마스크|기본 게이트웨이|DNS 서버") -join "`n"

이더넷 어댑터 이더넷:
   IPv4 주소 . . . . . . . . . : 192.168.0.2(기본 설정)
   서브넷 마스크 . . . . . . . : 255.255.255.0
   기본 게이트웨이 . . . . . . : 192.168.0.1
   DNS 서버. . . . . . . . . . : 168.126.63.1

이더넷 어댑터 VMware Network Adapter VMnet1:
   IPv4 주소 . . . . . . . . . : 192.168.235.1(기본 설정)
   서브넷 마스크 . . . . . . . : 255.255.255.0
   기본 게이트웨이 . . . . . . :
   DNS 서버. . . . . . . . . . : fec0:0:0:ffff::1%1

이더넷 어댑터 VMware Network Adapter VMnet8:
   IPv4 주소 . . . . . . . . . : 192.168.247.1(기본 설정)
   서브넷 마스크 . . . . . . . : 255.255.255.0
   기본 게이트웨이 . . . . . . :
   DNS 서버. . . . . . . . . . : fec0:0:0:ffff::1%1

PS C:\Users\Administrator\Desktop>

 

 

 

 

IP Search v1.0 - 움짤 GIF

반응형
반응형

자동 탭에서 일부 USB 드라이브가 정상적으로 검색되지 않는 문제가 제보되어, 오토잇 스크립트 구문을 개선하였습니다.

Choose Installation File v3.5.zip
1.69MB

 

https://noways.tistory.com/2071

 

윈도우 설치 파일 선택기 v3.0 - 기능 통합(완료)

윈도우 설치 파일 선택기 v3.0  - v1.0과 v2.0의 기능을 통합하고, 탭으로 분리하여 v3.0으로 개선하였습니다.  - v2.0에서 지원하지 않았던 ESD 확장자를 v3.0에서 지원하도록 개선하였

noways.tistory.com

 

Func SearchFiles()
    ; ListView 초기화 (기존 항목 삭제)
    GUICtrlDelete($listview)
    $listview = GUICtrlCreateListView("File Path|Size (GB)", 20, 120, 620, 240, $LVS_REPORT)
    GUICtrlSendMsg($listview, 4126, 0, 520) ; Set width for 'File Path'
    GUICtrlSendMsg($listview, 4126, 1, 70) ; Set width for 'Size (GB)'
    
    Local $iDepth = Number(GUICtrlRead($spnDepth))
    If $iDepth < 0 Then $iDepth = 0

    ; 고정 드라이브 검색 (HDD, SSD)
    Local $aDrives = DriveGetDrive("FIXED")
    If Not @error Then
        For $i = 1 To $aDrives[0]
            ScanDirectories($aDrives[$i], $iDepth)
        Next
    EndIf

    ; USB 드라이브 검색 (REMOVABLE)
    Local $aUsbDrives = DriveGetDrive("REMOVABLE")
    If Not @error Then
        For $i = 1 To $aUsbDrives[0]
            ScanDirectories($aUsbDrives[$i], $iDepth)
        Next
    EndIf

    ; CD-ROM 드라이브 검색
    Local $aCdDrives = DriveGetDrive("CDROM")
    If Not @error Then
        For $i = 1 To $aCdDrives[0]
            ScanDirectories($aCdDrives[$i], $iDepth)
        Next
    EndIf
EndFunc

Func ScanDirectories($sPath, $iDepth, $iCurrentDepth = 0)
    If $iCurrentDepth > $iDepth Then Return

    If StringRight($sPath, 1) <> "\" Then $sPath &= "\"

    Local $aExtensions = ["*.iso", "*.wim", "*.esd"]
    For $ext In $aExtensions
        Local $aFiles = _FileListToArray($sPath, $ext, $FLTA_FILES)
        If Not @error Then
            For $i = 1 To $aFiles[0]
                Local $sFilePath = $sPath & $aFiles[$i]
                Local $iFileSize = FileGetSize($sFilePath) / (1024 * 1024 * 1024)
                GUICtrlCreateListViewItem($sFilePath & "|" & Round($iFileSize, 2), $listview)
            Next
        EndIf
    Next

    If $iCurrentDepth < $iDepth Then
        Local $aDirs = _FileListToArray($sPath, "*", $FLTA_FOLDERS)
        If Not @error Then
            For $i = 1 To $aDirs[0]
                If $aDirs[$i] <> "." And $aDirs[$i] <> ".." Then
                    ScanDirectories($sPath & $aDirs[$i], $iDepth, $iCurrentDepth + 1)
                EndIf
            Next
        EndIf
    EndIf
EndFunc

 

 

 

개선된 스크립트를 적용한 후, USB 드라이브 검색 목록이 정상적으로 출력되는 것을 확인하였습니다.

 

 

수동 탭 검색의 경우 드라이브 루트 경로의 1단계 폴더만 검색하는 방식이므로 기존과 동일하게 정상 동작합니다.

└▶ 드라이브 루트 경로의 지정된(검색할 폴더) 폴더 깊이 1단계만 검색 합니다.

 

 

└▶ 아래와 같은 패턴으로 사용 가능 합니다.

 

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

 

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

donaricano-btn

반응형
반응형

소프트웨어 선택 자동설치를 무인설치 응답파일(unattend.xml) oobeSystem - FirstLogonCommands 구간에 RunOnce 명령을 추가 하여 설치 과정을 녹화해 보았습니다. reg add HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce /v FirstLogin /t REG_SZ /d 참고 하여 활용해 보시기 바랍니다.

 

AutoInstall v4.0.zip
1.31MB

 

 

 

https://learn.microsoft.com/ko-kr/windows/win32/setupapi/run-and-runonce-registry-keys

 

RunOnce 레지스트리 키 실행 및 실행 - Win32 apps

실행 또는 RunOnce 레지스트리 키를 사용하여 사용자가 로그온할 때 프로그램을 실행합니다.

learn.microsoft.com

 

RunOnce 레지스트리 키 실행 및 실행
또는 RunOnce 레지스트리 키를 사용하여 Run 사용자가 로그온할 때 프로그램을 실행합니다. 키는 Run 사용자가 로그온할 때마다 프로그램을 실행하게 하고, RunOnce 키는 프로그램을 한 번 실행한 다음 키가 삭제됩니다. 이러한 키는 사용자 또는 컴퓨터에 대해 설정할 수 있습니다.

키의 데이터 값은 260자 이하의 명령줄입니다. 양식 설명-문자열=명령줄의 항목을 추가하여 실행할 프로그램을 등록합니다. 키 아래에 여러 항목을 쓸 수 있습니다. 특정 키로 둘 이상의 프로그램이 등록된 경우 해당 프로그램이 실행되는 순서는 확정되지 않습니다.

Windows 레지스트리에는 다음 4개의 Run 키와 RunOnce 키가 포함됩니다.

개별 사용자 지속용 : HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run 
개별 사용자 일회용 : HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
전체 사용자 지속용 : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
전체 사용자 일회용 : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce

 

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
    <settings pass="windowsPE">
    </settings>
    <settings pass="specialize">
        <component name="Microsoft-Windows-Deployment" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<RunSynchronous>
	<!-- x64 WanDrv7 런처(EDLauncher.bat 배치 파일이 있으면 실행하고 없으면 종료) -->
		<RunSynchronousCommand wcm:action="add">
			<Order>1</Order>
			<Path>cmd.exe /c if exist "%Windir%\Setup\Scripts\EDLauncher.bat" "%Windir%\Setup\Scripts\EDLauncher.bat"</Path>
			<Description>Auto Driver Launcher</Description>
		</RunSynchronousCommand>
	</RunSynchronous>
	</component>
    </settings>
    <settings pass="oobeSystem">
        <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<!-- OOBE 무인 설정(자동화) -->
	<OOBE>
		<!-- Windows 시작의 Microsoft 소프트웨어 사용 조건 페이지를 숨길지 여부를 지정합니다. -->
		<HideEULAPage>true</HideEULAPage>
		<!-- Windows 시작 중에 나타나는 무선 네트워크 연결 화면을 숨길지 여부를 지정합니다. -->
		<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
		<!-- 사용자가 처음 로그온할 때 컴퓨터가 네트워크에 연결된 경우 네트워크의 위치를 지정합니다. -->
		<NetworkLocation>Work</NetworkLocation>
		<!-- 중요하고 권장되는 업데이트가 자동으로 설치되도록 지정합니다. -->
		<ProtectYourPC>3</ProtectYourPC>
		<SkipMachineOOBE>true</SkipMachineOOBE>
		<SkipUserOOBE>true</SkipUserOOBE>
	</OOBE>
	<!-- 관리자(Administrator) 계정으로 자동 로그인 -->
	<AutoLogon>
		<Enabled>true</Enabled>
		<LogonCount>1</LogonCount>
		<Username>Administrator</Username>
	</AutoLogon>
	<!-- 사용자가 컴퓨터에 처음으로 로그온할 때 실행할 명령을 지정합니다. -->
	<FirstLogonCommands>
	<!-- RunOnce 바탕화면 진입 시 1회 실행 할 항목 등록, ex) 아래 경로에 AutoInstall.cmd 파일이 있으면 등록 없으면 패스 -->
		<SynchronousCommand wcm:action="add">
			<Order>1</Order>			
			<CommandLine>cmd.exe /c if exist "C:\AutoInstall\AutoInstall.cmd" reg add HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce /v FirstLogin /t REG_SZ /d "C:\AutoInstall\AutoInstall.cmd" /f</CommandLine>
			<Description>Run AutoInstall.cmd Script if Exists</Description>
		</SynchronousCommand>
	</FirstLogonCommands>
	<!-- 해상도 설정 -->
	<Display>
		<HorizontalResolution>1024</HorizontalResolution>
		<VerticalResolution>768</VerticalResolution>
		<ColorDepth>32</ColorDepth>
	</Display>
	</component>
    </settings>
    <cpi:offlineImage cpi:source="" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
</unattend>

 

 

 

 

 

소프트웨어 선택 자동 설치 v4.0 무인설치 연동 - 움짤 GIF



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

 

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

donaricano-btn

반응형
반응형

1. 디스크 번호 상태 출력 재배치
 - 선택된 디스크 번호 상태를 화면 상단으로 이동하여 가시성을 향상시킵니다. 
 - 사용자가 현재 선택한 디스크를 빠르게 확인할 수 있습니다.

2. 파티션 라벨 및 할당 문자 변경 기능 추가
 - 사용자가 각 파티션의 라벨과 드라이브 할당 문자를 쉽게 변경할 수 있도록 기능을 개선합니다.
 - 변경된 라벨 및 할당 문자는 프리셋에 저장하여, 다음 사용 시에도 동일한 설정을 적용할 수 있습니다.
 - 특히, Data 파티션에 대해서는 드라이브 문자 D를 우선 할당하며, 만약 D가 이미 사용 중인 경우, 시스템은 자동으로 순차적으로 다른 문자를 할당합니다.

 

3. WMI(winmgmts)를 이용하여 디스크 파티션의 세부 정보를 출력하는 기능이 추가되었습니다.
 - 기본 파티션 정보(diskpart - list partition)가 먼저 출력되며, N 버튼을 클릭하면 세부 정보를 확인할 수 있습니다.
 - 단, WMI 서비스가 누락된 환경에서는 N버튼의 세부 정보가 출력되지 않습니다.

 

WMI(winmgmts)를 이용하여 디스크 파티션의 세부 정보를 출력하는 기능이 추가되었습니다.
 - 기본 파티션 정보(diskpart - list partition)가 먼저 출력되며, N 버튼을 클릭하면 세부 정보를 확인할 수 있습니다.
 - 단, WMI 서비스가 누락된 환경에서는 N버튼의 세부 정보가 출력되지 않습니다.

 

 

 

Diskpart 파티션 스크립트 v4.5 레이블 및 문자 할당  적용 - 움짤 GIF

반응형

+ Recent posts