SharedIT | 묻고 답하기(AMP)

프린터 드라이버 자동설치 스크립트..

안녕하세요, 복합기 업체에서 일하고 있는 사람입니다.

거래처를 상대하다보면 PC를 포맷했거나 PC를 교체하면 복합기를 사용하기 위해서

복합기 드라이버 설치요청으로 자주 방문하는 사례가 요즘 윈도우7에서 윈도우10으로 변경되면서

업무가 많아졌습니다.

그렇다보니 드라이버 설치에만 많은 시간이 투자되어 다른일이 지연되기 일수 입니다.


그러던 중에 제록스에서는 통합 드라이버 설치 프로그램에서 프린터 정보값(단면, 칼라인쇄)을

저장하여 드라이버 설치시 복합기 아이피만 넣어주면 프린터 정보값을 따로 설정해주지 않아도

자동으로 설치가 되더군요. 그럼 드라이버 설치하는 사람 입장에서는 프로그램 실행 후 복합기

아이피만 넣어주고 다른자리로 가기전 시간이 기존에 5분이 걸리는 것을 1분도 안되서 설치가 마무리가

되더라구요.


그래서 그런 프로그램을 쉽게 만들어주는게 없을까 하다가 인터넷에 돌아다니는 스크립트를

알게 되었습니다. 프로그램에 관련없는 사람들은 자료를 보고도 무슨소린지 도통 모르겠네요.

혹시 이와 관련된 내용을 아시거나 관심없었는데 관심이 급 가시는분(?)이 있으시면..ㅋㅋ

저와 같이 머리싸메고 공부하실분이나 도움주실 분 있으시면..... 부탁 좀 드리겠습니다~!!!


쉽게 정리하자면.. 제가 경험했던 스크립트 중에서

EXE 파일 실행 후 아이피만 입력해주면 흑백전용 드라이버, 칼라전용 드라이버 두개가 동시에 설치가 되고

그 특정 복합기 드라이버 특성상 기본 설정이 양면인쇄로 되어있는데 단면인쇄로 변경되서 설치가 됩니다.

  • 1.프로그램 실행 후 복합기 아이피 입력, 엔터

  • 2.단면 흑백복합기 드라이버

  • 3.단면 칼라복합기 드라이버

  • 4.

6개의 답변이 있습니다.

그저멍하니
  0 추천 | 약 4년 전

프린터 서버를 하나 구축하시고, 공유 프린터로 설정하시는건 어떨까요?


IP로 프린터 공유 연결만 하면 되는 간단한 방법으로 해결하실수 있을것 같습니다.


akunim | 약 4년 전

공유프린터는.. 그 PC가 꺼져있으면 인쇄가 안되지 않나요? 다른 설정방법이 있을까요? ^^;;

wansoo | 약 4년 전

요즘 네트워크 기능이 내장된 프린터들이 많죠~ 네트워크 프린터는 프린터만 켜서 사용하면 되긴하지만... 네트워크 프린터도 프린터 드라이버를 잡아 줘야 합니다. 컴퓨터에 연결해서 공유하는 프린터도 마찬가지이고요.

minsu3334 | 일 년 이상 전

프린터 서버가 있으면 랜섬웨어에 제일 취약한 서버중에 하나로 회사 내부에 전유저들이 타고 나갈 수 있는 매개체가 될 수 있어서 위험할 수 있습니다.

wansoo
  0 추천 | 약 4년 전

컴퓨터 한대에다 제대로된 프린터 설정을 한후에 설정 완료된 프린터 설정 내용들을 Binary file인

file명.dat로 해서 백업 받은 후에 다른 컴퓨터에 그대로 복원 시켜서 사용하면 되겠네요.


장치  및 프린터에 들어 가 보시면 프린터 명들이 쭉~ 있잖아요~

그 중에 바이너리로 백업 받으려는 프린터 이름을 확인해서

rundll32 printui.dll,PrintUIEntry /Ss /n "코니카미놀타 프린터 명" /a 백업받으려는파일명.dat u

으로해서 백업 받아서, 복원할때 사용하면 되겠습니다.

나희 | 약 일 년 전

안녕하세요 백업명어는 실행이 되는데 복원하면 

rundll32 printui.dll,PrintUIEntry /Sr /n "Canon C3525 칼라" /a "%cd%\CFG\color.dat" u

