欢迎来到CMD脚本第四课!今天我们将学习注册表修改和网络管理两大高级功能,让你的脚本具备系统级控制能力。
1. 注册表操作(reg命令)
Windows注册表是系统的核心数据库,通过reg
命令可以安全地读写键值。
(1) 常用操作语法
操作类型 | 命令格式 |
---|---|
查询键值 | reg query 键路径 /v 值名称 |
添加键值 | reg add 键路径 /v 值名称 /t 类型 /d 数据 /f |
删除键值 | reg delete 键路径 /v 值名称 /f |
备份注册表 | reg export 键路径 文件名.reg |
关键参数:
/t
类型:REG_SZ
(字符串)、REG_DWORD
(数字)、REG_BINARY
(二进制)/f
强制操作不提示
(2) 实战示例
示例1:禁用USB存储设备
@echo off
reg add "HKLM\SYSTEM\CurrentControlSet\Services\USBSTOR" /v "Start" /t REG_DWORD /d 4 /f
echo USB存储设备已禁用(需要重启生效)
示例2:修改IE主页
@echo off
reg add "HKCU\Software\Microsoft\Internet Explorer\Main" /v "Start Page" /t REG_SZ /d "https://www.bing.com" /f
示例3:查询系统安装时间
@echo off
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "InstallDate"
pause
2. 网络管理
(1) 基础网络命令
命令 | 作用 | 示例 |
---|---|---|
ping |
测试网络连通性 | ping www.baidu.com -t |
ipconfig |
查看IP配置 | ipconfig /all |
netsh |
高级网络配置 | netsh interface show config |
netstat |
查看网络连接状态 | netstat -ano |
(2) netsh 高级应用
示例1:备份网络配置
@echo off
netsh -c interface dump > C:\backup\netcfg.txt
echo 网络配置已备份
示例2:设置静态IP
@echo off
netsh interface ip set address "以太网" static 192.168.1.100 255.255.255.0 192.168.1.1
netsh interface ip set dns "以太网" static 8.8.8.8
echo 静态IP设置完成
示例3:启用/禁用网卡
@echo off
netsh interface set interface "以太网" disable
timeout /t 3 >nul
netsh interface set interface "以太网" enable
echo 网卡已重置
3. 安全注意事项
- 注册表操作风险:
- 修改前务必备份:
reg export 键路径 backup.reg
- 避免修改不熟悉的键值
- 修改前务必备份:
- 网络操作权限:
- 部分命令需要管理员权限
- 推荐添加权限检查:
@echo off net session >nul 2>&1 || ( echo 请以管理员身份运行! pause exit /b 1 )
4. 综合案例
网络诊断脚本
@echo off
echo 正在执行网络诊断...
echo %date% %time% > network_report.txt
echo ====IP配置==== >> network_report.txt
ipconfig /all >> network_report.txt
echo ====网络连通性==== >> network_report.txt
ping www.baidu.com -n 4 >> network_report.txt
echo ====开放端口==== >> network_report.txt
netstat -ano >> network_report.txt
echo 诊断报告已保存到 network_report.txt
start notepad network_report.txt
5. 练习任务
- 写一个脚本:检查系统是否启用了远程桌面,如果没有则启用
- 挑战任务:创建WiFi连接脚本(需处理SSID和密码参数)
练习答案
任务1:远程桌面控制
@echo off
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections | find "0x0" >nul
if %errorlevel%==1 (
echo 正在启用远程桌面...
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
echo 已启用,需重启生效
) else (
echo 远程桌面已启用
)
任务2:WiFi连接脚本
@echo off
if "%~2"=="" (
echo 用法:connect_wifi.cmd SSID 密码
exit /b
)
netsh wlan connect name="%~1" ssid="%~1" keyMaterial="%~2"
if %errorlevel%==0 (
echo 已连接至 %~1
) else (
echo 连接失败!
)
6. 下一步学习
- 第五课:与PowerShell混合编程
- 第六课:计划任务与系统服务管理
掌握这些系统级操作后,你的脚本将能实现专业级的自动化控制!遇到问题随时提问。 🌐🔧
这一切,似未曾拥有