@
Echo
off
setlocal enabledelayedexpansion
:zym
color 0A
cls
echo
.
echo
打印机服务文件备份/重置专用程序 V1.0
echo
╔┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉╗
echo
.┋
echo
┋ 本软件专门用于备份打印机相关文件,用来解决一些版本不匹配问题多见于709报错
echo
┋ 请勿频繁修改本程序所在位置,防止备份文件夹顺序错乱。
echo
┋ 建议先看帮助文件,用来确实他是否适合你,或者根据提示参考手动修复。
echo
.┋
echo
.┋ 〖1.备份相关操作〗 〖2.恢复重置相关操作〗 〖3.打赏作者〗
echo
┋ ╔┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┋
echo
┋ ┋ Z.退出程序 〖作者:二虎电脑〗
echo
.╚┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉╝
:input
echo
请您根据需要选择对应的操作!!
echo
.
set choice=
set /p choice= 请输入对应的按回车:
IF
NOT
"%Choice%"
==
""
SET Choice=%Choice:~0,1%
if
/i
"%choice%"
==
"1"
goto
bfxg
if
/i
"%choice%"
==
"2"
goto
hfxg
if
/i
"%choice%"
==
"3"
goto
zymds
if
/i
"%choice%"
==
"Z"
goto
end
goto
zym
:zymds
cls
start
""
"https://pan.baidu.com/s/1os8bVQF6_4Zyc7poeXQchA?pwd=xts3"
echo
.
echo
摁任意键系统将返回主界面!
goto
zym
:bfxg
@
Echo
off
setlocal enabledelayedexpansion
:qy
color 0A
cls
echo
.
echo
打印机服务文件备份专用程序 V1.0
echo
╔┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉╗
echo
.┋
echo
┋ 本软件专门用于备份打印机相关文件,用来解决一些版本不匹配问题多见于709报错
echo
┋ 请勿频繁修改本程序所在位置,防止备份文件夹顺序错乱。
echo
┋ 建议先看帮助文件,用来确实他是否适合你,或者根据提示参考手动修复。
echo
.┋
echo
.┋ 〖1.查看当前系统版本信息〗 〖2.备份打印机相关文件〗
echo
┋ 〖3.打赏作者〗
echo
. ╔┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┋
echo
┋ H.返回主菜单 ┋ M.帮助文件 ┋ Z.退出程序〖作者:二虎电脑〗
echo
.╚┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉╝
:input
echo
请您根据需要选择对应的操作!!
echo
.
set choice=
set /p choice= 请输入对应的按回车:
IF
NOT
"%Choice%"
==
""
SET Choice=%Choice:~0,1%
if
/i
"%choice%"
==
"1"
goto
ckxtxx
if
/i
"%choice%"
==
"2"
goto
bfwj
if
/i
"%choice%"
==
"3"
goto
zzds
if
/i
"%choice%"
==
"M"
goto
HELP
if
/i
"%choice%"
==
"H"
goto
zym
if
/i
"%choice%"
==
"Z"
goto
end
goto
qy
:help
cls
color 4f
echo
1、正常情况下查找与自己电脑对应的系统版本文件夹进入,选择打印机重置主程序运行操作即可。
echo
.
echo
2、如果没有对应系统版本的文件夹,则可以在对应系统版本的电脑上运行【相关服务备份专用程序】进行相关文件备份
echo
.
echo
3、备份完毕,重新进入对应系统版本的文件夹运行打印机重置主程序即可。(每个主程序仅对当前系统版本生效)
echo
4、设计思路是自动在当前目录tools目录下创建当前系统版本的备份,如果有了则在该系统版本下创建内部版本号命名的备份,如果也有了则创建当前日期命名的文件或者询问你该如何处理!
echo
.
echo
以下是备份的主要文件列表。用于参考使用。
echo
.
echo
localspl.dll
echo
.
echo
srvsvc.dll
echo
.
echo
spoolss.dll
echo
.
echo
win32spl.dll
echo
.
echo
备份的文件保存在该程序同目录Tools目录下。
echo
.
echo
以上就是全部的帮助信息了。摁任意键返回主菜单,继续操作吧!!
pause
goto
qy
:bfwj
:: 请求管理员权限
fltmc >nul 2>&1 || (
echo
正在请求管理员权限...
mshta
"javascript:var sh=new ActiveXObject('Shell.Application'); sh.ShellExecute('cmd.exe','/c %~s0','','runas',1);close()"
exit
)
:: 通用系统信息获取
for
/f
"tokens=2*"
%%a
in
(
'reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName 2^>nul'
) do set
"OSName=%%b"
for
/f
"tokens=3"
%%a
in
(
'reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v DisplayVersion 2^>nul ^| findstr /i "DisplayVersion"'
) do set
"DisplayVer=%%a"
for
/f
"delims=.] tokens=3,4"
%%i
in
(
'ver'
) do (
set BuildLab=%%i.%%j
)
:: 清理系统名称
set
"CleanOSName=%OSName:Windows=Win%"
set
"CleanOSName=%CleanOSName:?=%"
set
"CleanOSName=%CleanOSName:?=%"
set
"CleanOSName=%CleanOSName: =%"
:: 构建主文件夹名称
if
defined DisplayVer (
set
"MainFolder=%CleanOSName% %DisplayVer%"
)
else
(
set
"MainFolder=%CleanOSName%"
)
:: 构建备份路径
set
"BackupRoot=%~dp0\tools\%MainFolder%"
set
"BackupPath=%BackupRoot%\%BuildLab%"
:: 创建主目录
if
not
exist
"%BackupRoot%"
(
mkdir
"%BackupRoot%"
|| (
echo
主目录创建失败: %BackupRoot%
pause
exit /b 1
)
)
:: 处理重复备份目录
:CheckPath
if
exist
"%BackupPath%"
(
echo
检测到现有备份目录: %BackupPath%
choice /
c
YNC /n /m
"请选择操作 [Y]覆盖 [N]新建版本 [C]取消: "
if
errorlevel 3 exit /b 0
if
errorlevel 2 (
for
/f
"tokens=2 delims=="
%%a
in
(
'wmic os get localdatetime /value ^| findstr "[0-9]"'
) do set
"_date=%%a"
call
set "_date=%%_date:~0,8%%
call
set
"BackupPath=%%BackupPath%%_%%_date%%"
echo
新建备份目录: %BackupPath%
)
else
(
echo
正在清除旧备份...
rmdir /s /q
"%BackupPath%"
)
)
if
exist
"%BackupPath%"
goto
CheckPath
mkdir
"%BackupPath%"
|| (
echo
备份目录创建失败
pause
exit /b 1
)
::复制文件
copy /y
"%windir%\System32\localspl.dll"
"%BackupPath%\"
copy /y
"%windir%\System32\srvsvc.dll"
"%BackupPath%\"
copy /y
"%windir%\System32\spoolss.dll"
"%BackupPath%\"
copy /y
"%windir%\System32\win32spl.dll"
"%BackupPath%\"
copy /y
"%~f0"
"%BackupPath%\"
:: 生成系统信息报告
(
for
/f
"tokens=2 delims=="
%%a
in
(
'wmic os get LocalDateTime /value'
) do set
"BuildDate=%%a"
) >nul
set
"BuildDate=%BuildDate:~0,4%-%BuildDate:~4,2%-%BuildDate:~6,2% %BuildDate:~8,2%:%BuildDate:~10,2%:%BuildDate:~12,2%"
(
echo
系统名称: %OSName%
echo
显示版本: %DisplayVer%
echo
内部版本: %BuildLab%
echo
系统构建: %BuildDate%
echo
备份时间: %date% %time%
echo
备份路径: %BackupPath%) >
"%BackupPath%\备份源系统详情.txt"
goto
tx
:tx
cls
color 4F
echo
文件备份完整: %BackupPath%
echo
.
echo
.
echo
操作已完成,先别忙着关闭,记住上面的备份路径。打开上述路径目录,然后运行目录里的修复主程序进行后续操作!!
echo
.
echo
.
pause
goto
end
:ckxtxx
for
/f
"tokens=2*"
%%a
in
(
'reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName 2^>nul'
) do set
"OSName=%%b"
for
/f
"tokens=3"
%%a
in
(
'reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v DisplayVersion 2^>nul ^| findstr /i "DisplayVersion"'
) do set
"DisplayVer=%%a"
for
/f
"delims=.] tokens=3,4"
%%i
in
(
'ver'
) do (
set BuildLab=%%i.%%j
)
:: 清理系统名称
set
"CleanOSName=%OSName:Windows=Win%"
set
"CleanOSName=%CleanOSName:?=%"
set
"CleanOSName=%CleanOSName:?=%"
set
"CleanOSName=%CleanOSName: =%"
echo
.
echo
系统名称: %OSName%
echo
显示版本: %DisplayVer%
echo
内部版本: %BuildLab%
echo
.
echo
大概就是上述情况了,摁任意键结束查看返回个主菜单
pause
goto
qy
:zzds
cls
start
""
"https://pan.baidu.com/s/1os8bVQF6_4Zyc7poeXQchA?pwd=xts3"
echo
.
echo
摁任意键系统将返回主界面!
goto
qy
:
end
exit /b
:hfxg
@
Echo
off
setlocal enabledelayedexpansion
:qy2
color 0A
cls
echo
.
echo
打印机服务文件重置程序 V1.0
echo
╔┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉╗
echo
.
echo
本软件采用替换打印机文件并删除驱动目录的方法将打印机相关服务进行重置
echo
用于解决普通方法无法修复打印机共享的方法。诸如709、BCB、6BA一类错误。
echo
.
echo
. 〖1.修复依赖性服务错误〗 〖2.替换相关服务文件〗 〖3.通用标准修复方法〗
echo
.
echo
〖5.关闭文件保护〗 〖6.恢复文件保护〗
echo
.
echo
H.返回主菜单 ┋ Z.退出程序 〖作者:二虎电脑〗
echo
.╚┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉╝
:input
echo
请您根据需要选择对应的操作!!
echo
.
set choice=
set /p choice= 请输入对应的按回车:
IF
NOT
"%Choice%"
==
""
SET Choice=%Choice:~0,1%
if
/i
"%choice%"
==
"1"
goto
ckgx
if
/i
"%choice%"
==
"2"
goto
wjth
if
/i
"%choice%"
==
"3"
goto
gffa
if
/i
"%choice%"
==
"5"
goto
gbbh
if
/i
"%choice%"
==
"6"
goto
bhkq
if
/i
"%choice%"
==
"H"
goto
zym
if
/i
"%choice%"
==
"Z"
goto
end
goto
qy2
::关闭保护模块
:gbbh
@
echo
off
:: 关闭防火墙
netsh advfirewall set allprofiles state off
:: 暴力突破文件保护
taskkill /f /im sppsvc.exe >nul 2>&1
sc config TrustedInstaller start= disabled >nul
takeown /f %Windir%\System32\sppsvc.exe /a >nul
icacls %Windir%\System32\sppsvc.exe /grant administrators:F >nul
echo
文件保护已关闭,按任意键返回主菜单!
goto
qy2
::保护开启模块
:bhkq
netsh advfirewall set allprofiles state on
sc config TrustedInstaller start= demand >nul
start /B TrustedInstaller
echo
文件保护已恢复,按任意键返回主菜单!
goto
qy2
::官方方案模块
:gffa
color 0A
cls
echo
.
echo
官方通用修复方案 V1.0
echo
╔┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉╗
echo
.┋
echo
┋ 本方法利用重置打印机组件、关闭后台认证、修复系统文件完整性
echo
┋ 启用服务端口的方法实现打印机组件初始化的目的。
echo
┋ 系统文件完整性扫描 时间较长一般需要3~15分钟,完成后会自动转调操作界面! !
echo
┋
echo
.┋ 〖1.常规修复〗 〖2.系统文件完整性扫描〗
echo
.┋
echo
┋ H.返回主菜单 ┋ Z.退出程序〖作者:二虎电脑〗
echo
.╚┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉╝
:input
echo
请您根据需要选择对应的操作!!
echo
.
set choice=
set /p choice= 请输入对应的按回车:
IF
NOT
"%Choice%"
==
""
SET Choice=%Choice:~0,1%
if
/i
"%choice%"
==
"1"
goto
cgxf
if
/i
"%choice%"
==
"2"
goto
wzxsm
if
/i
"%choice%"
==
"H"
goto
zym
if
/i
"%choice%"
==
"Z"
goto
end
goto
qy2
:wzxsm
echo
程序执行中。。。
echo
系统修复用时较长,请耐心等待,一般需要3~15分钟,完成后会自动转调操作界面!!
:: 检查管理员权限
fltmc >nul 2>&1 || (
echo
请以管理员身份运行
pause
exit /b 1
)
cls
echo
正在执行系统健康扫描...
echo
---------------------------------------------------
:: 阶段一:尝试运行SFC扫描
sfc /scannow
if
%errorlevel%
equ
0 (
call
:fix_settings
)
else
(
if
%errorlevel%
equ
1 (
echo
[√] SFC已成功完成扫描,未发现损坏文件
call
:success
)
else
(
echo
[!] SFC发现并修复了系统文件,需要重启生效
call
:success
)
)
goto
qy2
::-----------------------------------------------------
:fix_settings
echo
---------------------------------------------------
echo
[!] 检测到修复过程出现了点小故障,现在开始执行深度修复...
:: 修复步骤1:配置Windows Modules Installer服务
echo
■ 正在激活系统维护服务...
sc config TrustedInstaller start= auto >nul
net start TrustedInstaller >nul 2>&1
:: 修复步骤2:修改注册表参数
echo
■ 正在优化系统注册表配置...
reg
add
"HKLM\SYSTEM\CurrentControlSet\Control"
/v RegistrySizeLimit /t REG_DWORD /d 4294967295 /f >nul 2>&1
:: 修复步骤3:重置服务缓存
echo
■ 正在刷新系统服务缓存...
net stop wuauserv >nul 2>&1
net stop
bits
>nul 2>&1
del /f /q %windir%\SoftwareDistribution\*.* >nul 2>&1
echo
---------------------------------------------------
echo
修复操作已完成,请按以下步骤操作:
echo
1. 保存所有打开的文件
echo
2. 摁任意键后电脑将自动重启
echo
3. 重启后如果有需要可以再次运行本脚本进行修复
pause
shutdown /r /t 0
exit /b
::-----------------------------------------------------
:success
echo
---------------------------------------------------
echo
操作状态报告:
echo
?? 系统文件完整性:已验证
echo
?? 建议操作:重启电脑使设置生效
echo
---------------------------------------------------
choice /t 15 /
c
yn /d y /m
"是否立即重启电脑?默认15秒后自动重启"
if
%errorlevel%
equ
1 (
shutdown /r /t 0
)
else
(
exit /b
)
:cgxf
cls
:: 重置打印组件
powershell -Command
"Stop-Service -Name Spooler -Force -ErrorAction SilentlyContinue"
del /Q
"%windir%\System32\spool\PRINTERS\*.*"
>nul 2>&1
powershell -Command
"Start-Service -Name Spooler -ErrorAction SilentlyContinue"
timeout /t 5 /nobreak >nul
:: 注册表修改
reg
add
"HKLM\SYSTEM\CurrentControlSet\Control\Print"
/v RpcAuthnLevelPrivacyEnabled /t REG_DWORD /d 0 /f
reg
add
"HKLM\SYSTEM\CurrentControlSet\Control\Lsa"
/v LmCompatibilityLevel /t REG_DWORD /d 3 /f
:: 防火墙规则
netsh advfirewall firewall
add
rule
name
=
"PrintSMB"
dir=
in
action=allow protocol=TCP localport=139,445,515
echo
如果报错6BA,请修改计算机配置 > 管理模板 > 打印机 > 配置RPC连接设置 > 设为
"无认证"
echo
修复完毕,按任意返回主菜单,建议重启电脑使其生效!!
pause
goto
qy2
::文件替换模块
:wjth
color 0A
cls
echo
.
echo
打印机服务文件重置程序 V1.0
echo
╔┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉╗
echo
.
echo
本软件采用替换打印机文件来解决普通方法无法修复打印机共享的方法。诸如709一类错误。
echo
.
echo
. 〖1.文件替换〗 〖2.回滚操作〗
echo
.
echo
echo
.
echo
H.返回主菜单 ┋ Z.退出程序 〖作者:二虎电脑〗
echo
.╚┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉╝
:input
echo
请您根据需要选择对应的操作!!
echo
.
set choice=
set /p choice= 请输入对应的按回车:
IF
NOT
"%Choice%"
==
""
SET Choice=%Choice:~0,1%
if
/i
"%choice%"
==
"1"
goto
wjth1
if
/i
"%choice%"
==
"2"
goto
hgcz
if
/i
"%choice%"
==
"H"
goto
zym
if
/i
"%choice%"
==
"Z"
goto
end
goto
wjth
:hgcz
Color A
Title
Fix Print spooler
rem 替换win32spl.dll
rem 重启打印服务
Echo
--------------------------------------------------------------------------
Echo
停止打印服务
net stop spooler
takeown /f
C
:\Windows\System32\win32spl.dll
icacls
C
:\Windows\System32\win32spl.dll /grant administrators:F
ren
C
:\Windows\System32\win32spl.dll.old win32spl.dll
Echo
--------------------------------------------------------------------------
Echo
启动打印服务
net start spooler
Echo
--------------------------------------------------------------------------
Echo
回滚操作完成,电脑又回到了最开始的状态了!
pause
goto
qy2
:wjth1
Color A
Title
Fix Print spooler
rem 替换win32spl.dll
rem 重启打印服务
Echo
--------------------------------------------------------------------------
Echo
停止打印服务
net stop spooler
::复制文件
copy /y
"%windir%\System32\win32spl.dll"
"%windir%\win32spl.dll"
Echo
--------------------------------------------------------------------------
Echo
替换 win32spl.dll
rem win32spl.dll
Echo
--------------------------------------------------------------------------
timeout /t 3 /nobreak
Takeown /A /F
C
:\Windows\System32\win32spl.dll
icacls
"C:\Windows\System32\win32spl.dll"
/grant
"administrators"
:F
icacls
"C:\Windows\System32\win32spl.dll"
/grant SYSTEM:F
ren
C
:\Windows\System32\win32spl.dll win32spl.dll.old
copy
"%~dp0\win32spl.dll"
C
:\Windows\System32\win32spl.dll /Y
Echo
--------------------------------------------------------------------------
Echo
增加注册表 RpcAuthnLevelPrivacyEnabled = 0
Echo
--------------------------------------------------------------------------
rem
add
regkey
reg
add
"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print"
/v RpcAuthnLevelPrivacyEnabled /t REG_DWORD /d 0 /f
Echo
--------------------------------------------------------------------------
Echo
启动打印服务
net start spooler
Echo
--------------------------------------------------------------------------
Echo
完成操作,请进行打印测试吧!
pause
goto
qy2
:zzds
cls
start
""
"https://pan.baidu.com/s/1os8bVQF6_4Zyc7poeXQchA?pwd=xts3"
echo
.
echo
摁任意键系统将返回主界面!
goto
qy1
:ckgx
sc qc spooler
reg
add
"HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit"
/v
"LastKey"
/d
"计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Spooler"
/f
start regedit.exe
echo
请自行核对这两个键值是否一致(观测DEPENDENCIES【服务依赖性】与注册表Spooler目录下DependOnService键值是否一样),如果不一致则手动修改成一致的。可修复服务依赖性错误。
echo
.
echo
摁任意键返回主菜单。
pause
goto
qy2