이렇게 sr를 줘서 복원하면 에러가 납니다 

ss를 주면 백업은 에러없이 실행이 됩니다

복원하는 명령어가 잘못된걸까요?


wansoo
  0 추천 | 약 4년 전

스크립트 안의 명령들  중에서...

rundll32 printui.dll,PrintUIEntry /Sr /n "Canon C3525 흑백" /a "%cd%\CFG\bk.dat" u

위 명령이 흑백  전용 프린터를 백업받아둔 설정파일로  부터  복원하는 명령이 되겠고요.


rundll32 printui.dll,PrintUIEntry /Sr /n "Canon C3525 칼라" /a "%cd%\CFG\color.dat" u

위  명령이 칼라 전용 프린터를  백업 받아둔  설정파일로  부터 복원하는 명령이 되겠는데요.


복원하는 설정에 일부 수정되어야 한다면 원하는 대로  프린터  설정을 다시  한 후에 각각의 설정 백업 파일을  다시  생성해서  사용하면 될걸로 보이네요.

흑백용 bk.dat와 칼라용 color.dat를 원하는 설정이 저장되도록 해서 다시 만들면 될것 같네요.


백업 복원 파일을 다시 만드는 건...

위의 복원 명령에서 옵션만 하나 살짝 변경 시켜 주면 되겠고요.


rundll32 printui.dll,PrintUIEntry /Ss /n "Canon C3525 흑백" /a "%cd%\CFG\bk.dat" u

rundll32 printui.dll,PrintUIEntry /Ss /n "Canon C3525 칼라" /a "%cd%\CFG\color.dat" u

로 /Sr을  /Ss로 변경해서 명령을 주면 되겠네요.

akunim | 약 4년 전

와 정말 감사합니다.. 상세하게 적어주시니 지식 0~100에서 10까지는 올라온것 같아요.. 워낙 모르는 분야다보니.. ^^;; 아 제가 핵임적인거 한가지를 빼먹고 말씀드렸는데.. 지금 만들어진 드라이버는 캐논 드라이버인데.. 코니카미놀타 드라이버로 변경해서 만들고 싶거든요..ㅋㅋㅠㅠ

akunim | 약 4년 전

bk.dat, color.dat 파일을 수정하거나 만들려면 어떻게 해야할까요? 메모장이나 워드로 열려고 했더니 깨지는것 같은데..ㅠㅠ

wansoo | 약 4년 전

바이너리 파일은 Text 편집기로 열수 있는 건 아니고요~ 프린터 설정에서 변경 적용한 후에 /Ss 옵션을 줘서 다시 받아 주면 될걸로 보이네요.

akunim | 약 4년 전

그럼 백업 복원파일을 다시 만든다는 개념이 저 명령어를 cmd에서 쓰라는 말인지.. 아니면 저 스크립트에서 변경을 하라는 말인지 모르겠어요.. 제가 예전에 배치파일(bat) 만들때는 뭐 저런식으로 명령어라고 하기엔 좀 그렇고.. 좌우지간 뭘 만들고 수정할때는 항상 메모장 열어서 bat파일 끌어다가 내용 수정하는 식으로 해서 지금 말씀하시는거하고 매칭이 잘안되네요.. 머릿속에 멍청이가 살고있어서..ㅠㅠ 그러니까.. 프린터 설정값을 모두 제가 원하는데로 저장하고 난 후에 .dat 파일을 만드는 방법이.. 제가 드린 저 스크립트 파일에서 추가해가지고 하라는건지.. cmd에서 저 명령어 그대로 입력해가지고 bk.dat 을 만들으라는건지.. 만약 후자면은.. 에러가나는데.. 어떻게 자세히 설명을 들을 수 없을까요? 정말 멍청열매를 먹었지만.. 배우고싶은 마음이 너무 굴뚝같은데.. 못따라가는 제가 원망스럽군요~ㅠㅠ

akunim | 약 4년 전

/sS 옵션을 어디다 줘서 받으면 될지 궁금해요 ㅠ.ㅠ

wansoo | 약 4년 전

커멘드에서 rundll32 printui.dll,PrintUIEntry /Ss /n "코니카미놀타 프린터 명" /a 백업받으려는파일명.dat u 와 같이 명령을 줘 보세요~

