@echo off IF %1.==. GOTO USAGE IF %2.==. GOTO USAGE IF %3.==. GOTO USAGE IF %4.==. GOTO USAGE set DRIVERPATH=%1% set DRIVERNAME=%2% set PRINTERIP=%3% set PRINTERNAME=%4% set PORTNAME=IP_%PRINTERIP% if NOT EXIST %DRIVERPATH% ( echo ERROR: %DRIVERPATH% not found! exit /b ) rem install the inf files ... PNPUtil.exe /add-driver %DRIVERPATH%\*.inf /install rem add the printer driver ... powershell -Command "Add-PrinterDriver -Name '%DRIVERNAME%' -Verbose" rem add the printer port ... powershell -Command ^ "$checkPortExists = Get-Printerport -Name %PORTNAME% -ErrorAction SilentlyContinue ; ^ if (-not $checkPortExists) { ^ Add-PrinterPort -Name %PORTNAME% -PrinterHostAddress %PRINTERIP% -Verbose ^ } else { ^ Write-Host 'Printerport %PORTNAME% already installed' ^ }" rem add the printer ... powershell -Command ^ "$checkPrinterExists = Get-Printer -Name '%PRINTERNAME%' -ErrorAction SilentlyContinue ; ^ if (-not $checkPrinterExists) { ^ Add-Printer -Name '%PRINTERNAME%' -DriverName '%DRIVERNAME%' -PortName %PORTNAME% -Verbose ^ } else { ^ Write-Host 'Printer %PRINTERNAME% already installed' ^ }" echo. echo setting default printer to [ %PRINTERNAME% ] powershell -Command ^ "Set-ItemProperty -Path 'HKCU:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows' ^ -Name LegacyDefaultPrinterMode -Value 1 -Force" powershell -Command "$Printer = Get-CimInstance -Class Win32_Printer -Filter \"Name='%PRINTERNAME%'\"" ; ^ Write-Host $Printer ; ^ Invoke-CimMethod -InputObject $Printer -MethodName SetDefaultPrinter" echo disabling DUPLEX mode ... powershell -Command "Set-PrintConfiguration -PrinterName '%PRINTERNAME%' -DuplexingMode OneSided -Verbose" GOTO END :USAGE echo "usage: %0 " :END