吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4447|回复: 48
收起左侧

[其他原创] win10.11打印机共享修复工具 小白修改

  [复制链接]
虚幻魔王 发表于 2024-12-26 09:43
本帖最后由 虚幻魔王 于 2024-12-26 16:16 编辑

原贴地址: https://www.52pojie.cn/thread-1993553-1-1.html

开始先感谢   @Love0912 大神的分享,但是批处理命令中有诸多错误,小白在此冒昧的发一些个人建议修改,具体功能如下:
1、修复删除自身问题。(独乐乐不如众乐乐)
319行,删除  del "%~f0"
2、取消  “开启LPD打印相关功能”中5秒(实际是4秒)判定(需要就需要不需要就不需要,自动选就不合适了)
choice /cyn /t 4 /d n /M "是否启用LPD打印共享功能,默认5秒后放弃 (Y/N)"  
删除 “/t 4 /d n  即可去除4秒后自动放弃的限定。(反正程序整体都需要人工干预,等就等呗)这里实测输入法会干预这里,4秒真按不稳Y(手残了,见笑
3、自动获取管理员权限改为自动判定管理员权限(这里管理员懂的都懂)//实测这里功能没权限也没效果。
027行至032行


echo =_=_=_=_=_=获取管理员身份权限=_=开始_=_=_=_=_=_=_=_=_==_=_=_=

rem 自动请求以管理员权限运行

reg query HKU\S-1-5-20>nul 2>nul || echo CreateObject^("Shell.Application"^).ShellExecute "%~f0", "%*", "", "runas", 1 > "%temp%\getadmin.vbs" && cscript //b "%temp%\getadmin.vbs" && exit /b & del "%temp%\getadmin.vbs" /f /q>nul 2>nul

@echo.


@Echo.      -----**当前系统是管理员身份**-----

改为:

echo =_=_=_=_=_=判定管理员身份权限=_=开始_=_=_=_=_=_=_=_=_==_=_=_=
net session >nul 2>&1
if %errorLevel% == 0 (
    echo 当前用户具有管理员权限。
) else (
    echo !!!!当前用户不具有管理员权限!!!!
        choice /c yn /M "本工具需要管理员权限执行,请自行解决 (Y/N)"
)

以下是修改完毕的代码恭请各位大神指点一二,小弟献丑了。

[Asm] 纯文本查看 复制代码
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
@echo off
rem 20240412 重写所有代码,针对Win11家庭版系统更新到202404补丁打印共享出错。By WqlSoft
rem 20240412 测试Win11家庭版系统作为主机时,Win7 Win10子机可以直接共享到打印机,LPR共享也正常,反之也可以。
rem 20240412 测试Win10系统作为主机时,Win10子机可以直接共享到打印机,LPR共享也正常,反之也可以。
rem 20240412 测试Win7系统作为主机时,Win10 Win11子机可以直接共享到打印机,LPR共享也正常,反之也可以。
rem 20240412 只作文件夹共享不需要重启系统,LPR共享时要双方重启。
rem 20240412 测试未关闭Defender的情况下不被杀,可以正常运行。
rem 20240412 几个系统反复还原测试,正常。
rem 20241120 修改不自动安装LPR打印共享功能,给出5秒安装提示。
rem 20241214 增加域判断,本工具未在{已加入域}的系统中测试过
rem 20241214 解决报错找不到网络名0x80070043-未测试是否有效
  
rem =_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=_=
  
title =_=Windows10.11家庭版打印机共享-WqlSoft=_=计算机名:%computername%=_=当前时间:%time%_=_=_=_=_=
  
echo 非常感谢WqlSoft大佬制作了这个工具!
echo.
echo 我是二虎电脑,曾经使用过很多打印机共享修复工具,发现这个工具是最好用的,基本解决了碰到的Windows10.11无法共享的问题。
echo 所以把这个好工具分享给你,在运行过程中可能安全软件会提示,需要选择允许!
echo.
  
echo.
pause
cls
  
echo =_=_=_=_=_=判定管理员身份权限=_=开始_=_=_=_=_=_=_=_=_==_=_=_=
net session >nul 2>&1
if %errorLevel% == 0 (
    echo 当前用户具有管理员权限。
) else (
    echo !!!!当前用户不具有管理员权限!!!!
        choice /c yn /M "本工具需要管理员权限执行,请自行解决 (Y/N)"
)
rem *****************************域判断*********************************************************
setlocal EnableDelayedExpansion
rem 获取计算机名及其所属的域/工作组名称
for /F "tokens=2 delims==" %%i in ('wmic computersystem get domain /value ^| findstr /i "Domain"') do (
    set "domain=%%i"
)
rem 移除可能存在的尾随空格或换行符
set "domain=!domain:~0,-1!"
rem 使用PowerShell检查是否加入域
for /f "delims=" %%a in ('powershell -NoProfile -Command "(Get-WmiObject Win32_ComputerSystem).PartOfDomain"') do (
    set "isDomainMember=%%a"
)
if /i "%isDomainMember%"=="True" (
    echo ==================================================
    echo 此计算机已加入域:%domain%
    echo ==================================================
    echo 本工具未在{已加入域}的系统中测试过,请关闭本窗口.
        choice /c yn /t 4 /d n /M "本工具未在{已加入域}的系统中测试过,请关闭本窗口.默认5秒后退出 (Y/N)"
if errorlevel 2 (
   rem echo 这里是按N键后执行内容
   exit
) else (
   rem echo 这里是按Y键后执行内容
    )
  
) else (
    echo 此计算机未加入域,工作组为:%domain%
)
endlocal
rem ******************************域判断****结束**************************************************
  
rem 启用Guest账户
net user guest /active:yes >nul 2>&1
net user guest "" >nul 2>&1
  
rem 先开启系统的网络发现和局域网文件共享防火墙权限
netsh advfirewall firewall set rule group="文件和打印机共享" new enable=yes >nul
netsh advfirewall firewall set rule group="网络发现" new enable=yes >nul
netsh firewall set service type = fileandprint mode = enable scope = subnet >nul
reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Lsa" /v "LimitBlankPasswordUse" /t REG_DWORD /d "00000000" /f >nul
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa" /v "LimitBlankPasswordUse" /t REG_DWORD /d "00000000" /f >nul
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa" /v forceguest /t REG_DWORD /d 0x1 /f
rem 解决Win10以上共享提示0X80004005错误  SMB 客户端允许不安全的来宾登录。
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" /v AllowInsecureGuestAuth /t REG_DWORD /d 0x1 /f
reg add "HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" /f /v "AllowInsecureGuestAuth" /t REG_DWORD /d 1 >NUL 2>nul
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\LanmanWorkstation" /f /v "AllowInsecureGuestAuth" /t REG_DWORD /d 1 >NUL 2>nul
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa" /v restrictanonymoussam /t REG_DWORD /d 0x0 /f >nul 2>nul
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0" /v LmCompatibilityLevel /t REG_DWORD /d 0x1 /f >nul 2>nul
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa" /v everyoneincludesanonymous /t REG_DWORD /d 0x1 /f >nul 2>nul
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa" /v NoLmHash /t REG_DWORD /d 0x0 /f >nul 2>nul
  
rem 解决报错找不到网络名0x80070043-未测试是否有效241214
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters" /v BasicAuthLevel /t REG_DWORD /d 2 /f >nul 2>nul
  
rem 网络访问 限制匿名访问命名管道和共享
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters" /v restrictnullsessaccess /t REG_DWORD /d 0x0 /f >nul 2>nul
rem 控制是否成为"浏览服务器"
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Browser\Parameters" /v MaintainServerList /t REG_SZ /d Auto /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Browser\Parameters" /v IsDomainMaster /t REG_SZ /d FALSE /f
rem 解决 windows 连接共享打印机 0x0000011b 错误
Reg add "HKLM\System\CurrentControlSet\Control\Print" /v "RpcAuthnLevelPrivacyEnabled" /t REG_DWORD /d "0" /f >nul 2>&1
rem 709修复
rem 禁用 RPC (Remote Procedure Call) 身份验证级别中的隐私保护
Reg add "HKLM\System\CurrentControlSet\Control\Print" /v "RpcAuthnLevelPrivacyEnabled" /t REG_DWORD /d "0" /f >nul 2>&1
rem 解决客户端弹出以管理员身份安装新的打印机驱动程序,值 0 允许非管理员在使用 Point and Print 时安装驱动程序
Reg add "HKLM\Software\Policies\Microsoft\Windows NT\Printers\PointAndPrint" /v "RestrictDriverInstallationToAdministrators" /t REG_DWORD /d "0" /f >nul 2>&1
rem “安装用于新连接的驱动程序时”:“显示警告和提升提示”。
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Printers\PointAndPrint" /v NoWarningNoElevationOnInstall /t REG_DWORD /d 0 /f > nul 2>&1
rem “更新现有连接的驱动程序时”:“显示警告和提升提示”。
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Printers\PointAndPrint" /v UpdatePromptSettings /t REG_DWORD /d 0 /f > nul 2>&1
  
rem 要通过注册表切换网络打印设置 启用 RPC 通信使用命名管道协议
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Printers\RPC" /v RpcUseNamedPipeProtocol /t REG_DWORD /d 1 /f
rem 要启用侦听传入连接
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Printers\RPC" /v RpcProtocols /t REG_DWORD /d 0x7 /f
rem 要强制执行 Kerberos 身份验证,
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Printers\RPC" /v ForceKerberosForRpc /t REG_DWORD /d 1 /f
rem 安装驱动时不搜索Windows Update更新
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" /v DriverUpdateWizardWuSearchEnabled /t REG_DWORD /d 0 /f > nul 2>&1
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" /v SearchOrderConfig /t REG_DWORD /d 0 /f > nul 2>&1
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" /v DontSearchWindowsUpdate /t REG_DWORD /d 1 /f > nul 2>&1
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" /v DontPromptForWindowsUpdate /t REG_DWORD /d 1 /f > nul 2>&1
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching" /v DriverUpdateWizardWuSearchEnabled /t REG_DWORD /d 0 /f > nul 2>&1
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching" /v SearchOrderConfig /t REG_DWORD /d 0 /f > nul 2>&1
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching" /v DontSearchWindowsUpdate /t REG_DWORD /d 1 /f > nul 2>&1
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching" /v DontPromptForWindowsUpdate /t REG_DWORD /d 1 /f > nul 2>&1
rem Microsoft 网络客户端:对通信进行数字签名 (始终)
reg add "HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters" /v RequireSecuritySignature /t REG_DWORD /d 0 /f
reg add "HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters" /v EnableForcedLogoff /t REG_DWORD /d 0 /f
  
  
echo 正在配置防火墙...
netsh advfirewall firewall add rule name="LPR Port" dir=in action=allow protocol=TCP localport=515
netsh advfirewall firewall add rule name="LPD Port" dir=in action=allow protocol=TCP localport=721-731
  
rem 启用或关闭 Windows Defender 防火墙 (重启生效)
rem 专用网络设置
rem 关闭-启用 Windows Defender 防火墙
reg add "HKLM\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile" /v "EnableFirewall" /t REG_DWORD /d 0 /f
rem 关闭-阻止所有传入连接, 包括位于允许应用列表中的应用
reg add "HKLM\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile" /v "DoNotAllowExceptions" /t REG_DWORD /d 0 /f
rem 开启-Windows Defender 防火墙阻止新应用时通知我
reg add "HKLM\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile" /v "DisableNotifications" /t REG_DWORD /d 0 /f
rem 公用网络设置
reg add "HKLM\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\PublicProfile" /v "EnableFirewall" /t REG_DWORD /d 0 /f
reg add "HKLM\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\PublicProfile" /v "DoNotAllowExceptions" /t REG_DWORD /d 0 /f
reg add "HKLM\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\PublicProfile" /v "DisableNotifications" /t REG_DWORD /d 0 /f
rem 域网络设置
reg add "HKLM\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\DomainProfile" /v "EnableFirewall" /t REG_DWORD /d 0 /f
reg add "HKLM\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\DomainProfile" /v "DoNotAllowExceptions" /t REG_DWORD /d 0 /f
reg add "HKLM\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\DomainProfile" /v "DisableNotifications" /t REG_DWORD /d 0 /f
  
rem 设置为专用网络(0|公用网络,1|专用网络)Win10 以上为1,Win7为1
rem 启用延迟环境变量扩展功能
setlocal EnableDelayedExpansion
rem 定义要遍历的注册表键路径
set "keyPath=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles"
  
rem 获取操作系统版本信息
for /f "tokens=4-5 delims=. " %%i in ('ver') do (
    set "osVersion=%%i.%%j"
)
  
for /f "delims=" %%A in ('reg query "%keyPath%" /s ^| findstr /i "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\NetworkList\\Profiles\\"') do (
    rem 提取当前子键名
    set "subKey=%%A"
    set "subKey=!subKey:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles\=!"
  
    rem 根据操作系统版本设置相应键值
    if %osVersion% LEQ 6.1 (
        rem 系统为Windows 7或更低版本,设置键值为1
        reg add "!keyPath!\!subKey!" /v Category /t REG_DWORD /d 1 /f > nul 2>&1 && (
            rem echo 已将子键:!keyPath!\!subKey! 的 "Category" 值改为 1
            echo 已将所有网卡都修改成工作网络。
        ) || (
            echo 子键:!keyPath!\!subKey! 不存在 "Category" 值。
        )
    ) else (
        rem 系统为Windows 10或更高版本,设置键值为1
        reg add "!keyPath!\!subKey!" /v Category /t REG_DWORD /d 1 /f > nul 2>&1 && (
            rem echo 已将子键:!keyPath!\!subKey! 的 "Category" 值改为 1
            echo 已将所有网卡都修改成专用网络。
        ) || (
            echo 子键:!keyPath!\!subKey! 不存在 "Category" 值。
        )
    )
)
rem 设置开机不再提示设置网络
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\NetworkLocationWizard" /v HideWizard /t REG_DWORD /d 1 /f > nul 2>&1
  
rem **********设置为专用网络结束*****************
  
  
@echo off
SetLocal EnableDelayedExpansion
rem net accounts /maxpwage:unlimited
rem net share "Video"="D:\Video" /grant:%UserName%,read /users:3 >nul 2>nul
reg add "HKLM\SYSTEM\ControlSet001\Control\Lsa" /f /v "ForceGuest" /t REG_DWORD /d 1 >nul
reg add "HKLM\SYSTEM\ControlSet001\Control\Lsa" /f /v "ForceGuest" /t REG_DWORD /d 1 >nul
reg add "HKLM\SYSTEM\ControlSet001\Control\Lsa" /f /v "LimitBlankPasswordUse" /t REG_DWORD /d 0x0 /f >nul 2>nul
rem 禁止IPC$空连接 1为禁用
reg add "HKLM\SYSTEM\ControlSet001\Control\Lsa" /f /v "RestrictAnonymousSAM" /t REG_DWORD /d 0x0 /f >nul 2>nul
reg add "HKLM\SYSTEM\ControlSet001\Control\Lsa" /f /v "RestrictAnonymous" /t REG_DWORD /d 0 >nul 2>nul
rem 将Everyone权限应用于匿名用户
reg add "HKLM\SYSTEM\ControlSet001\Control\Lsa" /f /v "EveryoneIncludesAnonymous" /t REG_DWORD /d 1
reg add "HKLM\SYSTEM\ControlSet001\Control\Lsa\MSV1_0" /f /v "NtlmMinClientSec" /t REG_DWORD /d 0 >nul
reg add "HKLM\SYSTEM\ControlSet001\Control\Lsa\MSV1_0" /f /v "NtlmMinServerSec" /t REG_DWORD /d 0 >nul
reg add "HKLM\SYSTEM\ControlSet001\Control\Lsa\MSV1_0" /f /v "RestrictReceivingNTLMTraffic" /t REG_DWORD /d 1
reg add "HKLM\SYSTEM\ControlSet001\Services\NetBT\Parameters" /f /v "TransportBindName" /t REG_SZ /d \Device\
reg add "HKLM\SYSTEM\ControlSet001\Services\NetBT\Parameters" /f /v "UseNewSmb" /t REG_DWORD /d 1 >nul
reg add "HKLM\SYSTEM\ControlSet001\Services\LanmanServer\Parameters" /f /v "RestrictNullSessAccess" /t REG_DWORD /d 1 >nul
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Netlogon" /v Start|findstr "0x4" && sc config Netlogon start= demand
rem 取消 简单共享向导
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "SharingWizardOn" /t REG_DWORD /d 0 /f
  
rem 限制IPC$的远程默认共享 禁止 $C $D
reg add "HKLM\SYSTEM\ControlSet001\Services\LanmanServer\Parameters" /f /v "AutoShareServer" /t REG_DWORD /d 0 >nul
rem 禁止默认的管理共享及磁盘分区共享 禁止 $Admin
reg add "HKLM\SYSTEM\ControlSet001\Services\LanmanServer\Parameters" /f /v "AutoShareWks" /t REG_DWORD /d 0 >nul
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters" /v AutoShareServer /t REG_DWORD /d 0 /f >nul
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters" /v AutoShareWks /t REG_DWORD /d 0 /f >nul
rem 网络访问: 限制对命名管道和共享的匿名访问
reg delete "HKLM\SYSTEM\ControlSet001\Services\LanmanServer\Parameters" /f /v "NullSessionPipes" >nul 2>nul
reg delete "HKLM\SYSTEM\ControlSet001\Services\LanmanServer\Parameters" /f /v "SMB1" >nul 2>nul
reg delete "HKLM\SYSTEM\ControlSet001\Services\LanmanServer\Parameters" /f /v "SMB2" >nul 2>nul
reg delete "HKLM\SYSTEM\ControlSet001\Services\NetBT\Parameters" /f /v "SMBDeviceEnabled" >nul 2>nul
rem 启动服务
for /f "delims=" %%a in ('reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\NetBT\Parameters\Interfaces" /s /e /f "0x2"^|findstr "\Tcpip_"') do reg add "%%a" /v NetbiosOptions /t REG_DWORD /d 0x0 /f
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\NetBT\Parameters" /v EnableLMHOSTS|findstr "0x0" && reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\NetBT\Parameters" /v EnableLMHOSTS /t REG_DWORD /d 0x1 /f
rem 删除计划任务(Scheduled Tasks)加快网络访问速度
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RemoteComputer\NameSpace\{D6277990-4C6A-11CF-8D87-00AA0060F5BF}" /f >nul 2>nul
  
rem 清空“拒绝从网络访问此计算机”
(echo [Unicode]
echo Unicode=yes
echo [Version]
echo signature="$CHICAGO$"
echo Revision=1
echo [Privilege Rights]
echo sedenynetworklogonright =
echo senetworklogonright = Everyone,Administrators,Users,Power Users,Backup Operators,guest) >> "%TEMP%\zcl.inf"
  
secedit /configure /db "%TEMP%\zcl.sdb" /cfg "%TEMP%\zcl.inf" /log "%TEMP%\zcl.log" /quiet
  
del /q "%TEMP%\zcl.*"
  
rem 断开所有连接
net use * /del /y
rem 在局域网内不隐藏自己的计算机名
net config server /hidden:no
rem net share ipc$
gpupdate /force
  
echo 开启SMB1 支持
DISM /Online /Enable-Feature /FeatureName:SMB1Protocol /all /norestart
  
rem===============请在10秒内按Y键执行以下命令=============================
@echo off
ver | findstr "6." > nul && set os=win7
ver | findstr "10." > nul && set os=win10_or_win11
  
choice /c yn /M "是否启用LPD打印共享功能 (Y/N)"
  
if errorlevel 1 (
   rem echo 这里是按Y键后执行内容
) else (
    
echo 开启LPD打印相关功能……
  
  
if "%os%"=="win7" (
    echo Windows 7 开启LPD打印相关功能……
    dism /online /enable-feature /featurename:"Printing-Foundation-Features" /norestart
    dism /online /enable-feature /featurename:"Printing-Foundation-LPDPrintService" /norestart
    dism /online /enable-feature /featurename:"Printing-Foundation-LPRPortMonitor" /norestart
    dism /online /enable-feature /featurename:"Printing-Foundation-InternetPrinting-Client" /norestart
    echo Windows 7 开启LPD打印相关功能……结束
) else if "%os%"=="win10_or_win11" (
    echo Windows 10 或 Windows 11 开启LPD打印相关功能……
    echo 开启SMB1 支持
    DISM /Online /Enable-Feature /FeatureName:SMB1Protocol /all /norestart
    dism /online /enable-feature /featurename:"Printing-Foundation-InternetPrinting-Client" /all /norestart
    dism /online /enable-feature /featurename:"Printing-Foundation-LPDPrintService" /all /norestart
    dism /online /enable-feature /featurename:"Printing-Foundation-LPRPortMonitor" /all /norestart
    echo Windows 11 开启LPD打印相关功能……结束
) else (
    echo 出错:未知系统!!
    sleep 5
)
)
    echo.
    echo.
  
echo ****************************正在启动相关系统服务*****稍等*******************************************
echo.
  
for %%a in (server Browser DHCP fdPHost lmhosts LanmanServer LanmanWorkstation NetBT SharedAccess SSDPSRV FDResPub WebClient) do (
        sc config "%%~a" start=auto >nul
        net start "%%~a" >nul 2>nul
        )
net stop spooler /yes > NUL
rem 删除打印任务
DEL C:\WINDOWS\SYSTEM32\SPOOL\PRINTERS\*.* /F /Q
net start spooler > NUL
net start LPDSVC >nul 2>nul
echo.
echo 当前计算机名: 【%computername%】
  
    ipconfig
    echo.
echo **************************************************************************************
@echo 【现在可直接共享目录了】【如要LPR方式共享打印机则先重启】,,拜拜,,
REM 打开设备和打印机
set "osVersion="
for /f "delims=" %%a in ('wmic os get Caption ^| findstr /i "Windows 11"') do set "osVersion=%%a"
if defined osVersion (
    start "" control /name Microsoft.DevicesAndPrinters
) else (
    start "" shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}
)
echo.
  