wansoo | 약 4년 전

cmd에서 rundll32 printui.dll,PrintUIEntry /Ss /n "Canon C3525 칼라" /a "%cd%\CFG\color.dat" u 와 같이 명령을 줄때 오류가 나는 이유는 "%cd%\CFG\color.dat" 가 환경변수로 지정한 형태이고, 제대로된 경로로 변환되지 않았기 때문이죠. "%cd%\CFG\color.dat" 를 d:\color.dat 등의 형태로 변경해서 명령을 주면 오류없이 실행될겁니다.

akunim | 약 4년 전

오.. 제가 멍청열매를 아침부터 먹고왔는데 요건 너무 설명을 잘해주셔가지고 드디어 백업본을 만들었습니다. 이제 문제는 밑에 써주신 글을 이해하고 하나하나 수정해야되는데 벌써부터 머리가 압축되는것처럼 머리에 산소가 부족한 느낌입니다..ㅋㅋ 매우 감사드려요. 마음같아선 밥, 술 다 사드리면서 하나하나 배우고싶지만 한번 도전해보겠습니다... 혹시 궁금한점 있으면 또 리플달아도 될까용? ^^;;;ㅋㅋㅋ
wansoo
  0 추천 | 약 4년 전

C3525.cmd  Script에 대한 설명을 각 명령 아래에 rem 주석 명령을 이용해서 표시했습니다.

참고하신다면 Setup_8100.cmd도 유사해서 이해하는데 큰 어려움은  없을 걸로 보이네요.

============================================================================

@echo off
rem @echo off는 화면에 명령어들이 불필요하게 표시되어 화면을 지저분하게 만들게 하기 위해 사용하는 명령어죠.
color 17
rem color 명령은 화면의 색깔을 변경하는 명령으로 앞에 1은 전경색을 파란색으로 바꾸기 위한것이고, 뒤에 7은 글자색을 흰색으로 하기 위한 것이고
PUSHD %~DP0
rem 나중에 현재 경로(path)로 다시 되돌아 오기 위해,  현재 위치를 Stack에 저장하고, batch file이 있는 Path위치로 이동하기 위한 명령
rem %0가 실행되는 스크립트의 전체 경로가 되며, %~d0 일경우에는 %0에 해당하는 path에서 드라이브 명만,
rem %~dp0는 %0에서 드라이브명과 서브디렉토리를 추출
set od=%cd%
rem %cd%는 현재 경로에 대한 환경변수값으로 od라는 새로운 환경 변수에 현재 경로 즉... 스크립트가 있는 경로 위치를 저장

:main
rem 스크립트 수행중에 goto 문을 이용해서 jump하기 위한 label 설정, 스크립트 실행중 goto main 을 만나면 이 위치에서 실행됨
set ht=
set ht1=
set ht2=
set ip=
set yn=
set inf=
set inf1=
set inf2=
set menu=
set title=
set title1=
set title2=
set os=
rem 사용될 환경변수들을 초기화 시킴

if exist "%systemroot%\system32\prnport.vbs" (
set os=1
) else (
set os=2
)
rem %systemroot% 환경변수는 윈도가 설치된 디렉터리를 의미하게되고, 기본적으로 c:\windows가 되겠죠.
rem windows가 설치된 경로 아래에 system32에 prnport.vbs file이 있을 경우에는 os 환경 변수에 1값을 없을 경우에는 2값을 입력

if exist "%PROGRAMFILES(X86)%" (
set os=3 )
rem 환경변수 %PROGRAMFILES(X86)%에 저장된 값이 해당 디렉터리에 존재할 경우에는 os 환경 변수값을 3으로 설정
rem 대부분 64bit window일 경우 %PROGRAMFILES(X86)% 환경 변수에 C:\Program Files (x86)가 저장됨

FOR /F %%I IN ("%0") DO SET CURRENTDIR=%%~dpI
rem for 문을  이용해서 스크립트가 있는 경로를 CURRENTDIR 환경  변수에 저장
rem set CURRENTDIR=%dp0 와 같이 간단한 명령을 사용해도 될것 같은데, 왜 for문을 사용해서 복잡하게 만들었는지는 이해가되지 않음??

