윈 도 우 추가)PE 우측하단 워터마크에 각종 정보 넣기
2020.06.16 00:31
예전에도 올린적 있는데, 몇가지 더 알아낸 내용을 보충하여 올립니다.
지난 글 : https://windowsforum.kr/lecture/12816784 (지난 글의 내용도 포함하여 올렸으므로 따로 보실 필요는 없습니다.)
저도 꽤 오랫동안 많은 시행착오와 검색을 통해 알아낸것들이라, 까먹기 전에 정리할겸 정리해서 올립니다.
PE의 BCD에 '테스트 모드'를 체크하면 워터마크가 표시됩니다.
PE에 그래픽 드라이버등 서명되지 않은 드라이버를 설치하려면 테스트 모드를 켜야하는데,
은근히 보기 싫어서 차라리 어떻게 써먹을 방법이 없을까 생각하다가 만들어봤습니다.
*WMIC 명령어들을 사용합니다. 다이어트가 많이 된 PE에선 작동하지 않을 수 있습니다.
수정 방법
mui 파일 수정은 resource hacker가 필요합니다. http://www.angusj.com/resourcehacker/
첫번째 줄 (테스트 모드)
X:\Windows\system32\ko-KR\shell32.dll.mui
약 70자 정도를 넘어가면 짤려서 표시되지 않는듯 합니다. 긴 내용을 적고 싶은 경우 부팅해서 테스트해보셔야합니다.
shell32.dll.mui는 '다른 프로그램에서 열려 있으므로 작업을 완료할 수 없습니다" 라고 뜨며 부팅된 이후에 수정할 수 없습니다.
기본적인 PE의 정보나 주의사항등을 적기에 적합합니다.
2번째 줄 (제품 이름)
X:\Windows\branding\basebrd\ko-kr\basebrd.dll.mui
Basebrd.dll.mui는 부팅된 이후에도 수정이 가능합니다. 수정된 이후에 탐색기(explorer.exe)또는 DWM.exe을 재시작하면 됩니다.
배치파일로 rc 파일을 작성한 다음, resource hacker를 통해 res로 컴파일한 후 mui 파일을 수정하여 적용할 수 있습니다.
아래에서 빨간색 글씨 부분만 수정하시면 됩니다.
::리소스 해커 경로 지정
set rh="X:\Program Files\ResourceHacker\ResourceHacker.exe"
::입력할 문구 입력
set TEXT=Sample text
::리소스 해커에서 사용할 RC파일 생성
echo STRINGTABLE>"%temp%\StringTable20.rc"
echo LANGUAGE LANG_KOREAN, SUBLANG_KOREAN>>"%temp%\StringTable20.rc"
echo {>>"%temp%\StringTable20.rc"
echo 314, "%text%%%1%%2">>"%temp%\StringTable20.rc"
echo 315, "%text%%%1%%2">>"%temp%\StringTable20.rc"
echo 316, "Windows 10 Enterprise Evaluation%%1%%2">>"%temp%\StringTable20.rc"
echo 317, "Windows 10 Enterprise Evaluation%%1%%2">>"%temp%\StringTable20.rc"
echo 318, "Windows 10 Enterprise N%%1%%2">>"%temp%\StringTable20.rc"
echo 319, "Windows 10 Enterprise N%%1%%2">>"%temp%\StringTable20.rc"
echo }>>"%temp%\StringTable20.rc"
::리소스 해커로 rc파일 res로 컴파일
%rh% -open "%temp%\StringTable20.rc" -save "%temp%\StringTable20.res" -action compile
::리소스 해커로 mui파일 수정
%rh% -open "X:\Windows\Branding\Basebrd\ko-KR\basebrd.dll.mui" -save "X:\Windows\Branding\Basebrd\ko-KR\basebrd.dll.mui" -action addoverwrite -res "%temp%\StringTable20.res" -mask
taskkill.exe /f /im dwm.exe
세번째 줄 (빌드 번호)
레지스트리 값을 수정해주시면 됩니다. 가장 쉽게 reg.add 명령만으로 수정이 가능합니다.
reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "BuildLab" /d "표시할 내용" /f
가상머신에서 테스트했을 때 기준으로 두번째, 세번째줄의 글자 수 제한은 한/영 공백 관계없이 127글자입니다.
맨 앞에 Build가 붙는게 거슬린다면
1번째줄을 수정할때 편집했던 shell32.dll.mui의 STRINGTABLE,2070 부분에서 %ws Build %ws를 %ws %ws 로 바꿔주시면 됩니다.
위 내용들을 활용한 예시입니다.
수집중 메시지는 미리 Wim파일 내부의 파일들을 수정해놓았고,
배치파일로 정보를 수집한 후 수정, 탐색기 재시작을 통해 적용하였습니다.
설치된 운영체제 표시
OS : Windows 7 Enterprise (0:1 C:40GB) /
OS : 설치된 운영체제 (디스크번호:파티션번호 드라이브문자:용량) /
C~W 드라이브 중에서 Windows\system32\config 폴더가 있는 드라이브 문자를 알아낸 다음
해당 드라이브의 레지스트리 하이브를 불러와서 운영체제 정보를 읽습니다.
드라이브 문자를 diskpart 명령어에 대입하여 몇번째 디스크, 몇번째 파티션인지, 용량이 몇인지 알아냅니다.
운영체제가 여러 드라이브에 설치되어있는 경우 뒤에 이어붙여서 표시합니다.
::변수 초기화, 각종 오류를 막기 위해 사용하려는 변수를 미리 비워놓는 습관을 들이면 좋습니다.
SET "WinDrvS="
::윈도우 설치된 드라이브 찾기, WinDrvS 변수에 Windows가 들어있는 드라이브의 문자를 쌓습니다.
::SET 변수=변수 %%a 와 같이 입력하였기에 기존값+새로운 값이 중복되어 등록되므로 결과값들이 쌓이게 됩니다.
for %%a in (C D E F G H I J K L M N O P Q R S T U V W Y ) do (
if exist "%%a:\windows\system32\config" set WinDrvS=!WinDrvS! %%a
)
:: 윈도우 찾을 수 없으면 (WinDrvS 변수에 저장된 값이 없으면) NA표시
IF "%WinDrvS%" EQU "" (
set "WinName= N/A"
GOTO SKIP_WinName
)
::설치된 윈도우 정보 수집, 위 명령과 비슷한 명령인데 C D E F G...대신에 WinDrvS(윈도가 들어있는 드라이브 문자)를 넣은것입니다.
For %%B in (%WinDrvS%) do (
::Diskpart 명령을 통해 용량, 디스크, 파티션 번호를 알아냅니다.
::%Tcapa%=용량, %WINDISK%=디스크번호, %WINPAR% 파티션 번호 입니다.
(echo sel vol %%B
echo det vol
echo lis par
echo exit
) | diskpart>"%temp%\vol%%B.txt"
for /f "tokens=3 usebackq delims= " %%a in (`"find "* 디스크" "%temp%\vol%%B.txt""`) do set WINDISK=%%a
for /f "tokens=3 usebackq delims= " %%b in (`"find "* 파티션" "%temp%\vol%%B.txt""`) do set WINPAR=%%b
for /f "tokens=1-2 delims=: usebackq" %%a in ("%temp%\vol%%B.txt") do (if "%%a" EQU "볼륨 용량 " set Tcapa=%%b)
SET Tcapa=!Tcapa: =!
::설치된 운영체제 제품명을 알아내기 위해 윈도우 드라이브 (%%B:\)의 레지스트리 하이브를 탑재합니다.
REG LOAD HKLM\Tmp_SFT "%%B:\windows\system32\config\SOFTWARE"
::레지스트리 쿼리 명령을 통해 제품명을 변수에 저장합니다.
::괄호 사이에 주석을 넣으면 오히려 더 햇갈릴까봐 여기에 몰아서 적습니다.
::결과값이 여러줄로 나오므로, 필요없는 값이 저장되는것을 막기 위해
::%%I EQU " productname " 명령을 썻습니다.
::이 경우 첫번째 토큰이 productname인 경우에만 %%J의 값을 %WinName2% 변수에 저장합니다.
::밑줄 친 부분은 %WinName2% 변수의 공백을 지우는 명령입니다.
::WinDrvS에 썻던것과 같은 요령으로 여러 드라이브에 운영체제가 있는 경우에 결과값을 %WinName% 변수에 이어붙입니다.
FOR /F "TOKENS=1* DELIMS=REG_SZ USEBACKQ SKIP=1 " %%I IN (`Reg query "HKLM\Tmp_SFT\Microsoft\windows NT\CurrentVersion" /v "productname"`) DO (
IF "%%I" EQU " productname " (
SET WinName2=%%J
FOR /F "TOKENS=* DELIMS= " %%Z IN ("!WinName2!") DO SET WinName2=%%Z
SET "WinName=!WinName! !WinName2! (!WINDISK!:!WINPAR! %%B:!Tcapa!)"
)
)
REG UNLOAD HKLM\Tmp_SFT
)
::윈도우 없으면 여기로 건너뜀
:SKIP_WinName
IP주소 표시
단순한 ipconfig 명령어에 첫번째 IP주소만 표시하기 위한 약간의 명령어가 추가되어 있습니다.
::현재 IP주소, 인터넷 연결 안된 경우엔 -.-.-.-로 표시되도록 기본값 설정
SET "IP_Ad=-.-.-.-"
FOR /F "TOKENS=2 DELIMS=: USEBACKQ" %%F IN (`IPCONFIG ^| FINDSTR /C:"IPv4 주소"`) do set IP_Ad=%%F
::앞에 공백 제거
FOR /F "TOKENS=* DELIMS= " %%A IN ("%IP_Ad%") DO SET IP_Ad=%%A
BIOS 타입 표시
::PE 빌더에 들어있는 코드를 약간 수정한것입니다.
wpeutil.exe UpdateBootInfo
For /f "tokens=2* delims= " %%A in ('Reg Query HKLM\System\CurrentControlSet\Control /v PEFirmwareType') Do Set Firmware=%%B
::나중에 불러올 수 있도록 BTYPE 변수에 저장해놓기
If %Firmware%==0x1 set BTYPE=LEGACY
If %Firmware%==0x2 set BTYPE=UEFI
CPU 모델명, 물리코어와 논리코어의 갯수
::CPU 모델명
for /F "tokens=* skip=1" %%n in ('wmic cpu get name ^| findstr "."') do set "CNAME=%%n"
::모델명 뒤 공백 지우기
set CNAME=%CNAME%##
set CNAME=%CNAME: ##=##%
set CNAME=%CNAME: ##=##%
set CNAME=%CNAME: ##=##%
set CNAME=%CNAME: ##=##%
set CNAME=%CNAME:##=%
::CPU 물리 코어 수
for /F "tokens=* skip=1" %%n in ('wmic cpu get NumberOfCores ^| findstr "."') do set "PCORE=%%n"
set PCORE=%PCORE: =%
::CPU 논리 코어 수 / echo %CNAME% (%PCORE%C%LCORE%T)의 결과값 예시는 I7-5775C (4C8T) 입니다.
for /F "tokens=* skip=1" %%n in ('wmic cpu get NumberOfLogicalProcessors ^| findstr "."') do set "LCORE=%%n"
set LCORE=%LCORE: =%
RAM 용량
:: 총 메모리 용량
for /F "tokens=* skip=1" %%n in ('wmic ComputerSystem get TotalPhysicalMemory ^| findstr "."') do set "TM=%%n"
set TM=%TM: =%
::32비트 계산 한계 초과로 끝자리 날리고 계산
set TM3=0
set TM2=%TM:~,-2%
set /a TM3=%TM2%/10737418
IF %TM3% EQU 0 (
set TM2=%TM:~,-3%
set /a TM3=%TM2%/1073742
)
::총 메모리 용량은 %TM% 변수에 저장되며 단위는 GB입니다. 예시 : echo %TM%GB
::끝자리를 날리고 계산하기때문에 1씩 모자란 값이 나와서 1을 더해줘야합니다.
::이론상 약 250GB까지 정확하게 표시됩니다.
:: 참고용 파일 : 메모리계산.xlsx
set /a TM=%TM3%+1
그래픽카드 정보
그래픽카드 정보는 그래픽카드 드라이버가 설치돼야 읽어올 수 있습니다.
따라서 부팅 직후에 실행되게 하면 안되고 드라이버팩 등으로 설치된 이후에 실행되도록 조절해주셔야합니다.
아래 예시에선 설치된 경우에만 레지스트리 값을 한번 더 덮어씌웁니다.
::변수 초기화
set "GNAME=0"
:: 그래픽카드 모델명 조회, 얻은 값이 없으면 SKIP_GPU로 이동 (생략)
for /F "tokens=* skip=1" %%n in ('WMIC path Win32_VideoController get Name ^| findstr "."') do set GNAME=%%n
IF "%GNAME%" EQU "0" goto SKIP_GPU
::뒤에 공백 제거
set GNAME=%GNAME%##
set GNAME=%GNAME: ##=##%
set GNAME=%GNAME: ##=##%
set GNAME=%GNAME: ##=##%
set GNAME=%GNAME: ##=##%
set GNAME=%GNAME: ##=##%
set GNAME=%GNAME:##=%
::Microsoft 기본 어댑터 등 의미없는 정보일 경우 SKIP_GPU로 이동 (생략)
echo %GNAME%|findstr Microsoft&&SET GNAME=0&&goto SKIP_GPU
IF "%GNAME%" EQU "Microsoft Basic Display Adapter" SET GNAME=0&&goto SKIP_GPU
IF "%GNAME%" EQU "Microsoft 기본 디스플레이 어댑터" SET GNAME=0&&goto SKIP_GPU
::PE용 드라이버팩으로 드라이버를 설치했을때 장치 이름 앞에 붙는 (PE64) 등의 불필요한 문구 제거
echo %GNAME%|findstr (PE64)&&set GNAME=%GNAME:(PE64) =%
echo %GNAME%|findstr (PE64)&&set GNAME=%GNAME:(PE64)=%
echo %GNAME%|findstr Vulkan&&set GNAME=%GNAME:Vulkan=%
:: GNAME 변수에 0이 아닌 뭔가 저장되어있을때만 레지스트리에 등록, %GNAME% 변수에 모델명이 저장됩니다.
IF "%GNAME%" NEQ "0" (
reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "BuildLab" /d "CPU : %CNAME% (%PCORE%C%LCORE%T) / RAM : %TM%GB / GPU : %GNAME%" /f
)
PE의 빌드 번호 (1909, 1903, 2004 등등)
::ReleaseID 찾기 / %RID% 변수에 1909등의 숫자가 저장됩니다.
for /f "tokens=1-4 usebackq delims= " %%i IN (`reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /V "ReleaseID"`) do set "RID=%%k"
등록 예시
1번째 줄
부팅 이후에 수정할 수 없습니다. 3번째줄의 'Build'제거 포함 수정된 파일입니다.
(1909, 19H2 x64 파일로 만들었습니다. 다른 PE에 적용되는지 확인 안해봤습니다.)
2번째 줄
set "TEXT=OS :%WinName% / IP : %IP_Ad% / BIOS : %BTYPE%"
3번째 줄
reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "BuildLab" /d "CPU : %CNAME% (%PCORE%C%LCORE%T) / RAM : %TM%GB / GPU : %GNAME%" /f
참고한 사이트
https://stackoverflow.com/questions/16985518/batch-file-for-running-diskpart
https://stackoverflow.com/questions/5898763/how-do-i-get-the-ip-address-into-a-batch-file-variable
https://www.dostips.com/DtTipsStringManipulation.php#
그냥 생각나는대로 추가해놓고 나중에 정리하겠습니다. 관심있는분만 참고하세요.
메인보드 정보
:: 메인보드 제조사
set MBMF=0
::1번 토큰만 빼서 짧게 변환
for /F "tokens=1 skip=1" %%n in ('wmic baseboard get manufacturer ^| findstr "."') do set "MBMF=%%n"
set MBMF=%MBMF:Hewlett=HP%
set MBMF=%MBMF:ASUSTek=ASUS%
set MBMF=%MBMF:MICRO-STAR=MSI%
set MBMF=%MBMF: =%
:: 메인보드 모델명
set MBPR=0
for /F "tokens=* skip=1" %%n in ('wmic baseboard get product ^| findstr "."') do set "MBPR=%%n"
for /F "tokens=1 skip=1" %%n in ('wmic baseboard get product ^| findstr "."') do set "MBPRs=%%n"
set MBPR=%MBPR%##
set MBPR=%MBPR: ##=##%
set MBPR=%MBPR: ##=##%
set MBPR=%MBPR:##=%
echo on
SET "MoBo=%MBMF% %MBPR%"
SET "MoBos=%MBMF% %MBPRs%"
::MBPRs는 글자 수 넘칠때만 사용하는 짧은 이름, 대부분의 경우 칩셋명까지만 나옴
::설치된 윈도우 정보 수집 - 운영체제32/64 구분 추가
For %%B in (%WinDrvS%) do (
(echo sel vol %%B
echo det vol
echo lis par
echo exit
) | diskpart>"%temp%\vol%%B.txt"
for /f "tokens=3 usebackq delims= " %%a in (`"find "* 디스크" "%temp%\vol%%B.txt""`) do set WINDISK=%%a
for /f "tokens=3 usebackq delims= " %%b in (`"find "* 파티션" "%temp%\vol%%B.txt""`) do set WINPAR=%%b
for /f "tokens=1-2 delims=: usebackq" %%a in ("%temp%\vol%%B.txt") do (if "%%a" EQU "볼륨 용량 " set Tcapa=%%b)
SET Tcapa=!Tcapa: =!
SET TwinArc=x86
IF EXIST "%%B:\Windows\SysWOW64" SET TwinArc=x64
REG LOAD HKLM\Tmp_SFT "%%B:\windows\system32\config\SOFTWARE"
FOR /F "TOKENS=1* DELIMS=REG_SZ USEBACKQ SKIP=1 " %%I IN (`Reg query "HKLM\Tmp_SFT\Microsoft\windows NT\CurrentVersion" /v "productname"`) DO (
IF "%%I" EQU " productname " (
SET WinName2=%%J
FOR /F "TOKENS=* DELIMS= " %%Z IN ("!WinName2!") DO SET WinName2=%%Z
SET "WinName=!WinName! !WinName2! !TwinArc! (!WINDISK!:!WINPAR! %%B:!Tcapa!)"
)
)
REG UNLOAD HKLM\Tmp_SFT
)
글자수 제한 해결하기
::2번째줄 글자 수 검사, 127글자 넘치게 되면 글자수 줄이기
set "TEXT=OS :%WinName% / IP : %IP_Ad% / Bios : %BTYPE%"
ECHO %TEXT%>x&FOR %%? IN (x) DO SET /A strlength=%%~z? - 2&del x
ECHO %strlength%
IF %strlength% GTR 127 ECHO 범위초과
IF %strlength% LEQ 127 ECHO 출력가능
IF %strlength% GTR 127 (
ECHO 1차 단축
SET TEXT=!TEXT:Windows=Win!
SET TEXT=!TEXT:Professional=Pro!
SET TEXT=!TEXT:Enterprise=Ent!
SET TEXT=!TEXT:Education=Edu!
SET TEXT=!TEXT:Pro For Worksations=Pro WS!
SET TEXT=!TEXT:China Government Edition=CGE!
SET TEXT=!TEXT:Home Basic=HB!
SET TEXT=!TEXT:Home Premium=HP!
SET TEXT=!TEXT:Embedded=Emb!
SET TEXT=!TEXT:Systems=Sys!
SET TEXT=!TEXT:Standard=Std!
SET TEXT=!TEXT:POSReady=POSRdy!
SET TEXT=!TEXT:Industry=Indus!
SET TEXT=!TEXT:Single Language=SL!
SET TEXT=!TEXT:Ultimate=Ult!
ECHO !TEXT!>x&FOR %%? IN (x) DO SET /A strlength=%%~z? - 2&del x
ECHO 1차 단축된 문자열 길이 !strlength!
IF !strlength! GTR 127 (
ECHO 2차 단축, 공백제거
SET TEXT=!TEXT:Bios ^: =B^:!
SET TEXT=!TEXT:OS ^: =O^:!
SET TEXT=!TEXT:IP ^: =I^:!
SET TEXT=!TEXT:Legacy=L!
SET TEXT=!TEXT:UEFI=U!
SET TEXT=!TEXT:GB=G!
SET TEXT=!TEXT: (=(!
SET TEXT=!TEXT: / =/!
ECHO !TEXT!>x&FOR %%? IN (x) DO SET /A strlength=%%~z? - 2&del x
ECHO 2차단축된 길이 : !strlength!
)
)
IF %strlength% GTR 127 echo 그래도 김
IF %strlength% LEQ 127 ECHO 출력가능
echo 결과값 : %TEXT%
::3번째줄 글자 수 검사, 넘치면 줄이기
set "TmpTEXT2=CPU : %CNAME% (%PCORE%C%LCORE%T) / RAM : %TM%GB (%ram_count%/%m_bank%) / MB : %MoBo% / GPU : %GNAME%"
ECHO %TmpTEXT2%>x&FOR %%? IN (x) DO SET /A strlength=%%~z? - 2&del x
ECHO %strlength%
IF %strlength% GTR 127 ECHO 범위초과
IF %strlength% LEQ 127 ECHO 출력가능
::메인보드 이름만 줄여보고 안되면 공백 등 조절
IF %strlength% GTR 127 (
ECHO 범위초과
SET "TmpTEXT2=CPU : !CNAME! (!PCORE!C!LCORE!T) / RAM : !TM!GB (!ram_count!/!m_bank!) / MB : !MoBos! / GPU : %GNAME%"
ECHO !TmpTEXT2!>x&FOR %%? IN (x) DO SET /A strlength=%%~z? - 2&del x
IF !strlength! GTR 127 (
ECHO 2차 단축, 공백제거
SET TmpTEXT2=!TmpTEXT2:CPU ^: =C^:!
SET TmpTEXT2=!TmpTEXT2:RAM ^: =R^:!
SET TmpTEXT2=!TmpTEXT2:MB ^: =M^:!
SET TmpTEXT2=!TmpTEXT2:GPU ^: =G^:!
SET TmpTEXT2=!TmpTEXT2:GHz=G!
SET TmpTEXT2=!TmpTEXT2:GB=G!
SET TmpTEXT2=!TmpTEXT2: @ =@!
SET TmpTEXT2=!TmpTEXT2: (=(!
SET TmpTEXT2=!TmpTEXT2: / =/!
ECHO !TmpTEXT2!>x&FOR %%? IN (x) DO SET /A strlength=%%~z? - 2&del x
ECHO 2차단축된 길이 : !strlength!
)
)
IF %strlength% GTR 127 echo 그래도 김
IF %strlength% LEQ 127 ECHO 출력가능
echo 결과값 : %TmpTEXT2%
IF "%GNAME%" NEQ "0" (
reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "BuildLab" /d "%TmpTEXT2%" /f
)
댓글 [15]
-
dakgong 2020.06.16 00:53
-
이어도 2020.06.16 10:42
참고한 사이트만 봐도 어질어질한데
간단한(?) 표시 하나를 위해 저렇게 많은 수고를 하신다니 존경합니다~
건강하시고 행복한 일상 되시기 바랍니다^^
-
집앞의_큰나무 2020.06.16 13:46
반쯤은 사용하고있는데도 저도 어질 어질 하네요
저런 스크립트를 짜내시느라 얼마나, 고행을
수고에 감사 드립니다.
-
두손모아 2020.06.16 14:13
^^;;; 수고하셨습니다
-
집앞의_큰나무 2020.06.16 14:13
저같은 경우 위의 스크립트중 전체 또는 일부는 정말 유용하게 활용할 수 있는것들인것 같습니다.
꼭 PE에서 뿐만 아니더라도요
두가지 질문이 있습니다.
그레픽 설치 문제로 테스트 모드로 사용한적이 있었습니다.
첫째는 히이이잌님 백업 복원 PE를 보면 테스트 모드로 부팅이 되도록 하셨는데 작동되는 뭔가와 관련이 있는것인지 궁금 합니다.
둘째는 basebrd.dll.mui 파일을 루퍼스해커로 수정하여 파일을 바꾸고 바뀐 정보를 나타내는 방식인지가 궁금합니다.
중요치는 않습니다만 파일이 바뀌면 내PC 속성에서 보여지는것도 바뀔것 같아서요
-
히이이잌 2020.06.16 14:41
1. PE에 드라이버팩을 포함하다 보니 드라이버 설치때문에 테스트 모드를 설정한게 맞습니다.
2. 같이 바뀝니다. -
집앞의_큰나무 2020.06.16 14:59
아~ 네
그이유 였군요
drvinst.exe 바꿔줘도 일반모드에서 설치되기는 하는데 안정적인게 좋긴하죠,
-
히이이잌 2020.06.16 15:18
마지막으로 손대던건 AMD CPU 모델명을 좀 더 간결하게 다듬는 작업을 하고 있었습니다.
띄우는 정보 갯수에 욕심을 내다보니 글자수에 민감해지네요.
예를 들면 AMD Ryzen 9 3900X 12-Core Processor를 AMD Ryzen 9 3900X @ 3.30GHz로 바꿔줍니다.
:: AMD CPU 모델명 편집
for /f "tokens=1-10" %%a in ("%CNAME%") do IF %%a EQU AMD (
for /f "tokens=2 delims==" %%i in ('wmic CPU get MaxClockSpeed /format:list 2^>nul') do set cpu_hz=%%i
set clock_1=!cpu_hz:~0,1!
set clock_2=!cpu_hz:~1,2!
IF %%b EQU Ryzen set CNAME=%%a %%b %%c %%d @ !clock_1!.!clock_2!GHz
IF %%c EQU APU set CNAME=%%a %%b @ !clock_1!.!clock_2!GHz
IF %%c EQU Radeon set CNAME=%%a %%b @ !clock_1!.!clock_2!GHz
IF %%d EQU with set CNAME=%%a %%b %%c @ !clock_1!.!clock_2!GHz
)
-
집앞의_큰나무 2020.06.16 15:30
아이쿠 이런고급스크립트를 또
고맙습니다.
-
Compuser 2020.06.16 17:01
늘 도움과 가르침에 감사드립니다.
수고 많으셨습니다. 히이이잌님^^
-
cungice 2020.06.16 19:56
고생 많으셨습니다. 감사합니다.
-
REFS 2020.06.17 09:58
수고하셨습니다
감사합니다..
-
리오스 2020.06.20 06:36
정성이 느껴집니다.. 감사 합니다.
-
데헤헤 2020.10.28 01:32
감사합니다.
-
alwaysoo 2024.07.22 21:51
감사합니다
유용한 정보를 정리하고 포스팅해주셔서 감사합니다.