choice /T 8 /D Y /M "完成!  重启后生效。By WqlSoft 2024.11.20 (Y/N)"
if errorlevel 2 (
    echo 你已放弃删除本脚本。
) else (
 
    echo 删除自身.
)
  
exit /b

免费评分

参与人数 8吾爱币 +14 热心值 +5 收起 理由
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
Flapjack + 1 + 1 我很赞同!
Natu + 1 + 1 谢谢@Thanks!
2842752363 + 1 热心回复!
sxp3468 + 1 + 1 谢谢@Thanks!
yutianlian + 1 热心回复!
zyl162180 + 1 + 1 慎用 远程桌面用不了。重装了。
redapple2015 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 虚幻魔王 发表于 2024-12-26 12:57
sondycnc 发表于 2024-12-26 12:43
我只能看明白一点点的命令,以下是我向别人请教来的,但是不会用,能否抽空的时候加个注释并实现我可以在 ...

@echo off   // 批处理开始

for /f "delims=" %%a in ('echo %username% ^| find /i "system"') do set is_system=%%a

if not "%is_system%"=="" (
    call :SystemCode
) else (
    call :UesrCode
)

goto :EOF  //这里可以理解为执行到某处地方,EOF是一个地址标签但是没看到在哪 正规的表达方式是----------:标签  命令1 命令2 命令3 GOTO:标签-------   这里缺少了 :EOF 这个开始的标签。

