专业的编程技术博客社区

网站首页 > 博客文章 正文

利用bat关闭服务来加密打印机(利用bat关闭服务来加密打印机)

baijin 2024-08-08 23:02:31 博客文章 70 ℃ 0 评论

经常被不受限制使用的打印机会加快老化寿命和墨盒的更换率,如何利用给打印机加密来限制其他用户任意使用打印设备,是一直困扰着我的问题,网络上找了各种办法都无法满足我的需求,经过一番学习后,发现可以利用编写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实现加密打印机服务的教程,本教程并不是最好的,但是在使用程度上应该是全网最实用的。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表