使用脚本自动添加电脑共享的打印机
核心代码
添加打印机_方式1:该方法只支持win10以上
powershell -Command "& {(New-Object -ComObject WScript.Network).AddWindowsPrinterConnection('打印机路径及名')}"
添加打印机_方式2:应该支持win7及以上,没测试
explorer \\10.0.0.21\打印机名
删除打印机_方式1:该方法只支持win10以上
powershell -Command "& {(New-Object -ComObject WScript.Network).AddWindowsPrinterConnection('打印机名')}"
删除打印机_方式2:应该支持win7及以上,没测试
wmic path win32_printer where deviceid="打印机名" delete
备注:该处如\10.0.0.21\小打印机 则需写\\10.0.0.21\小打印机
亲测
测试环境:
共享电脑: Server 2019 64位
共享打印机:小打印机(HP的)
添加电脑: Win10 64位
前提:添加电脑 访问 共享电脑 不会提示输入账号密码。
备注:如需复用以下代码,只需在”修改区“ 的 “\10.0.0.21\小打印机” 替换称实际环境路径即可。
备注2:切记将代码保存为编码为“ANSI”格式的bat
实际代码:
@echo off
rem 自动提权以管理员方式运行
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' EQU '5' (
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
pushd "%CD%"
CD /D "%~dp0"
rem 提示
echo.
echo.
echo ------------------------------------------------
color 0C
echo 正在添加打印机。。。。
echo 1. 如有弹窗点确定或允许。
echo 2. 安装完成后才可继续安装其它打印机。
echo ------------------------------------------------
TIMEOUT /T 5
color 07
rem 修改区
set print_name=\\10.0.0.21\小打印机
set print_area=公共区
rem 重启服务
net stop spooler>nul
net start spooler>nul
rem 删除打印机
powershell -Command "& {remove-printer -name %print_name%}"
cls
rem 添加打印机
powershell -Command "& {(New-Object -ComObject WScript.Network).AddWindowsPrinterConnection('%print_name%')}"
rem 其他非关键
cls
echo.
echo.
echo.
echo ------------------------------------------------------------------
echo 打印机名: %print_name%
echo 位置: %print_area%
echo.
echo.
echo 请选择该打印机进行打印,如有问题请联系管理员。
echo ------------------------------------------------------------------
pause
相关效果图