经常被不受限制使用的打印机会加快老化寿命和墨盒的更换率,如何利用给打印机加密来限制其他用户任意使用打印设备,是一直困扰着我的问题,网络上找了各种办法都无法满足我的需求,经过一番学习后,发现可以利用编写bat来实现加密打印机的想法。
通过关闭打印机服务后,我们打开word文档看打印机状态,显示未安装打印机,这时候我们无法使用打印。
重新启动打印机服务后,打印机列表显示了出来。
利用记事本编写bat程序,编写一个可执行的bat文件,来控制打印机服务的开启和关闭,从中加入我们需要的加密条件,从而利用密码来管控设置开启和关闭服务。
使用管理员方式运行后顺利运行该程序,但是我们还需要进一步优化流程,例如直接管理员方式运行。
写完我们再运行一次,输入设定的密码123x,回车成功开启打印机服务,这时候你再试图关闭服务时,按什么键都会使cmd退出,因为这时候系统识别到命令已经运行结束了,如果需要重新关闭(上锁)服务时得重新运行bat文件,随机输入数字方可上锁。
如何使bat变得方便快捷,我尝试了倒计时等各种方式,后来利用一条暂停命令来使我们这个进程能够不退出再加密,上图中按任意键继续实现退出(不关闭服务),下图中按任意键加密实现退出时(关闭打印机服务)。
代码如下:
@echo off
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
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" )
@echo off
cls
set/p y=请输入密码!:
if "%y%"=="123x" goto n
goto m
:n
net start "print spooler"
echo 按任意键加密& pause>nul
:m
net stop "print spooler"
从繁琐的操作到插入命令使操作变得简便,改良代码使自己想得实现的功能变成现实,这就是利用bat实现加密打印机服务的教程,本教程并不是最好的,但是在使用程度上应该是全网最实用的。
本文暂时没有评论,来添加一个吧(●'◡'●)