标题: Win10打过10.14补丁之后网络打印机访问异常
创建: 2021-11-26 15:14 更新: 2022-03-01 16:09 链接: https://scz.617.cn/windows/202111261514.txt
Win10打过10.14补丁之后网络打印机访问异常,这事很多吐槽的
https://www.bleepingcomputer.com/news/microsoft/new-windows-10-kb5006670-update-breaks-network-printing/ https://www.bleepingcomputer.com/news/microsoft/how-to-fix-the-windows-0x0000011b-network-printing-error/ https://www.techadvisor.com/how-to/windows/windows-10-fix-network-printer-bug-3809578/
一堆反馈说,应该是KB5006670导致的,据说卸载即可恢复打印
wusa /uninstall /kb:5006670
据说恢复这个文件到9月版本亦可
C:\Windows\system32\win32spl.dll
也有说恢复这个文件的
C:\Windows\system32\mscms.dll
据说removing and reinstalling printers on servers,可以解决客户端的故障, 而不用卸载客户端补丁。
在客户端试了这两个注册表项,没啥用,难道要在服务端用?
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Printers\CopyFilesPolicy] @="1"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print] "RpcAuthnLevelPrivacyEnabled"=dword:00000000
上面是10月中的混乱场面回顾。
11月的补丁也没有拨乱反正,我这一个多月来都是拿U盘去打印服务器上本地打印, 完全没法网络打印。
昨天云海给出一个只对中阶或以上水平技术人员有效的热Patch方案,测试有效,帮 他记录一下。
Guest环境如下
Win10
Win10企业版2016 LTSB 1607(OS Build 14393.4704)
spoolsv.exe
10.0.14393.4704 (rs1_release.211004-1917)
win32spl.dll
10.0.14393.4704 (rs1_release.211004-1917)
找出Win10客户端打印服务进程PID
$ tasklist /svc /fi "services eq Spooler"
Image Name PID Services ========================= ======== ============================================ spoolsv.exe 1820 Spooler
spoolsv(1820)会加载win32spl.dll。网络打印时,客户端这边会过
win32spl!STRING_HANDLE_bind
10.14补丁在该函数中新增调用如下函数
win32spl!_imp_RpcBindingSetAuthInfoExW RPCRT4!RpcBindingSetAuthInfoExW
云海指出,热Patch跳过对上述函数的调用,即可恢复客户端的网络打印能力,无需 重启客户端OS或打印服务,无需重启服务端OS或打印服务,无需卸载KB5006670,立 即生效。下面是热Patch方案中的一种
cdb调试spoolsv(1820)
u win32spl!STRING_HANDLE_bind+0x169 win32spl!STRING_HANDLE_bind+0x16f 00007fff
73bbbb19 ff1569720800 call qword ptr [win32spl!_imp_RpcBindingSetAuthInfoExW (00007fff
73c42d88)] 00007fff`73bbbb1f 8bd8 mov ebx,eax
$ rasm2 -a x86 -b 64 -s intel -o 0x7fff73bbbb19 "xor eax,eax;jmp 0x7fff73bbbb1f" 31c0eb02
$ rasm2 -a x86 -b 64 -s intel -o 0x7fff73bbbb19 -D 31c0eb02 0x7fff73bbbb19 2 31c0 xor eax, eax 0x7fff73bbbb1b 2 eb02 jmp 0x7fff73bbbb1f
Patch
eb win32spl!STRING_HANDLE_bind+0x169 31 c0 eb 02
db win32spl!STRING_HANDLE_bind+0x169 win32spl!STRING_HANDLE_bind+0x169+5+2 00007fff`73bbbb19 31 c0 eb 02 08 00 8b d8 1.......
u win32spl!STRING_HANDLE_bind+0x169 win32spl!STRING_HANDLE_bind+0x16f 00007fff
73bbbb19 31c0 xor eax,eax 00007fff
73bbbb1b eb02 jmp win32spl!STRING_HANDLE_bind+0x16f (00007fff73bbbb1f) 00007fff
73bbbb1d 0800 or byte ptr [rax],al 00007fff`73bbbb1f 8bd8 mov ebx,eax
UnPatch
eb win32spl!STRING_HANDLE_bind+0x169 ff 15 69 72
也可以用断点热Patch
ba e1 win32spl!STRING_HANDLE_bind+0x169 "r eax=0;r rip=win32spl!STRING_HANDLE_bind+0x16f;gc"
热Patch后网络打印恢复正常,cdb中看到依次加载
C:\Windows\System32\ntprint.dll C:\Windows\System32\mscms.dll C:\Windows\system32\spool\DRIVERS\x64\3\HP1100SD.DLL
Wireshark抓包看相关报文加强理解热Patch的效果,但那些MS/DCE RPC协议解码更专 业,不在此多言。
云海这个热Patch方案出现得太晚,我都U盘打印好几轮了。他说12月的微软补丁将拨 乱反正,恢复Win10客户端网络打印能力,拭目以待。
2021-11-28 13:55
ID为"江南阿菜"的网友声称,用dism安装KB5007253可以解决问题,我未实测。
http://support.microsoft.com/kb/5007253/en-us http://support.microsoft.com/kb/5007253/zh-cn https://support.microsoft.com/en-us/topic/november-22-2021-kb5007253-os-builds-19041-1387-19042-1387-19043-1387-and-19044-1387-preview-d1847be9-46c1-49fc-bf56-1d469fc1b3af https://www.catalog.update.microsoft.com/Search.aspx?q=KB5007253
可用如下命令检查本机是否安装过KB5007253
wmic qfe get hotfixid | findstr KB5007253 powershell get-hotfix -id KB5007253
此刻Win10企业版2016 LTSB 1607的自动更新里没有这个补丁,安心等12月的微软补 丁。
2021-12 zyh
安装2021.12补丁即可解决问题,出于测试目的,可以临时撤销2021.12补丁效果
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Printers\RPC] "RpcNamedPipeAuthentication"=dword:00000001
reg.exe query "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Printers\RPC" /v "RpcNamedPipeAuthentication" reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Printers\RPC" /v "RpcNamedPipeAuthentication" /t REG_DWORD /d 1 /f reg.exe delete "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Printers\RPC" /v "RpcNamedPipeAuthentication" /f
RpcNamedPipeAuthentication为1时,撤销2021.12补丁效果,之后网络打印机访问异 常。