echo.
echo ====================================================================
echo.
echo  복합기.프린터.컴퓨터 (임대,판매) (주)테라네트웍스 042-482-0720
echo.
echo.
echo  홈페이지 : https://blog.naver.com/kkyun179
echo.
echo.
echo  복합기 Canon IR ADV C3525 드라이버 자동설치
echo.
echo ====================================================================
echo.
echo.
rem 화면에 메시지를 표시함

set /p ip=프린터 IP 주소를 입력하십시오  [ENTER] :
rem 사용자로 부터 ip주소를  입력 받음

if exist "%windir%\SysWOW64" (
set osbit=64
) else (
set osbit=32
)
rem %windir% 환경 변수 아래에 SysWOW64 디렉터리가 있다면 osbit 환경변수 값을 64로, 없다면 32로 설정
rem 일반적으로 %windir%과 %SystemRoot% 환경 변수값이 동일할 것으로 예상됨

if %osbit% ==  64  goto os64
rem %osbit% 환경 변수가 64이면 os64 label로 Jump

:os32
rem os32 label에 해당되는 내용으로 osbit값이 64가 아닐 경우에 기본적으로 실행될것이며
rem osbit  값이 64일 경우에는 실행에서 제외되게 됨

set pp=%cd%\32\C3525\Driver\CNLB0O.INF
rem 32비트 OS일 경우에 pp 환경 변수에 실행된 스크립트가 있는 디렉터리 아래의 32\C3525\Driver\
rem 서브 디렉터리 아래의  CNLB00.INF file을 지정함

set inf=Canon iR-ADV C3525/3530 UFR II
rem 32비트 OS일 경우에 inf 환경변수 값 지정

set pp1=%cd%\32\C3525\Driver\CNLB0O.INF
set inf1=Canon iR-ADV C3525/3530 UFR II

set pp2=%cd%\32\FAX\Driver\cnxrpmw2.inf
set inf2=Canon Generic FAX Driver (FAX)

set title=Canon C3525 흑백
set title1=Canon C3525 칼라
set title2=Canon C3525 FAX
rem 32bit OS에 맞게 각각의 환경 변수값들을 설정함

goto setup
rem 32비트에 대한 환경 변수값 설정이 끝난 후에 아래의 64비트에 대한 설정을 건너뛰기 위해
rem setup label로 Jump 시킴

:os64
rem  64bit OS일 경우에 실행되는 내용
set pp=%cd%\64\C3525\Driver\CNLB0OA64.INF
set inf=Canon iR-ADV C3525/3530 UFR II

set pp1=%cd%\64\C3525\Driver\CNLB0OA64.INF
set inf1=Canon iR-ADV C3525/3530 UFR II

set pp2=%cd%\64\FAX\Driver\cnxrpma6.inf
set inf2=Canon Generic FAX Driver (FAX)

set title=Canon C3525 흑백
set title1=Canon C3525 칼라
set title2=Canon C3525 FAX

rem 64비트 OS에 해당하는 각각의 환경 변수 값들을 설정함

goto setup
rem 64비트 OS에 대한 환경 변수값 설정 완료  후 setup lable로 Jump시킴, 바로 아래 setup label이 있어 없어도 무관한 명령

:setup   
rem 각각의 os bit에 대한 환경 변수 설정 후 처리되는 부분

cls
rem 화면을 깨끗하게 지움

echo.
echo.
echo.
echo.
echo  복합기 프린터 컴퓨터 (임대,판매) (주)테라네트웍스 , 042-482-0720
echo.
echo 프 린 터 : %inf%
echo 아 이 피 : %ip%
echo 프린터명 : %title%
echo 프린터명 : %title1%
echo 프린터명 : %title2%
echo 프로토콜 : RAW 9100
echo.
echo.


echo.
echo.
echo.
echo 프린터 포트 추가 및 프린터 설치 명령을 수행합니다. 잠시 기다려 주세요...
echo.
echo.
rem  화면에 처리할 내용들을  표시해 줌

if "%os%" == "1" (
cscript %systemroot%\system32\prnport.vbs -a -r %ip% -h %ip% -o raw -n 9100
) else (
cscript %systemroot%\system32\Printing_Admin_Scripts\ko-KR\prnport.vbs -a -r %ip% -h %ip% -o raw -n 9100
)
rem os 환경변수에 저장된 값이 1일 경우에는 %systemroot%\system32\ 에서 prnport.vbs  vb scipt를 찾아 실행시키고,
rem os 환경변수에 저장된 값이 2일 경우에는 %systemroot%\system32\Printing_Admin_Scripts\ko-KR\ 에서 prnport.vbs  vb scipt를 찾아 실행시킴

