SharedIT | 묻고 답하기(AMP)

프린터/복합기 출력 흑백으로 기본 셋팅하는 bat 파일

회사에서 출력관련하여, 일괄통제하고 있는데요.

서버에 bat파일 사용해서 스케줄러로 등록해서 

기본값을 흑백으로 출력되도록 설정하고 싶은데요


bat파일로 작성 가능할것 같아보이긴하는데

가능여부 확인이나 도움주실수 있으실까요

@echo off
set printerName=Print

:: 흑백으로 설정
wmic printer where name='%print%' call setdefaultprinterconfig("b&w")

echo Printer settings for %print% set to monochrome successfully.


이렇게 작성하면 setdefaultprinterconfig 잘못된 별칭 동사입니다 라고 나옵니다.


set default printer conifg 띄어쓰기하면 set 잘못된 별칭 동사입니다 라고 나오네요 ㅠ

7개의 답변이 있습니다.

wansoo
  0 추천 | 2달 전

topkslee님이 제시한 PowerShell 명령으로 배치 파일을 만들어 사용하면 되겠네요.


아래와 같이 배치 파일을 만들어서 여러가지 프린터에 대해 Test해 봤는데, 모든 프린터에 적용되는 것은 아니지만 대부분 프린터에서 잘 적용되는 것 같네요.


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

@echo off

set printerName=Print

:: 흑백으로 설정

powershell -command "&{Set-PrintConfiguration -PrinterName '%printerName%' -Color $false}"


echo Printer settings for %printerName% set to monochrome successfully.

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



시스템 관련 설정 변경을 위해서는 관리자 계정으로 배치 파일을 수행 시켜 줘야 한다는 점이 주의해야 할 점이 되겠고요.

룰루랼라 | 2달 전

에러는 발생 안했으나, 컬러에서 흑백으로 변경이 안되어있네용 ㅠ


명동쓰레빠
  0 추천 | 2달 전

프린트 설치 프로그램 기본 옵션을 흑백만 되게 제조사에 요청 해 보시길 바랍니다.

룰루랼라 | 2달 전

비용 발생하는 부분 있다보니, 안해주려고하시는건지 없다는식으로 말하고, 윈도우단이라고 안해주려고하네요

topkslee
  0 추천 | 2달 전

powershell에서 가능할것 같은데요.


Set-PrintConfiguration -PrinterName '프린터이름' -Color $false

color 옵션은 boolean이나 false하면 될것 같은데요. 참고해보세요.


MS doc 참고하세요.

https://learn.microsoft.com/en-us/powershell/module/printmanagement/set-printconfiguration?view=windowsserver2022-ps

https://learn.microsoft.com/en-us/powershell/module/printmanagement/set-printerproperty?view=winserver2012r2-ps&redirectedfrom=MSDN


룰루랼라 | 2달 전

잘 참고해서 실행은 되나 흑백 변경은 안되네요

deerokgo
  0 추천 | 2달 전

Method 명이 잘못된거 같습니다.

찾아 보니, 

setdefaultprinterconfig 가 아니고, SetDefaultPrinter() 를 사용하셔야 하는 것으로 생각이 됩니다.


도움이 되실지 모르겠지만, 아래 URL 참고해 보세요.


https://admhelp.microfocus.com/uft/en/all/VBScript/Content/html/66b55665-0ba7-4216-b3b3-06c9fb837f68.htm

wansoo
  0 추천 | 2달 전

기본적으로 제공되는 CLI 명령이 없는 걸로 보이네요.

wmic printer where name='%print%' call

뒤에 사용할 수 있는 "별칭 동사"는 기본 프린터 설정에 사용할 수 있는 setdefaultprinter 밖에 없는 걸로 보여 지고요.


wmic printer where name='%print%' call setdefaultprinter

명령을 주면 print 환경 변수에 지정한 프린터를 기본 프린터로 지정할 수 있는 기능은 있지만...

setdefaultprinterconfig 는 오류 메시지에서와 같이 사용할 수 있는 별칭 동사에 해당하지 않고요.


wmic printer where name='%print%'  set 명령으로 일부 값을 변경하는 방법이 있긴하지만, 출력 색상 기본값을 변경할 수 있는 속성은 없는 것으로 보이고요.



Window에서 제공하는 winspool.drv DLL 라이브러리를 호출해서 지정한 프린터 장치에 대한 설정 정보를 변경할 수 있는 개발 언어를 이용해야 가능하지 않을까 싶어 보이네요.


파이썬의 win32print 라이브러리를 사용해서 변경한다거나, C, C++ 등등의 개발 언어를 이용해서 지정한 장치에 접근해서 설정 정보를 변경하는 CLI 프로그램을 만들어서 사용하는 방법이 최선이지 않을까 하는 생각이 드네요.

앵그리파파
  0 추천 | 2달 전

문제는 setdefaultprinterconfig 라는 직접적인 WMI 메서드가 없기 때문에 발생합니다. WMI의 'win32_Printer' 클래스를 사용하여 기본 프린터를 설정하고 해당 속성을 구성할 수 있습니다. 다만, WMI를 통해 색상 구성을 설정하는 직접적인 방법은 없습니다. 


프린터 설정을 변경하려면 다른 도구나 유틸리티를 사용해야 할 수도 있습니다.


그러나 'rundll32' 유틸리티를 사용하여 기본 프린터를 설정할 수 있습니다.  참고하세요.


다음은 기본 프린터를 설정하기 위해 배치 파일을 만드는 방법에 대한 예입니다.




** 'YourPrinterName'를 실제 프린터 이름으로 변경하세요.


프린터를 흑백으로 설정하는 경우 프린터 모델과 드라이버에 따라 달라질 수 있으므로 더 까다롭습니다. 일부 프린터에서는 'rundll32' 유틸리티를 사용하여 기본 옵션을 설정할 수 있지만 모든 프린터에서 표준화되어 있지는 않습니다.


예를 들어 다음과 같이 시도해 볼 수있습니다.



:: Set the default printing preferences (chang options based on your printer driver)

rundll32 printui.dll,PrintUIEntry /Xg /n "%printerName%" "featurename" "bw"

echo Default printer set to %printerName% and printing preferences set to black and white sucessfully.

** featurename 을 프린터의 색상 설정에 해당하는 실제 기능 이름으로 바꾸세요. 이러한 설정은 프린터마다 다르므로 다양한 옵션을 시험해 봐야 할 수도 있습니다.

앵그리파파 | 2달 전

또는, 다음과 같이 변수를 수정해보세요.

@echo off
set printerName=Print

:: 흑백으로 설정
wmic printer where name='%printerNam  e%'  call setdefaultprinterconfig("b&w")


echo Printer settings for %printerName% set to monochrome successfully.


위의 수정된 배치파일에서 %printerName% 은 변수로 설정한 프린터 이름을 사용하도록 변경했습니다. 

-- (기존) %printer% -> (변경) %printerName%

차니
  0 추천 | 2달 전

pc 에서 설정보다는 프린터 수량이 적을 듯

합니다. 프린터에서 흑백으로 디폴트 설정하시는게 나아 보입니다만