[color=#FF6600][size=3]1、--------------WIN2003 IIS最小权限分配.bat---------------[/size][/color]
[code]
@echo off
echo "虚拟主机C盘权限设定"
echo "Author:an85.com"
echo "删除C盘的everyone的权限"
cd/
cacls "%SystemDrive%" /r "everyone" /e
cacls "%SystemRoot%" /r "everyone" /e
cacls "%SystemRoot%/Registration" /r "everyone" /e
cacls "%SystemDrive%/Documents and Settings" /r "everyone" /e
echo "删除C盘的所有的users的访问权限"
cd/
cacls "%SystemDrive%" /r "users" /e
cacls "%SystemDrive%/Program Files" /r "users" /e
cacls "%SystemDrive%/Documents and Settings" /r "users" /e
cacls "%SystemRoot%" /r "users" /e
cacls "%SystemRoot%/addins" /r "users" /e
cacls "%SystemRoot%/AppPatch" /r "users" /e
cacls "%SystemRoot%/Connection Wizard" /r "users" /e
cacls "%SystemRoot%/Debug" /r "users" /e
cacls "%SystemRoot%/Driver Cache" /r "users" /e
cacls "%SystemRoot%/Help" /r "users" /e
cacls "%SystemRoot%/IIS Temporary Compressed Files" /r "users" /e
cacls "%SystemRoot%/java" /r "users" /e
cacls "%SystemRoot%/msagent" /r "users" /e
cacls "%SystemRoot%/mui" /r "users" /e
cacls "%SystemRoot%/repair" /r "users" /e
cacls "%SystemRoot%/Resources" /r "users" /e
cacls "%SystemRoot%/security" /r "users" /e
cacls "%SystemRoot%/system" /r "users" /e
cacls "%SystemRoot%/TAPI" /r "users" /e
cacls "%SystemRoot%/Temp" /r "users" /e
cacls "%SystemRoot%/twain_32" /r "users" /e
cacls "%SystemRoot%/Web" /r "users" /e
cacls "%SystemRoot%/WinSxS" /r "users" /e
cacls "%SystemRoot%/system32/3com_dmi" /r "users" /e
cacls "%SystemRoot%/system32/administration" /r "users" /e
cacls "%SystemRoot%/system32/Cache" /r "users" /e
cacls "%SystemRoot%/system32/CatRoot2" /r "users" /e
cacls "%SystemRoot%/system32/Com" /r "users" /e
cacls "%SystemRoot%/system32/config" /r "users" /e
cacls "%SystemRoot%/system32/dhcp" /r "users" /e
cacls "%SystemRoot%/system32/drivers" /r "users" /e
cacls "%SystemRoot%/system32/export" /r "users" /e
cacls "%SystemRoot%/system32/icsxml" /r "users" /e
cacls "%SystemRoot%/system32/lls" /r "users" /e
cacls "%SystemRoot%/system32/LogFiles" /r "users" /e
cacls "%SystemRoot%/system32/MicrosoftPassport" /r "users" /e
cacls "%SystemRoot%/system32/mui" /r "users" /e
cacls "%SystemRoot%/system32/oobe" /r "users" /e
cacls "%SystemRoot%/system32/ShellExt" /r "users" /e
cacls "%SystemRoot%/system32/wbem" /r "users" /e
echo "添加iis_wpg的访问权限"
cacls "%SystemRoot%" /g iis_wpg:r /e
cacls "%SystemDrive%/Program Files/Common Files" /g iis_wpg:r /e
cacls "%SystemRoot%/Downloaded Program Files" /g iis_wpg:c /e
cacls "%SystemRoot%/Help" /g iis_wpg:c /e
cacls "%SystemRoot%/IIS Temporary Compressed Files" /g iis_wpg:c /e
cacls "%SystemRoot%/Offline Web Pages" /g iis_wpg:c /e
cacls "%SystemRoot%/System32" /g iis_wpg:c /e
cacls "%SystemRoot%/Tasks" /g iis_wpg:c /e
cacls "%SystemRoot%/Temp" /g iis_wpg:c /e
cacls "%SystemRoot%/Web" /g iis_wpg:c /e
echo "添加iis_wpg的访问权限[.net专用]"
cacls "%SystemRoot%/Assembly" /g iis_wpg:c /e
cacls "%SystemRoot%/Microsoft.NET" /g iis_wpg:c /e
echo "添加iis_wpg的访问权限[装了MACFEE的软件专用]"
cacls "%SystemDrive%/Program Files/Network Associates" /g iis_wpg:r /e
echo "添加users的访问权限"
cacls "%SystemRoot%/temp" /g users:c /e [/code]
[color=#FF6600][size=3]2、--------------winxp修改计算机名.bat---------------[/size][/color]
[code]
@echo off
set /p name=请输您的计算机名:
reg add "HKEY_LOCAL_MACHINE/System/CurrentControlSet/Control/ComputerName/ActiveComputerName" /v ComputerName /t reg_sz /d %name% /f
reg add "HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/Tcpip/Parameters" /v "NV Hostname" /t reg_sz /d %name% /f
reg add "HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/Tcpip/Parameters" /v Hostname /t reg_sz /d %name% /f
[/code]
[color=#FF6600][size=3]3、--------------xp下确定最后的盘符.bat---------------[/size][/color]
[code]
@echo off
for %%i in (Z Y X W V U T S R Q P O N M L K J I H G F E D C) do (
if exist %%i:/nul (
for /f "tokens=3" %%j in ('dir /-c %%i:/') do set freesize=%%j
set last=%%i
if not "!freesize!"=="0" goto last_drive
)
)
goto :eof
:last_drive
echo 最后一个分区是 %last%
md %last%:/001
pause[/code]
[color=#FF6600][size=3]4、--------------不显示扩展名.bat---------------[/size][/color]
[code]
reg add "HKCU/Software/Microsoft/Windows/CurrentVersion/Explorer/Advanced" /v HideFileExt /t reg_dword /d 00000001 /f[/code]
[color=#FF6600][size=3]5、--------------不显示隐藏文件.bat---------------[/size][/color]
[code]
reg add "HKCU/Software/Microsoft/Windows/CurrentVersion/Explorer/Advanced" /v Hidden /t reg_dword /d 00000000 /f
reg add "HKCU/Software/Microsoft/Windows/CurrentVersion/Explorer/Advanced" /v HideFileExt /t reg_dword /d 00000001 /f
reg add "HKCU/Software/Microsoft/Windows/CurrentVersion/Explorer/Advanced" /v ShowSuperHidden /t reg_dword /d 00000000 /f
[/code]
[color=#FF6600][size=3]6、--------------查看电脑硬件信息.bat---------------[/size][/color]
[code]
start C:/WINDOWS/PCHealth/HelpCtr/System/sysinfo/sysComponentInfo.htm[/code]
[color=#FF6600][size=3]7、--------------查看工作组.bat---------------[/size][/color]
[code]
@echo off
title 查看工作组
color f2
net config workstation
pause >nul[/code]
[color=#FF6600][size=3]8、--------------查看驱动器.bat---------------[/size][/color]
[code]
@echo off
setlocal enabledelayedexpansion
for /f "skip=1 tokens=1,2 delims=/" %%a in ('fsutil fsinfo drives^|find /v ""') do (
set aa=%%a
set aa=!aa:~-2!
for %%i in (!aa!) do fsutil fsinfo drivetype %%i
)
pause
[/code]
[color=#FF6600][size=3]9、--------------查看物理内存.bat---------------[/size][/color]
[code]
@echo off
color f2
echo.
systeminfo|find "物理内存总量"
pause>nul[/code]
[color=#FF6600][size=3]10、--------------查看用户是否存在.bat---------------[/size][/color]
[code]
@echo off
set a=
set/p a=请输入要查找的用户名
net user %a% >nul 2>nul && echo 存在该用户 || echo 用户不存在.
pause>nul
[/code]
[color=#FF6600][size=3]11、--------------弹出光驱.bat---------------[/size][/color]
[code]
mshta "javascript:new ActiveXObject('WMPlayer.OCX').cdromCollection.Item(0).Eject();window.close();"[/code]
[color=#FF6600][size=3]12、--------------改变我的文档路径.bat---------------[/size][/color]
[code]
reg add "HKEY_USERS/.DEFAULT/Software/Microsoft/Windows/CurrentVersion/Explorer/User Shell Folders" /v Personal /t reg_expand_sz /d "d:/My Documents" /f[/code]
[color=#FF6600][size=3]13、--------------更改电源管理方式.bat---------------[/size][/color]
[code]
@echo off
:: =========================================================================================================
:: ChangeHalByRundll.cmd 使用Windows的rundll32命令来更改计算机类型的批处理
:: 用法: ChangeHalByRundll <硬件ID>
:: <硬件ID>是指你想更改成的计算机类型所对应的HardwareID。
:: 例如:你想将计算机改成ACPI Uniprocessor类型,那么使用命令:ChangeHalByRundll ACPIPIC_UP
:: 计算机类型与硬件ID的对应关系如下:
:: 计算机类型 硬件ID(HardwareID)
:: Standard E_ISA_UP
:: ACPI Uniprocessor ACPIAPIC_UP
:: ACPI Multiprocessor ACPIAPIC_MP
:: MPS Uniprocessor MPS_UP
:: MPS Multiprocessor MPS_MP
:: Compaq SystemPro SYSPRO_MP
:: ACPI ACPIPIC_UP
:: =========================================================================================================
if %1#==# goto _usage
set HardIDs=E_ISA_UP ACPIPIC_UP ACPIAPIC_UP ACPIAPIC_MP MPS_UP MPS_MP SGI_MPS_MP SYSPRO_MP
echo %HardIDs% | find /i "%1" > nul
if errorlevel 1 goto _usage
:_update
REG.EXE DELETE "HKLM/SYSTEM/CurrentControlSet/Control/Class/{4D36E966-E325-11CE-BFC1-08002BE10318}/0000" /f
REG.EXE DELETE "HKLM/SYSTEM/CurrentControlSet/Control/Class/{4D36E966-E325-11CE-BFC1-08002BE10318}/0001" /f
REG.EXE DELETE "HKLM/SYSTEM/ControlSet001/Control/Class/{4D36E966-E325-11CE-BFC1-08002BE10318}/0000" /f
REG.EXE DELETE "HKLM/SYSTEM/ControlSet001/Control/Class/{4D36E966-E325-11CE-BFC1-08002BE10318}/0001" /f
REG.EXE DELETE "HKLM/SYSTEM/CurrentControlSet/Enum/Root/ACPI_HAL" /f
REG.EXE DELETE "HKLM/SYSTEM/CurrentControlSet/Enum/Root/PCI_HAL" /f
rundll32.exe setupapi,InstallHinfSection %1_HAL 131 %windir%/inf/hal.inf
cls
echo.
echo 恭喜,计算机类型更改完毕,请重新启动计算机使更改生效,系统会重新扫描硬件!
echo 按任意键退出...
pause >nul
goto _quit
:_usage
cls
echo.
echo 错误:你没有指定计算机类型对应的硬件ID或者你指定的硬件ID不存在。
echo 用法: %0 ^<硬件ID^>
echo.
echo 计算机类型与硬件ID的对应关系如下:
echo.
echo 计算机类型 硬件ID(HardwareID)
echo Standard E_ISA_UP
echo ACPI Uniprocessor ACPIAPIC_UP
echo ACPI Multiprocessor ACPIAPIC_MP
echo MPS Uniprocessor MPS_UP
echo MPS Multiprocessor MPS_MP
echo Compaq SystemPro SYSPRO_MP
echo ACPI ACPIPIC_UP
echo.
echo 按任意键退出...
pause>nul
goto _quit
:_quit
set HardIDs=
[/code]
[color=#FF6600][size=3]14、--------------更改盘符.bat---------------[/size][/color]
[code]
@echo off
color f4
echo 特别提醒! 请不要修改C: !&PAUSE>NUL
COLOR 07
cls
set/p a=请输入原盘符……
set/p b=请输入新盘符……
set old=%a%:
set new=%b%:
pushd %new% 2>nul && echo %new%盘已经存在! && pause && goto :eof
for /f %%i in ('mountvol %old% /l') do set "vol=%%i"
mountvol %old% /d
mountvol %new% %vol%
popd[/code]
[color=#FF6600][size=3]15、--------------更改系统启动菜单的时间.bat---------------[/size][/color]
[code]
@echo off
set/p time=请输入您想要的启动时间
c:
type boot.ini>boot.bak
attrib -h -r -s boot.ini
type boot.bak|find "boot loader" /i>boot.ini
echo timeout=%time% >>boot.ini
type boot.bak|find "boot loader" /i /v|find "timeout" /i /v>>boot.ini
attrib s r h boot.ini[/code]
[color=#FF6600][size=3]16、--------------关闭IDE通道检测.bat---------------[/size][/color]
[code]
:: 修改IDE通道检测设备模式,不接设备的设置为无,提高XP启动速度
:: 建议在系统第二次重新启动检测到所有已经安装的IDE设备后运行
:: Author: Climbing(xclimbing@msn.com)
:: Date: 2006.10.28
@set _debug=
@echo %_debug% off & setlocal ENABLEDELAYEDEXPANSION
set hkey1=HKLM/SYSTEM/CurrentControlSet/Enum/PCIIDE/IDEChannel
set hkey2=HKLM/SYSTEM/CurrentControlSet/Control/Class
for /f "usebackq tokens=*" %%I in (`reg query %hkey1% ^| find /i "IDEChannel/"`) do call :_check "%%I"
goto :eof
:_check
::echo %1
set subkey=
for /f "usebackq tokens=3*" %%J in (`reg query %1 ^| find /i "driver"`) do set subkey=%%J
set DriverDesc=
for /f "usebackq tokens=3,4*" %%K in (`reg query "%hkey2%/%subkey%" /v DriverDesc ^| find /i "driverdesc"`) do set DriverDesc=%%K %%L 通道
reg query "%hkey2%/%subkey%" /v MasterDeviceType | find /i "0x1" > nul
if %errorlevel%==1 goto _ChgMaster
goto _CheckSlave
:_ChgMaster
reg add "%hkey2%/%subkey%" /v UserMasterDeviceType /t REG_DWORD /d 3 /f
echo “%DriverDesc%”的设备0检测方式设置为无。
:_CheckSlave
reg query "%hkey2%/%subkey%" /v SlaveDeviceType | find /i "0x1" > nul
if %errorlevel%==1 goto _ChgSlave
goto :eof
:_ChgSlave
reg add "%hkey2%/%subkey%" /v UserSlaveDeviceType /t REG_DWORD /d 3 /f
echo “%DriverDesc%”的设备1检测方式设置为无。
goto :eof[/code]
[color=#FF6600][size=3]17、--------------禁止保留文档记录.bat---------------[/size][/color]
[code]
REG ADD "HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Policies/Explorer" /V NORECENTDOCSHISTORY /T REG_DWORD /D 1 /F[/code]
[color=#FF6600][size=3]18、--------------列举进程.bat---------------[/size][/color]
[code]
@echo for each ps in getobject _ >ps.vbs
@echo ("winmgmts://./root/cimv2:win32_process").instances_ >>ps.vbs
@echo wscript.echo ps.handle^&vbtab^&ps.name^&vbtab^&ps.executablepath:next >>ps.vbs
cscript //nologo ps.vbs & del ps.vbs
pause[/code]
[color=#FF6600][size=3]19、--------------判断分区格式.bat---------------[/size][/color]
[code]
@echo off
:1
cls
set/p pan=请输入要测试的盘符 (不带冒号)
for /f "tokens=1,2" %%i in ('chkntfs %pan%:') do (
set var=%%j
goto type
)
goto :eof
:type
set var=%var:。=%
echo %pan%的文件系统类型是 %var%
pause>nul
goto 1[/code]
[color=#FF6600][size=3]20、--------------判断光驱里有无光盘.bat---------------[/size][/color]
[code]
@echo off
if exist I:/nul.ext (echo 有光盘) else (echo 无光盘)
pause>nul[/code]
[color=#FF6600][size=3]21、--------------判断光驱是否可用.bat---------------[/size][/color]
[code]
@echo off
copy //./CdRom0/* nul >nul 2>nul && echo OK || echo NO
pause[/code]
[color=#FF6600][size=3]22、--------------取得硬盘数.bat---------------[/size][/color]
[code]
@echo off
cd.>script.txt
>>script.txt echo list disk
for /f %%i in ('diskpart /s script.txt^|find /c ^"联机^"') do Set HardDrivers=%%i
del script.txt /q
echo 您的计算机上硬盘安装数量为:%HardDrivers%
pause[/code]
[color=#FF6600][size=3]23、--------------使用WMI别名获取CPU信息.bat---------------[/size][/color]
[code]
::使用WMI别名获取PC主要信息.bat
::使用WMI别名获取主要信息,输出为网页格式
::--------by MOBO[墨伯] at 2006-09-16:
wmic baseboard list brief /format:hform >MyPC.htm
wmic cpu list full /format:hform >>MyPC.htm
wmic bios list brief /format:hform >>MyPC.htm
MyPC.htm[/code]
[color=#FF6600][size=3]24、--------------刷新策略.bat---------------[/size][/color]
[code]
gpupdate.exe /force
[/code]
[color=#FF6600][size=3]25、--------------显示扩展名.bat---------------[/size][/color]
[code]
reg add "HKCU/Software/Microsoft/Windows/CurrentVersion/Explorer/Advanced" /v HideFileExt /t reg_dword /d 00000000 /f[/code]
[color=#FF6600][size=3]26、--------------显示隐藏文件.bat---------------[/size][/color]
[code]
reg add "HKCU/Software/Microsoft/Windows/CurrentVersion/Explorer/Advanced" /v Hidden /t reg_dword /d 1 /f
reg add "HKCU/Software/Microsoft/Windows/CurrentVersion/Explorer/Advanced" /v HideFileExt /t reg_dword /d 0 /f
reg add "HKCU/Software/Microsoft/Windows/CurrentVersion/Explorer/Advanced" /v ShowSuperHidden /t reg_dword /d 1 /f
[/code]
[color=#FF6600][size=3]27、--------------显示用户名.bat---------------[/size][/color]
[code]
@echo off
echo 所有用户帐号ID为:
echo.
for /f "skip=4 tokens=1-3" %%i in ('net user') do (
if not "%%i"=="命令成功完成。" echo %%i
if not "%%j"=="" echo %%j
if not "%%k"=="" echo %%k
)
echo.
echo 当前用户帐号ID为:%username%
pause>nul[/code]
[color=#FF6600][size=3]28、--------------右键添加打开MS-DOS.bat---------------[/size][/color]
[code]
reg add "HKCR/*/shell/ms-dos" /ve /d ms-dos /f
reg add "HKCR/*/shell/ms-dos/command" /ve /d "cmd.exe /k cd %%1" /f
reg add "HKCR/Folder/shell/ms-dos" /ve /d ms-dos /f
reg add "HKCR/Folder/shell/ms-dos/command" /ve /d "cmd.exe /k cd %%1" /f
[/code]
[color=#FF6600][size=3]29、--------------重命名administrator账号.bat---------------[/size][/color]
[code]
wmic useraccount where name='Administrator' call Rename admin
[/code]
[color=#FF6600][size=3]30、--------------磁盘整理.bat---------------[/size][/color]
[code]
defrag.exe c: /f /v
defrag.exe d: /f /v
defrag.exe e: /f /v
defrag.exe f: /f /v
defrag.exe g: /f /v
shutdown -s[/code]
[color=#FF6600][size=3]31、--------------定时关机.bat---------------[/size][/color]
[code]
@echo off
mode con lines=25
title 定时关机
color 1f
cls
echo.
echo.
echo.
echo.
echo 时间使用24小时制(如2:15、12:00),可以输入多个时间点
echo.
echo 多个时间点用空格分隔
echo.
echo.
echo ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
echo.
set times=
set /p times= 请输入关机时间:
:: 以下语句实现每个星期的每一天指定时间关机
:: 如果要换成每个月的某几天,请改字母为数字,并用逗号分隔
:: 以下代码没有错误检测语句,输入时间的时候务必按照指定格式输入
:: 可以用在CMD窗口用at命令来查看计划任务
if not "%times%"=="" for %%i in (%times%) do (
at %%i /every:M,T,W,Th,F,S,Su shutdown -s
)[/code]
[color=#FF6600][size=3]32、--------------打开控制面板中的某项.bat---------------[/size][/color]
[code]
@echo off
goto _run
XP下的控制面板扩展程序
access.cpl 辅助功能选项/键盘
appwiz.cpl 添加或删除程序
bthprops.cpl
desk.cpl 显示属性/主题
firewall.cpl Windows防火墙
hdwwiz.cpl 添加硬件向导
igfxcpl.cpl 显卡控制面板/设备
inetcpl.cpl Internet属性/常规
intl.cpl 区域和语言选项/区域选项
irprops.cpl
joy.cpl 游戏控制器
main.cpl 鼠标属性/按钮
mmsys.cpl 声音和音频设备属性/音量
ncpa.cpl 网络连接
netsetup.cpl 网络安装向导
nusrmgr.cpl 用户帐户
nwc.cpl
odbccp32.cpl ODBC数据源管理器/用户DSN
powercfg.cpl 电源选项属性/电源使用方案
QuickTime.cpl QuickTime设置/注册
sticpl.cpl 扫描仪和照相机
sysdm.cpl 系统属性/常规
telephon.cpl 信息位置
timedate.cpl 日期和时间属性/日期和时间
wscui.cpl Windows安全中心
wuaucpl.cpl 自动更新
可以用start control *.cpl的格式打开,例如:
:_run
start control sysdm.cpl
Rundll.exe高级应用
首先,请你做个小实验(请事先保存好你正在执行的程式的结果)∶
点击“开始-程式-Ms-Dos方式”,进入Dos视窗,然後键入“rundll32.exe user.exe,restartwindows”,再按下回车键,这时你将看到,机器被重启了!
当然,Rundll的功能绝不仅仅是重启你的机器。其实,Rundll者,顾名思义,执行Dll也,它的功能就是以命令列的方式呼叫Windows 的动态链结库,Rundll32.exe与Rundll.exe的区别就在於前者是呼叫32位的链结库,而後者是运用於16位的链结库,它们的命令格式是 ∶
RUNDLL.EXE ,,
这里要注意三点∶
1.Dll档案名中不能含有空格,比如该档案位於c:/Program Files目录,你要把这个路径改成c:/Progra~1;
2.Dll档案名与Dll入口点间的逗号不能少,否则程式将出错并且不会给出任何资讯!
3.这是最重要的一点∶Rundll不能用来呼叫含返回值参数的Dll,例如Win32API中的GetUserName(), GetTextFace()等。
在Visual Basic中,提供了一条执行外部程式的指令Shell,格式为∶
Shell “命令列”
如果能配合Rundll32.exe用好Shell指令,会使您的VB程式拥有用其他方法难以甚至无法实现的效果∶仍以重启为例,传统的方法需要你在VB工程中先建立一个模组,然後写入WinAPI的声明,最後才能在程式中呼叫。而现在只需一句:
Shell “rundll32.exe user.exe,restartwindows”就搞定了!
实际上,Rundll32.exe在呼叫各种Windows控制面板和系统选项方面有著独特的优势。
命令列: rundll32.exe shell32.dll,Control_RunDLL
功能: 显示控制面板
命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,1
功能: 显示“控制面板-辅助选项-键盘”选项视窗
命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,2
功能: 显示“控制面板-辅助选项-声音”选项视窗
命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,3
功能: 显示“控制面板-辅助选项-显示”选项视窗
命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,4
功能: 显示“控制面板-辅助选项-滑鼠”选项视窗
命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,5
功能: 显示“控制面板-辅助选项-传统”选项视窗
命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl @1
功能: 执行“控制面板-添加新硬体”向导。
命令列: rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL AddPrinter
功能: 执行“控制面板-添加新印表机”向导。
命令列: rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,1
功能: 显示 “控制面板-添加/删除程式-安装/卸载” 面板。
命令列: rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,2
功能: 显示 “控制面板-添加/删除程式-安装Windows” 面板。
命令列: rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,3
功能: 显示 “控制面板-添加/删除程式-启动盘” 面板。
命令列: rundll32.exe syncui.dll,Briefcase_Create
功能: 在桌面上建立一个新的“我的公文包”。
命令列: rundll32.exe diskcopy.dll,DiskCopyRunDll
功能: 显示复制软碟视窗
命令列: rundll32.exe apwiz.cpl,NewLinkHere %1
功能: 显示“建立快捷方式”的对话框,所建立的快捷方式的位置由%1参数决定。
命令列: rundll32.exe shell32.dll,Control_RunDLL timedate.cpl,,0
功能: 显示“日期与时间”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL timedate.cpl,,1
功能: 显示“时区”选项视窗。
命令列: rundll32.exe rnaui.dll,RnaDial [某个拨号连接的名称]
功能: 显示某个拨号连接的拨号视窗。如果已经拨号连接,则显示目前的连接状态的视窗。
命令列: rundll32.exe rnaui.dll,RnaWizard
功能: 显示“新建拨号连接”向导的视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0
功能: 显示“显示属性-背景”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,1
功能: 显示“显示属性-萤屏保护”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,2
功能: 显示“显示属性-外观”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,3
功能: 显示显示“显示属性-属性”选项视窗。
命令列: rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL FontsFolder
功能: 显示Windows的“字体”档案夹。
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @3
功能: 同样是显示Windows的“字体”档案夹。
命令列: rundll32.exe shell32.dll,SHformatDrive
功能: 显示格式化软碟对话框。
命令列: rundll32.exe shell32.dll,Control_RunDLL joy.cpl,,0
功能: 显示“控制面板-游戏控制器-一般”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL joy.cpl,,1
功能: 显示“控制面板-游戏控制器-进阶”选项视窗。
命令列: rundll32.exe mshtml.dll,PrintHTML (HTML文档)
功能: 列印HTML文档。
命令列: rundll32.exe shell32.dll,Control_RunDLL mlcfg32.cpl
功能: 显示Microsoft Exchange一般选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @0
功能: 显示“控制面板-滑鼠” 选项 。
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @1
功能: 显示 “控制面板-键盘属性-速度”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @1,,1
功能: 显示 “控制面板-键盘属性-语言”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @2
功能: 显示Windows“印表机”档案夹。
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @3
功能: 显示Windows“字体”档案夹。
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @4
功能: 显示“控制面板-输入法属性-输入法”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL modem.cpl,,add
功能: 执行“添加新调制解调器”向导。
命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,0
功能: 显示“控制面板-多媒体属性-音频”属性页。
命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,1
功能: 显示“控制面板-多媒体属性-视频”属性页。
命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,2
功能: 显示“控制面板-多媒体属性-MIDI”属性页。
命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,3
功能: 显示“控制面板-多媒体属性-CD音乐”属性页。
命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,4
功能: 显示“控制面板-多媒体属性-设备”属性页。
命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl @1
功能: 显示“控制面板-声音”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL netcpl.cpl
功能: 显示“控制面板-网路”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL odbccp32.cpl
功能: 显示ODBC32资料管理选项视窗。
命令列: rundll32.exe shell32.dll,OpenAs_RunDLL
功能: 显示指定档案(driveath ilename)的“打开方式”对话框。
命令列: rundll32.exe shell32.dll,Control_RunDLL password.cpl
功能: 显示“控制面板-密码”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL powercfg.cpl
功能: 显示“控制面板-电源管理属性”选项视窗。
命令列: rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL
PrintersFolder
功能: 显示Windows“印表机”档案夹。(同rundll32.exe shell32.dll,Control_RunDLLmain.cpl @2)
命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,0
功能: 显示“控制面板-区域设置属性-区域设置”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,1
功能: 显示“控制面板-区域设置属性-数字”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,2
功能: 显示“控制面板-区域设置属性-货币”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,3
功能: 显示“控制面板-区域设置属性-时间”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,4
功能: 显示“控制面板-区域设置属性-日期”选项视窗。
命令列: rundll32.exe desk.cpl,InstallScreenSaver [萤屏保护档案名]
功能: 将指定的萤屏保护档案设置为Windows的屏保,并显示萤屏保护属性视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,0
功能: 显示“控制面板-系统属性-传统”属性视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,1
功能: 显示“控制面板-系统属性-设备管理器”属性视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,2
功能: 显示“控制面板-系统属性-硬体配置档案”属性视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,3
功能: 显示“控制面板-系统属性-性能”属性视窗。
命令列: rundll32.exe user.exe,restartwindows
功能: 强行关闭所有程式并重启机器。
命令列: rundll32.exe user.exe,exitwindows
功能: 强行关闭所有程式并关机。
命令列: rundll32.exe shell32.dll,Control_RunDLL telephon.cpl
功能: 显示“拨号属性”选项视窗
命令列: rundll32.exe shell32.dll,Control_RunDLL themes.cpl
功能: 显示“桌面主旨”选项面板
当然,不止是VisualBasic,象Delphi.VisualC 等其他程式设计语言也可以通过呼叫外部命令的方法来使用Rundll的这些功能,具体方法这里就不再详细叙述了。灵活的使用Rundll,一定会使你的程式设计轻轻松松,达到事半功倍的效果!
<关机快捷方式>
(1). 在桌面空白位置按鼠标右键 -> <新建> -> 选<快捷方式>
(2). 在<指令行>键入 rundll.exe user.exe,exitwindows
(3). 在<选择快捷方式 的名称>键入<关闭Window>或你想要的名称 -> 按<完成>
<重新启动快捷方式>
(1). 重复以上 (1)
(2). 在<指令行>键入 rundll.exe user.exe,restartwindowsexec
(3). 在<选择快捷方式的名称>键入<重新启动Restart>或你想要的名称 -> 按<完成> RUN - > cmd 或者command
[/code]
[color=#FF6600][size=3]33、--------------打开系统属性.bat---------------[/size][/color]
[code]
@echo off
start control sysdm.cpl
:: control命令打开控制面板[/code]
[color=#FF6600][size=3]34、--------------98下获取当前路径.bat---------------[/size][/color]
[code]
::getvar.bat
@if [%2]==[] goto help
@if [%1]==[/?] goto help
@if [%1]==[/h] goto help
@if [%1]==[invoke] prompt set %2=%3$_
@if [%1]==[invoke] goto end
@if [%temp%]==[] set temp=c:
@%comspec% /c %0 invoke %1 $%2>%TEMP%/tt.bat
@echo off
call %TEMP%/tt.bat
if "%3"=="" DEL %TEMP%/tt.bat
set CMDLINE=
goto end
:help
@echo off
echo.
echo GET.BAT V1.0 Lydong 030625
echo ===============================
echo get curver [Command]
echo get [/?] or [/h]
echo.
echo eg: get time t
echo get dosver v
echo.
echo Command:
echo T Current time
echo D Current date
echo P Current drive and path
echo V Windows version number
echo N Current drive
echo ===============================
echo.
:end
exit
:: GetVar.bat - Get from ';PROMPT'; text to environment variable
:: Will Sort - 10:29 2005-7-16 - CMD@XP/COMMAND@Win98/MSDOS6.22
@echo off
echo exit | %comspec% /k prompt set %1=%2$_:: > _GetVar.bat
call _GetVar.bat
for %%f in (_GetVar*.*) do del %%f[/code]
[color=#FF6600][size=3]35、--------------建立回收站.bat---------------[/size][/color]
[code]
@echo off
:: 建立回收站
:: Recycle位置可以随意放置,名字也可随便取
:: 如果在某个分区里建了多个带回收站功能的文件夹,那么它们指向的都是同一个位置
md %drv%:/Recycle>nul 2>nul
attrib s h %drv%:/Recycle>nul 2>nul
(echo [.ShellClassInfo]
echo CLSID={645FF040-5081-101B-9F08-00AA002F954E})>C:/tmp
copy c:/tmp %drv%:/Recycle/desktop.ini>nul 2>nul
del c:/tmp>nul 2>nul
attrib s h %drv%:/Recycle/desktop.ini[/code]
[color=#FF6600][size=3]36、--------------模拟2K开机进度条.bat---------------[/size][/color]
[code]
@echo off
setlocal enabledelayedexpansion
set /a b=81
set a=">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>================================================================================"
:back
cls
for /l %%i in (1,1,20) do @echo.
echo Loading Windows 2000...
set /a b-=1
echo !a:~%b%,80!
if !b! == 1 goto :eof
call :delay 80
goto back
:delay
set /a num=num 1
if %num% geq %1 (set num=) && goto :eof
goto delay
[/code]
[color=#FF6600][size=3]37、--------------判断驱动器类型.bat---------------[/size][/color]
[code]
@echo off
:: 检测本地存在的驱动器并判断类型
:: fsutil必须具备管理员权限才能够运行
:: code by pip modified by jm 2006-9-1、9-17
setlocal enabledelayedexpansion
for /f "delims=/" %%i in ('fsutil fsinfo drives^|find /v ""') do (
set var=%%i
set drive=!var:~-2!
fsutil fsinfo drivetype !drive!|find /i "CD-ROM">nul && echo !drive!
)
pause
goto :eof
@echo off
:: code by 3742668 2006-12-6 CMD@XP
set /p x=输入盘符:
for /f "skip=1" %%i in ('wmic logicaldisk where "deviceid='%x%:'" get Description 2^>nul') do set type=%%i
if not defined type set type=此驱动器不存在!
echo %x%:盘的类型为: %type%
pause>nul
goto :eof
对以下语句产生的 info.txt 进行提取就可以判断类型了,无需管理员权限
:: code by 3742668 2006-12-6 CMD@XP
start msinfo32 /categories componentsstoragedrives /report info.txt
[/code]
[color=#FF6600][size=3]38、--------------收集系统信息.bat---------------[/size][/color]
[code]
@echo off
:: code by 3742668 2006-9-23 CMD@XP
setlocal ENABLEDELAYEDEXPANSION
:start
call :getinfo
:loop
ping 127.1 -n 1 2>nul 1>nul
if "%diskfree%" == "" goto loop
call :write
start info.html
goto :eof
::**************************************************************
:: 采集信息
::**************************************************************
:getinfo
echo 正在采集信息,请稍候...
call :select "ip address" "ip"
call :select "Physical Address" "mac"
call :select "Default Gateway" "gateway"
call :select "DNS Servers" "dns"
call :select "Description" "netcard"
for /f "delims=" %%i in ('ver') do set "osver=%%i"
for /f "delims=" %%i in ('wmic logicaldisk where "Description='本地固定磁盘'" get caption^,freespace ^| findstr /v /i "caption"') do set "diskfree=!diskfree!%%ikb^^<br^^>"
goto :eof
::**************************************************************
:: 解析ipconfig命令输出通用函数
::**************************************************************
:select
for /f "tokens=2 delims=:" %%i in ('ipconfig /all ^| findstr /i /c:%1') do if "!%~2!" == "" set "%~2=%%i"
goto :eof
::**************************************************************
:: 生成网页格式文件
::**************************************************************
:write
>info.html echo ^<html^>^<center^>^<font size=10^>计算机信息^</font^>
>>info.html echo ^<p^>今天是%date%^<p^>
>>info.html echo ^<table width="40%%" border=1 bgcolor="darkcyan"^>
>>info.html echo ^<tr^>^<td width="25%%"^>用户名:^</td^>^<td^>%username%^</td^>^</tr^>
>>info.html echo ^<tr^>^<td width="25%%"^>计算机名:^</td^>^<td^>%userdomain%^</td^>^</tr^>
>>info.html echo ^<tr^>^<td width="25%%"^>IP地址:^</td^>^<td^>%ip%^</td^>^</tr^>
>>info.html echo ^<tr^>^<td width="25%%"^>MAC地址:^</td^>^<td^>%mac%^</td^>^</tr^>
>>info.html echo ^<tr^>^<td width="25%%"^>网关地址:^</td^>^<td^>%gateway%^</td^>^</tr^>
>>info.html echo ^<tr^>^<td width="25%%"^>DNS:^</td^>^<td^>%dns%^</td^>^</tr^>
>>info.html echo ^<tr^>^<td width="25%%"^>硬盘^<br^>剩余^<br^>空间^</td^>^<td^> %diskfree%^</td^>^</tr^>
>>info.html echo ^</table^>^<table width="40%%" border=1 bgcolor="darkcyan"^>
>>info.html echo ^<tr^>^<td^>^<font size=5^>您的操作系统版本号为:^</font^>^</td^>^</tr^>
>>info.html echo ^<tr^>^<td^>^<font size=4^>%osver%^</font^>^</td^>^</tr^>
>>info.html echo ^<tr^>^<td^>^<font size=5^>网卡型号:^</font^>^</td^>^</tr^>
>>info.html echo ^<tr^>^<td^>^<font size=4^>%netcard%^</font^>^</td^>^</tr^>
>>info.html echo ^</table^>^</center^>^</html^>
goto :eof[/code]
[color=#FF6600][size=3]39、--------------查程序的真实位置.bat---------------[/size][/color]
[code]
wmic process get caption,executablepath >1.txt
start 1.txt
pause
del 1.txt
[/code]
[color=#FF6600][size=3]40、--------------查看开机自启动程序的完整路径.bat---------------[/size][/color]
[code]
@echo off
:: 考虑到程序并非都安装在系统盘下,所以还要用!str:~-1!来截取盘符
:: 如果路径中含有N个中文字符的话,此路径的最后N个字符将不显示(一个中文字符占两个字符位)
:: code by jm 2006-7-27
setlocal enabledelayedexpansion
echo.
echo 开机自启动的程序有:
echo.
for /f "skip=4 tokens=1* delims=:" %%i in ('reg query HKLM/Software/Microsoft/Windows/CurrentVersion/Run') do (
set str=%%i
set var=%%j
set "var=!var:"=!"
if not "!var:~-1!"=="=" echo !str:~-1!:!var!
)
pause>nul
[/code]
[color=#FF6600][size=3]41、--------------检测光驱中是否有盘.bat---------------[/size][/color]
[code]
@echo off
:: 不能判断空白盘
:: code by electronixtar 2006-12-6
if exist //?/CdRom0/* (echo OK) else (echo NO)
pause[/code]
[color=#FF6600][size=3]42、--------------显示本机用户帐号信息.bat---------------[/size][/color]
[code]
@echo off
:: 显示本机用户帐号信息
:: code by jm 2006-11-25
cd.>netuser.txt
for /f "skip=4 tokens=1-3" %%i in ('net user') do (
if not "%%i"=="命令成功完成。" net use %%i>>netuser.txt 2>nul
if not "%%j"=="" net user %%j>>netuser.txt 2>nul
if not "%%k"=="" net user %%k>>netuser.txt 2>nul
)
start netuser.txt
pause
del netuser.txt
[/code]
[color=#FF6600][size=3]43、--------------用户列表.bat---------------[/size][/color]
[code]
@echo off
:: 提取当前计算机所有用户
for /f "skip=4 tokens=1-3" %%i in ('net user') do (
if not "%%i"=="命令成功完成。" if not "%%i"=="" echo %%i
if not "%%j"=="" echo %%j
if not "%%k"=="" echo %%k
)
pause[/code]
[color=#FF6600][size=3]44、--------------系统补丁安装程序.bat---------------[/size][/color]
[code]
@echo off
goto begin
把本脚本放在补丁目录下直接运行
注意:请保证补丁目录下没有1 2 3 4这四个文件夹
本脚本主体代码来源于网络,jm于2006-8-15进行了部分修改
号称for 98/ME/2000/XP/2003
只测试了XP和2003的系统
:begin
title 系统补丁自动安装程序
color 1f
md 1 2 3 4 >nul 2>nul
for %%i in (*.exe) do (
(findstr updfile %%i >nul 2>nul && move %%i 1) || (
findstr _sfx_cab_exe_package %%i >nul 2>nul && move %%i 2) || (
findstr update.exe %%i >nul 2>nul && move %%i 3) || (
findstr _sfx_cab_exe_path %%i >nul 2>nul && move %%i 4)
)
If not exist *.exe (goto auto_install) else (goto list)
:list
echo.
echo ========================================================
echo.
for %%i in (*.exe) do echo %%i 需要手动安装
echo.
echo ========================================================
echo.
echo 当可自动安装的补丁安装完毕之后,请手动安装上述补丁
:auto_install
echo.
echo ========================================================
echo.
echo 所有可自动安装的补丁已经被分别放在 目录 1 2 3 4 中。
echo.
echo 按任意键继续...
pause>nul
cd /d 1
for %%i in (*.exe) do start /wait %%i /q
cd /d 2
for %%i in (*.exe) do start /wait %%i /passive /norestart /o /n
cd /d 3
for %%i in (*.exe) do start /wait %%i -n -o -z
cd /d 4
for %%i in (*.exe) do start /wait %%i /passive /norestart /o /n[/code]
[color=#FF6600][size=3]45、--------------系统补丁自动安装.bat---------------[/size][/color]
[code]
@echo off
goto begain
把本脚本放在补丁目录下直接运行
注意:补丁目录下的1 2 3 4文件夹将被全新创建,请保证这四个文件夹内没有重要资料
本脚本主体代码来源于网络,jm于2006-8-15进行了部分修改
号称for 98/ME/2000/XP/2003
只测试了XP和2003的系统
:begain
title 系统补丁自动安装程序
color 1f
md 1 2 3 4 >nul 2>nul
for %%i in (*.exe) do (
(echo %%i|findstr "updfile">nul 2>nul && move %%i 1) || (
echo %%i|findstr "_sfx_cab_exe_package">nul 2>nul && move %%i 2) || (
echo %%i|findstr "update.exe">nul 2>nul && move %%i 3) || (
echo %%i|findstr "_sfx_cab_exe_path">nul 2>nul && move %%i 4)
)
If not exist *.exe (goto auto_install) else (goto list)
:list
echo.
echo ========================================================
echo.
for %%i in (*.exe) do echo %%i 需要手动安装
echo.
echo ========================================================
echo.
echo 当可自动安装的补丁安装完毕之后,请手动安装上述补丁
:auto_install
echo.
echo ========================================================
echo.
echo 所有可自动安装的补丁已经被分别放在 目录 1 2 3 4 中。
echo.
echo 按任意键继续...
pause>nul
cd /d 1
for %%i in (*.exe) do start /wait %%i /q
cd /d 2
for %%i in (*.exe) do start /wait %%i /passive /norestart /o /n
cd /d 3
for %%i in (*.exe) do start /wait %%i -n -o -z
cd /d 4
for %%i in (*.exe) do start /wait %%i /passive /norestart /o /n[/code]
[color=#FF6600][size=3]46、--------------系统补丁自动升级.bat---------------[/size][/color]
[code]
@echo off
rem South China Agriculture University
rem version 0.01
rem 使用介绍
rem 功能:试图设置自动连接校内Windows Update服务器
rem 先进行服务检查,没有安装服务的机器先安装服务,重启动后再修改设置
rem History
rem 2004-03-17 0.01b 全校公测
echo [INFO] For Windows 2000,Windows XP,Windows 2003 only.
echo [INFO] 只在Windows 2000,Windows XP,Windows 2003 上适用
echo [INFO] For Normal user only (computer that runs every day)
set Server=0
rem Server=1
pause
cls
rem 创建临时文件夹
set mhnet=%temp%/mhnet
rmdir /S /Q %mhnet% 2>NUL 1>NUL
mkdir %mhnet%
rem 系统语言环境判断
reg query HKLM/SYSTEM/CurrentControlSet/Control/Nls/Language >%mhnet%/Language.log
find "Default" %mhnet%/Language.log |find "0804" >NUL
IF NOT ERRORLEVEL 1 (
set Language=Chinese
) else (
set Language=English
)
if %Language%==Chinese (
echo [INFO] 本程序专为设置校内 Windows Automatic Updates 服务
) else (
echo [INFO] This will setup SCAU Windows Automatic Updates Services
)
start readme.txt
rem 检查配套文件完整性
call :AllFiles
rem 检查属于NT系列
call :CheckSystem
rem 检查拥有管理员权限
call :CheckAdmin
rem 检查Automatic Updates服务是否正常安装
call :CheckService
call :SCAURegImport
if %Language%==Chinese (
echo [INFO] 程序讨论,欢迎到 bbs.scau.edu.cn NC板
echo [INFO] 程序结束
) else (
echo [INFO] We welcome you to press your opinion on bbs.scau board:NC
echo [INFO] Program Exit
)
pause
set mhnet=
set patchfile=
set downloadurl=
goto :eof
exit
:ends
rem 主函数结束
rem *************************
rem *************************
rem 导入:SCAURegImport
rem *************************
rem *************************
:SCAURegImport
ECHO [INFO] 备份注册表(Backup Reg) %temp%
pushd %temp%
set BakFile1=AutoUpdateBak1.reg
set BakFile2=AutoUpdateBak2.reg
if exist %BakFile1% (
ECHO [INFO] 已经安装了本补丁,按任意键删除原有备份
PAUSE
delete %BakFile1% /f /q >NUL 2>NUL
delete %BakFile2% /f /q >NUL 2>NUL
)
popd
pushd %mhnet%
reg EXPORT "HKLM/Software/Microsoft/Windows/CurrentVersion/WindowsUpdate/Auto Update" %BakFile1% 1>NUL
reg EXPORT "HKLM/Software/Policies/Microsoft/Windows/WindowsUpdate" %BakFile2% 1>NUL
move %BakFile1% %temp% >NUL
move %BakFile2% %temp% >NUL
set BakFile1=
set BakFile2=
popd
ECHO [INFO] 正在停止WindowsUpdate服务(Stopping Update service)......
net stop wuauserv >NUL 2>NUL
ECHO [INFO] 正在修改注册表操作(Modifying Registry)......
ECHO Y |reg DELETE "HKLM/Software/Microsoft/Windows/CurrentVersion/WindowsUpdate/Auto Update" /va /f >NUL
reg add HKLM/Software/Policies/Microsoft/Windows/WindowsUpdate /v WUServer /t REG_SZ /d "http://sus.scau.edu.cn" /f >NUL
reg add HKLM/Software/Policies/Microsoft/Windows/WindowsUpdate /v WUStatusServer /t REG_SZ /d "http://sus.scau.edu.cn" /f >NUL
reg add HKLM/Software/Policies/Microsoft/Windows/WindowsUpdate/AU /v NoAutoRebootWithLoggedOnUsers /t REG_DWORD /d 1 /f >NUL
reg add HKLM/Software/Policies/Microsoft/Windows/WindowsUpdate/AU /v NoAutoUpdate /t REG_DWORD /d 0 /f >NUL
reg add HKLM/Software/Policies/Microsoft/Windows/WindowsUpdate/AU /v RescheduleWaitTime /t REG_DWORD /d 1 /f >NUL
reg add HKLM/Software/Policies/Microsoft/Windows/WindowsUpdate/AU /v ScheduledInstallDay /t REG_DWORD /d 0 /f >NUL
reg add HKLM/Software/Policies/Microsoft/Windows/WindowsUpdate/AU /v UseWUServer /t REG_DWORD /d 1 /f >NUL
if %Server%==1 (
ECHO [INFO] Automatic Updates Service installed for server
reg add HKLM/Software/Policies/Microsoft/Windows/WindowsUpdate/AU /v AUOptions /t REG_DWORD /d 4 /f >NUL
reg add HKLM/Software/Policies/Microsoft/Windows/WindowsUpdate/AU /v ScheduledInstallTime /t REG_DWORD /d 11 /f >NUL
) else (
ECHO [INFO] Automatic Updates Service installed for non-server
reg add HKLM/Software/Policies/Microsoft/Windows/WindowsUpdate/AU /v AUOptions /t REG_DWORD /d 2 /f >NUL
reg add HKLM/Software/Policies/Microsoft/Windows/WindowsUpdate/AU /v ScheduledInstallTime /t REG_DWORD /d 12 /f >NUL
)
rem 服务自动启动
ECHO [INFO] 设置服务为自动启动(Set service to automatic start)
reg add HKLM/SYSTEM/CurrentControlSet/Services/wuauserv /v Start /t REG_DWORD /d 2 /f >NUL
reg add HKLM/SYSTEM/CurrentControlSet/Services/BITS /v Start /t REG_DWORD /d 2 /f >NUL
ECHO [INFO] 正在重新启动WindowsUpdate服务(Starting Update Service)......
net start bits >NUL 2>NUL
net start wuauserv >NUL 2>NUL
goto :eof
rem *************************
rem *************************
rem 停止/删除服务函数
rem *************************
rem *************************
:StopService
set SrvName=%1
net stop %SrvName% >NUL >NUL2
reg query HKLM/SYSTEM/CurrentControlSet/Services//%SrvName% >NUL
if not errorlevel 1 (
reg delete HKLM/SYSTEM/CurrentControlSet/Services//%SrvName% /f >NUL
) ELSE (
if %Language%==Chinese (
echo [FAIL] 系统服务: %SrvName% *没找到*
) else (
echo [FAIL] System Service: %SrvName% Not Found
)
)
goto :eof
rem *************************
rem *************************
rem 判断是否NT系列系统,win9x系统则退出
rem *************************
rem *************************
:CheckSystem
if NOT %OS%==Windows_NT (
if %Language%==Chinese (
echo [INFO] 本程序专为中文/英文版本的Win2000,WinXP,Win2003设计
echo [FAIL] Windows 95, Windows 98, Windows ME的用户不必运行
echo [INFO] 程序退出。
) else (
echo [INFO] Design for Win2k,WinXP,Win2003 with Chinese or English version only.
echo [FAIL] Windows 95,Windows 98, Windows ME will not be troubled by this bug.
echo [INFO] Thank you for checking. Please deliver this to someone who need it.
)
pause
exit
) else (
if %Language%==Chinese (
echo [INFO] 用户使用基于WindowsNT内核的系统,
) else (
echo [INFO] You are using a system based on WindowsNT kernel,
)
)
goto :eof
rem *************************
rem *************************
rem 判断是否NT系列系统,win9x系统则退出
rem *************************
rem *************************
:CheckAdmin
net user "%username%" 1> %mhnet%/ifadmin.log
rem 如果不是系统管理员
find "*Administrators " %mhnet%/ifadmin.log >NUL
IF ERRORLEVEL 1 (
if %Language%==Chinese (
echo [FAIL] 用户不是系统管理员组成员 ,不能执行相应程序
echo [INFO] 请更换有足够权限的用户重新运行本程序
) else (
echo [FAIL] This program require administrator right to continue
echo [INFO] Please switch user and try again
)
pause
exit
goto :eof
) else (
if %Language%==Chinese (
echo [INFO] 用户属于系统管理员组,
) else (
echo [INFO] You have got the right of administrator,
)
)
goto :eof
rem *************************
rem *************************
rem 先进行补丁检查,没有安装补丁的机器先安装补丁,重启动后再查杀病毒
rem *************************
rem *************************
:CheckService
rem if %Language%==Chinese (
rem echo [INFO] 检查 Automatic Updates
rem ) else (
rem echo [INFO] Checking Automatic Updates Service
rem )
rem 检查服务的注册表值
reg query "HKLM/SYSTEM/CurrentControlSet/Services" >%mhnet%/Services.log
find "wuauserv" %mhnet%/Services.log >NUL
IF ERRORLEVEL 1 (
rem 您的计算机未安装Automatic updates服务
call :InstallService
pause
exit
rem 中止执行
) ELSE (
rem if %Language%==Chinese (
rem echo [INFO] 注册表检查显示您的系统已经安装了wuauserv服务。
rem ) else (
rem echo [INFO] reg reports that your system has wuauserv service installed
rem )
)
goto :eof
rem *************************
rem *************************
rem 清空注册表某/Run值
rem *************************
rem *************************
:CleanRun
reg delete HKLM/Software/Microsoft/Windows/CurrentVersion/Run//%1 /f >NUL
goto :eof
rem *************************
rem *************************
rem 停止不安全服务
rem *************************
rem *************************
:StopUnSafeSrv
rem net stop %1 >NUL
reg add HKLM/SYSTEM/CurrentControlSet/Services//%1 /v Start /t REG_DWORD /d 0x3 /f >NUL
goto :eof
rem *************************
rem *************************
rem 导入正常注册表的execute文件关联
rem *************************
rem *************************
:Regdefault
reg import regdefault.reg >NUL
goto :eof
rem *************************
rem *************************
rem 安装wuauserv包
rem *************************
rem *************************
:InstallService
rem reg query HKLM/SYSTEM/CurrentControlSet/Control/Nls/Language >%mhnet%/Language.log
rem 中文系统
find "InstallLanguage" %mhnet%/Language.log |find "0804" >NUL
IF NOT ERRORLEVEL 1 (CALL :CNService )
rem 英文系统
find "InstallLanguage" %mhnet%/Language.log |find "0409" >NUL
IF NOT ERRORLEVEL 1 (CALL :ENService )
rem 其他语言包,以上语言包虽用call调用,但不希望返回
if %Language%==Chinese (
echo [FAIL] 你并未使用中文/英文操作系统,
echo [INFO] 请记下下面显示的InstallLanguage及Default的值,请到微软网站下载相应服务
echo [INFO] 程序退出
) else (
echo [FAIL] You are not using windows with Chinese/English language
echo [INFO] We suggest you download the service from microsoft website.
echo [INFO] Please write down the InstallLanguage & Default value for later use.
echo [INFO] program terminated
)
find "InstallLanguage" %mhnet%/Languate.log
start http://www.microsoft.com/downloads/details.aspx?FamilyID=799432fb-c196-4f0