:SystemCode

for /f "delims=." %%s in ('reg query "HKLM\SECURITY\SAM\Domains\Builtin\Aliases\Members"') do set adminsid=%%s
set "adminsid=%adminsid:HKEY_LOCAL_MACHINE\SECURITY\SAM\Domains\Builtin\Aliases\Members\=%%-1000"

echo D | xcopy /s /e /h /y  "%ProgramFiles%\StartAllBack\AccountPictures" "%Public%\AccountPictures\%adminsid% "//这里就是复制(相当于下载)从什么地方,到本地的什么地方
//以下就是修改注册表,但是为啥修改这么多我就不清楚了,这是把备选头像都换掉了好像
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\%adminsid%" /f /v "Image448" /t REG_SZ /d "%Public%\AccountPictures\%adminsid%\Image448.png"
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\%adminsid%" /f /v "Image240" /t REG_SZ /d "%Public%\AccountPictures\%adminsid%\Image240.png"
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\%adminsid%" /f /v "Image192" /t REG_SZ /d "%Public%\AccountPictures\%adminsid%\Image192.png"
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\%adminsid%" /f /v "Image96" /t REG_SZ /d "%Public%\AccountPictures\%adminsid%\Image96.png"
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\%adminsid%" /f /v "Image64" /t REG_SZ /d "%Public%\AccountPictures\%adminsid%\Image64.png"
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\%adminsid%" /f /v "Image48" /t REG_SZ /d "%Public%\AccountPictures\%adminsid%\Image48.png"
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\%adminsid%" /f /v "Image40" /t REG_SZ /d "%Public%\AccountPictures\%adminsid%\Image40.png"
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\%adminsid%" /f /v "Image32" /t REG_SZ /d "%Public%\AccountPictures\%adminsid%\Image32.png"
exit
goto :EOF