rundll32 printui.dll,PrintUIEntry /if /b "%title%" /f "%pp%" /r "%ip%" /m "%inf%"
rundll32 printui.dll,PrintUIEntry /if /b "%title1%" /f "%pp1%" /r "%ip%" /m "%inf1%"
rundll32 printui.dll,PrintUIEntry /if /b "%title2%" /f "%pp2%" /r "%ip%" /m "%inf2%"
rem /if  - inf file을 이용하여 프린터 드라이버 설치
rem /b  - 프린터 이름,  /f  - inf 파일 지정,  /r  - 포트 이름 지정    /m  - 프린터 드라이버 모델 이름

rundll32 printui.dll,PrintUIEntry /Sr /n "Canon C3525 흑백" /a "%cd%\CFG\bk.dat" u
rundll32 printui.dll,PrintUIEntry /Sr /n "Canon C3525 칼라" /a "%cd%\CFG\color.dat" u
rem /Sr  - 프린터 설정을 File로 부터 복원 시킴
rem /n  - 프린터 이름 지정    /a  - 이진 File 지정
rem 실행한 스크립트가 있는 디렉터리 하위의 CFG 디렉터리에 있는 bk.dat file과 color.dat 이진 파일을 이용해 복원 시킴
rem 끝에 u는 사용자 DevMode로 복원시킴

rundll32 printui.dll,PrintUIEntry /y /n "Canon C3525 흑백"
rem /y  - 기본 프린터로 설정함,  /n  - 기본  프린터로 설정할 프린터 이름

control printers
rem 장치 및 프린터 제어판 화면에 띄움

:exit
rem 끝을 알리는  Label

============================================================================


스크립트를  확인하면서 추가적인 공부도 할수 있어 유용했네요~  ^^

akunim
  0 추천 | 약 4년 전

http://aku.ipdisk.co.kr:80/aku/HDD1/Data/PrintAuto.zip


제 나스에 데이타 올린거 받으시면 되구요.

압축풀면 C3525 라고 캐논 복합기 자동드라이버 스크립트가 있는데

이 자동스크립트를 같은 업종의 대리점에서 만들어서 주셨습니다. 근데 이분에게 만드는 방법을

전수받기엔 친하지도 않고.. 이것때문에 연락하기도 뭐해서.. 혼자 한달동안 인터넷을 뒤적거렸습니다.

IR2525.exe 파일 실행하면 아이피 입력창이 뜨고.. 앞서 말한 내용이 이 파일입니다.

그래서 저희 사무실 사장님 통해서 그 직원에게 만드는 방법이나 소스좀 달라고 요청을 했더니

압축풀면 나오는 자료들을 준거에요. 파일을 보면 블로그 링크가 있는데 제가 다 인터넷에서 본겁니다.

결국에는 제가 본 자료를 그 직원분도 보고 공부를 하신것 같더라구요.

제일 빠른 방법은 그분한테 배우는 것인데, 성격상 그럴수 없겠더라구요. 염치도 없고 ^^;;

물론 여기계신 전문가님들에게 요청하는것 또한 염치가 없는 부분이긴 하네요..

Genghis Khan | 약 4년 전

좋은 자료네요
wansoo
  0 추천 | 약 4년 전

프린터에 따라 지원되는 것도 있고, 지원되지 않는 것도 있고...

가장 좋은 방법은 디스크 이미지를 받아 뒀다가  통채로 들어 붙는 방법이 지원하는지, 하지  않는지 따지지 않고서도 할수 있는  쉬운 방법이 되겠고요.

단지 이미지를 들어 부으면 디스크에  저장된 내용 모두가 이미지에 백업 받아 둔 내용으로 그대로 복원되어 버린다는게 단점이 되겠죠.

인터넷에 올라와 있다는 스크립트를 한번 올려 봐 보세요.

그 스크립트가 어떤 역할을 하고, 왜 사용되었는지를 능력되는 만큼 설명해 드려  볼께요~

akunim | 약 4년 전

답글 올렸습니다. ^^;;