:UesrCode

for /f "tokens=*" %%a in ('reg query HKEY_USERS^|findstr /i /l "S-1-5-21"') do set usersid=%%a//这里好像是获取到了用户名称,然后组合成了注册表键值
set usersid=%usersid:_Classes=%//这里是把获取到的键值赋予给了代号USERSID
set usersid=%usersid:HKEY_USERS\=%// 这里是整合了一下内容

echo D | xcopy /s /e /h /y  "%ProgramFiles%\StartAllBack\AccountPictures" "%Public%\AccountPictures\%usersid%"  //这里就是复制(相当于下载)从什么地方,到本地的什么地方
//以下就是修改注册表,但是为啥修改这么多我就不清楚了,这是把备选头像都换掉了好像
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\%usersid%" /f /v "Image448" /t REG_SZ /d "%Public%\AccountPictures\%usersid%\Image448.png"
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\%usersid%" /f /v "Image240" /t REG_SZ /d "%Public%\AccountPictures\%usersid%\Image240.png"
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\%usersid%" /f /v "Image192" /t REG_SZ /d "%Public%\AccountPictures\%usersid%\Image192.png"
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\%usersid%" /f /v "Image96" /t REG_SZ /d "%Public%\AccountPictures\%usersid%\Image96.png"
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\%usersid%" /f /v "Image64" /t REG_SZ /d "%Public%\AccountPictures\%usersid%\Image64.png"
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\%usersid%" /f /v "Image48" /t REG_SZ /d "%Public%\AccountPictures\%usersid%\Image48.png"
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\%usersid%" /f /v "Image40" /t REG_SZ /d "%Public%\AccountPictures\%usersid%\Image40.png"
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\%usersid%" /f /v "Image32" /t REG_SZ /d "%Public%\AccountPictures\%usersid%\Image32.png"
exit
goto :EOF
sondycnc 发表于 2024-12-26 12:43
虚幻魔王 发表于 2024-12-26 12:31
XP、vista、win7 的用户头像在:[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Hints/ ...

我只能看明白一点点的命令,以下是我向别人请教来的,但是不会用,能否抽空的时候加个注释并实现我可以在普通用户账户里修改用户头像的目的
@echo off

for /f "delims=" %%a in ('echo %username% ^| find /i "system"') do set is_system=%%a

if not "%is_system%"=="" (
    call :SystemCode
) else (
    call :UesrCode
)

goto :EOF

:SystemCode

for /f "delims=." %%s in ('reg query "HKLM\SECURITY\SAM\Domains\Builtin\Aliases\Members"') do set adminsid=%%s
set "adminsid=%adminsid:HKEY_LOCAL_MACHINE\SECURITY\SAM\Domains\Builtin\Aliases\Members\=%%-1000"

echo D | xcopy /s /e /h /y  "%ProgramFiles%\StartAllBack\AccountPictures" "%Public%\AccountPictures\%adminsid%"

reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\%adminsid%" /f /v "Image448" /t REG_SZ /d "%Public%\AccountPictures\%adminsid%\Image448.png"
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\%adminsid%" /f /v "Image240" /t REG_SZ /d "%Public%\AccountPictures\%adminsid%\Image240.png"
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\%adminsid%" /f /v "Image192" /t REG_SZ /d "%Public%\AccountPictures\%adminsid%\Image192.png"
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\%adminsid%" /f /v "Image96" /t REG_SZ /d "%Public%\AccountPictures\%adminsid%\Image96.png"
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\%adminsid%" /f /v "Image64" /t REG_SZ /d "%Public%\AccountPictures\%adminsid%\Image64.png"
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\%adminsid%" /f /v "Image48" /t REG_SZ /d "%Public%\AccountPictures\%adminsid%\Image48.png"
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\%adminsid%" /f /v "Image40" /t REG_SZ /d "%Public%\AccountPictures\%adminsid%\Image40.png"
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\%adminsid%" /f /v "Image32" /t REG_SZ /d "%Public%\AccountPictures\%adminsid%\Image32.png"
exit
goto :EOF

:UesrCode

for /f "tokens=*" %%a in ('reg query HKEY_USERS^|findstr /i /l "S-1-5-21"') do set usersid=%%a
set usersid=%usersid:_Classes=%
set usersid=%usersid:HKEY_USERS\=%

echo D | xcopy /s /e /h /y  "%ProgramFiles%\StartAllBack\AccountPictures" "%Public%\AccountPictures\%usersid%"

reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\%usersid%" /f /v "Image448" /t REG_SZ /d "%Public%\AccountPictures\%usersid%\Image448.png"
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\%usersid%" /f /v "Image240" /t REG_SZ /d "%Public%\AccountPictures\%usersid%\Image240.png"
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\%usersid%" /f /v "Image192" /t REG_SZ /d "%Public%\AccountPictures\%usersid%\Image192.png"
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\%usersid%" /f /v "Image96" /t REG_SZ /d "%Public%\AccountPictures\%usersid%\Image96.png"
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\%usersid%" /f /v "Image64" /t REG_SZ /d "%Public%\AccountPictures\%usersid%\Image64.png"
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\%usersid%" /f /v "Image48" /t REG_SZ /d "%Public%\AccountPictures\%usersid%\Image48.png"
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\%usersid%" /f /v "Image40" /t REG_SZ /d "%Public%\AccountPictures\%usersid%\Image40.png"
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\%usersid%" /f /v "Image32" /t REG_SZ /d "%Public%\AccountPictures\%usersid%\Image32.png"
exit
goto :EOF
sondycnc 发表于 2024-12-26 11:16
如果不是管理员权限后面的修改没用,那不如直接自动赋予管理员权限后执行操作,达到解决共享的目的,加个判断语句没多大意义
 楼主| 虚幻魔王 发表于 2024-12-26 11:19
本帖最后由 虚幻魔王 于 2024-12-26 11:21 编辑
sondycnc 发表于 2024-12-26 11:16
如果不是管理员权限后面的修改没用,那不如直接自动赋予管理员权限后执行操作,达到解决共享的目的,加个判 ...

有的单位管理比较严格,用户一定是用户权限,不给管理员权限的。但是管理员会登录账号修复系统问题。,,,,,用户权限执行脚本后,是无法获取到管理员权限的,这不要想越权搞啥操作了。
sondycnc 发表于 2024-12-26 11:26
虚幻魔王 发表于 2024-12-26 11:19
有的单位管理比较严格,用户一定是用户权限,不给管理员权限的。但是管理员会登录账号修复系统问题。

但是自行解决相当于需要再次更改管理员权限后才能继续操作,感觉有点麻烦,不能起到脚本一次性解决问题的用途啊。在实际工作中还真没用过域用户去修改某些设置,不知道在这里直接给予管理权限是否好用。稍后找台用户电脑试一下
 楼主| 虚幻魔王 发表于 2024-12-26 11:30
sondycnc 发表于 2024-12-26 11:26
但是自行解决相当于需要再次更改管理员权限后才能继续操作,感觉有点麻烦,不能起到脚本一次性解决问题的 ...

你用USER组的用户,大概率是无法突破管理员限制去操作电脑敏感操作的,都要求授权。不是一个批处理能赋予USER 组用户临时管理员权限或者永久权限的。
sondycnc 发表于 2024-12-26 11:35
虚幻魔王 发表于 2024-12-26 11:30
你用USER组的用户,大概率是无法突破管理员限制去操作电脑敏感操作的,都要求授权。不是一个批处理能赋予 ...

有个问题想请教一下,能否用批处理写一个更改用户头像的脚本呢,电脑比较多,手动修改太麻烦,有脚本了可以在工作域里直接推送。可否赐教
liuce2019 发表于 2024-12-26 11:51
没发成品吗
szmsys 发表于 2024-12-26 12:05
看了半天,你倒是发一个 成品啊
 楼主| 虚幻魔王 发表于 2024-12-26 12:22
本帖最后由 虚幻魔王 于 2024-12-26 12:27 编辑

错误错误错误
 楼主| 虚幻魔王 发表于 2024-12-26 12:23
szmsys 发表于 2024-12-26 12:05
看了半天,你倒是发一个 成品啊

成品就是源码,批处理要啥成品文件,自己复制粘贴不好么?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-6-19 02:26

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表