100条核心CMD运维命令大全,效率拉满!

2025-09-22 09:13:13 RAIZ

 

一、命令行在Windows运维中的不可替代性

在图形化界面占据主流的今天,许多新手运维工程师可能认为命令行(CMD)已退出历史舞台。然而真正的运维老兵深知:命令行才是Windows系统管理的底层基石。当服务器出现故障、远程连接卡顿或需批量操作时,一行精准的CMD命令往往比鼠标点击高效十倍。本文将系统梳理100条核心CMD命令,涵盖从基础操作到高阶排障的全场景应用,助你成为Windows运维效率专家。


二、精选100条核心命令详解(按功能分类)

▍1. 系统信息与状态监控(12条)

systeminfo        # 获取系统详细配置(OS版本/内存/补丁等)
wmic memorychip get capacity  # 查看内存条容量(单位:字节)
tasklist /svc     # 显示进程及关联服务(定位资源占用关键命令)
perfmon /res      # 打开实时性能监控仪表盘
driverquery /v    # 列出所有已加载驱动及其属性
ver               # 快速获取操作系统版本
hostname          # 显示当前计算机名称(远程排查必备)
time /t           # 仅输出当前时间(脚本日志常用)
whoami /priv      # 显示当前用户权限(判断管理员身份)
wmic cpu get name,numberofcores  # 获取CPU型号与核心数
wmic os get lastbootuptime  # 查询上次系统启动时间
chcp 65001        # 切换控制台编码为UTF-8(解决中文乱码)

▍2. 磁盘管理与文件操作(15条)

chkdsk /f D:      # 强制修复D盘文件系统错误
diskpart          # 进入磁盘分区工具(需配合脚本自动化)
robocopy C:\logs D:\backup /MIR /MT:16  # 多线程镜像备份
fsutil file createnew testfile.txt 1048576  # 创建1MB空文件(测试磁盘速度)
icacls "C:\Program Files" /grant Administrators:(OI)(CI)F  # 递归授权
compact /c /s /a  # 启用NTFS压缩并应用到所有子目录
defrag C: /U /V   # 可视化分析磁盘碎片情况
vssadmin list shadows  # 查看卷影副本(恢复误删文件依据)
takeown /f "C:\lockedfile.dll" /r  # 强制获取文件所有权
tree /F > dir_tree.txt  # 导出目录树到文本文件
where /r C:\ *.config  # 全盘递归搜索.config文件
cipher /w:C       # 彻底擦除C盘剩余空间(安全清除)
wmic logicaldisk get size,freespace,caption  # 查看所有分区容量
subst X: "D:\Projects"# 虚拟磁盘映射(临时路径简化)
attrib +h +s "secret.txt"  # 添加隐藏和系统文件属性

▍3. 网络诊断与配置(18条)

ipconfig /all     # 获取完整TCP/IP配置(MAC/DNS等)
arp -a            # 显示ARP缓存表(定位IP冲突)
netstat -ano | findstr :443  # 检查443端口占用进程
tracert -d 8.8.8.8 # 禁用反向解析加速路由跟踪
netsh interface show interface  # 列出所有网络接口状态
netsh wlan show profiles        # 显示保存的WiFi配置文件
pathping www.microsoft.com      # 结合ping+tracert的增强诊断
route print      # 打印路由表(VPN故障必查)
telnet smtp.163.com 25  # 测试邮件服务器连通性(需启用功能)
netsh advfirewall set allprofiles state off  # 临时关闭防火墙(排障用)
nslookup -type=mx baidu.com     # 查询邮件交换记录
getmac /v /fo list              # 列出所有网卡的MAC地址
netsh http show iplisten        # 检查HTTP服务监听IP
ping -f -l 1472 www.baidu.com   # 测试MTU值(分片检测)
net use Z: \\192.168.1.100\share /user:admin password  # 映射网络驱动器
netsh int ip set dns "以太网" static 8.8.8.8  # 设置静态DNS
wmic nic where NetEnabled=true get name, speed  # 查看网卡速率

典型排障案例:某服务器远程桌面卡顿,通过netstat -ano发现大量TIME_WAIT连接,配合taskkill /PID <id> /F终止异常进程后恢复

▍4. 服务与进程控制(10条)

sc query WinDefend  # 查询Windows Defender服务状态
sc config DiagTrack start= disabled  # 禁用诊断跟踪服务(隐私优化)
taskkill /IM chrome.exe /T /F  # 强制终止Chrome进程树
wmic process where name="sqlservr.exe" get commandline  # 查看进程启动参数
start /min notepad.exe  # 最小化启动记事本
schtasks /query /fo LIST /v  # 列出所有计划任务详情
sc failure Winmgmt reset= 30 actions= restart/60000  # 设置服务崩溃自启
tasklist /m dllname.dll  # 查找加载特定dll的进程
timeout /t 10 /nobreak  # 暂停10秒(脚本流程控制)
wmic process call create "cmd.exe"  # 创建新进程(带返回对象)

▍5. 用户与权限管理(9条)

net user Tech2025 /add /expires:2026-01-01  # 创建带过期时间的用户
net localgroup "Remote Desktop Users" User01 /add  # 添加远程桌面权限
runas /user:admin "mmc.exe"  # 以管理员身份运行控制台
qwinsta          # 查看当前远程会话(同query session)
msg * "服务器将在5分钟后重启!"  # 向所有用户发送通知
net accounts /lockoutthreshold:3  # 设置账户锁定阈值(安全策略)
whoami /groups   # 显示当前用户所属组
net user %username% /logonpasswordchg:yes  # 强制下次登录改密码
lusrmgr.msc      # 打开本地用户管理器(虽然非CMD但运维必知)

▍6. 注册表与系统配置(8条)

reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName  # 查询注册表键值
reg add "HKLM\System\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f  # 启用远程桌面
reg save HKLM\SAM sam.bak  # 备份SAM注册表项(需管理员)
regini system.ini          # 通过INI文件批量修改注册表
powercfg /h off            # 关闭休眠文件(释放C盘空间)
bcdedit /set {current} safeboot minimal  # 设置下次启动为安全模式
auditpol /get /category:*  # 查看审计策略设置
wmic recoveros set autoreboot = false    # 禁止系统失败自动重启

▍7. 批处理与自动化(14条)

for /f "tokens=2 delims=:" %i in ('ipconfig ^| findstr "IPv4"'do set ip=%i  # 提取本机IP到变量
for /r D:\ %i in (*.bak) do del "%i"  # 递归删除所有备份文件
if exist "C:\logs\" (echo Log folder exists) else (mkdir C:\logs)
set /p var=请输入内容:  # 用户输入赋值给变量
call :subroutine  # 调用子程序标签
:subroutine
echo This is a subroutine
exit /b

自动化脚本示例(清理30天前日志):

@echo off
setlocal enabledelayedexpansion
set log_path=C:\app\logs
set backup_path=D:\archive
set days=30

forfiles /p %log_path% /s /m *.log /d -%days% /c "cmd /c echo Deleting @file... && del @file"
robocopy %log_path% %backup%\%date:~0,4%-%date:~5,2% /LOG:backup.log

▍8. 远程管理与维护(14条)

wmic /node:"192.168.1.100" process call create "cmd.exe"  # 远程执行命令
psloggedon \\server01    # 查看谁登录了目标服务器(需Sysinternals工具)
shutdown /r /m \\filesvr01 /t 60 /c "计划维护重启"  # 远程重启
sc \\dc01 query termservice  # 远程查询服务状态
net view \\client-pc      # 查看远程计算机共享资源
wmic /user:admin /password:p@ssw0rd /node:SERVER bios get serialnumber  # 带凭证远程获取序列号
certutil -urlcache * delete  # 清除证书缓存(解决SSL错误)
gpresult /h gp_report.html  # 导出组策略结果报告
dcdiag /s:dc01 /v /c /q  # 域控制器诊断(AD运维必用)
repadmin /syncall /A /e /q  # 强制所有域控制器同步

三、运维实战场景案例解析

场景1:服务器异常关机后的快速检查清单

  1. 1. 系统日志定位eventvwr.msc 查看系统日志中崩溃事件ID
  2. 2. 磁盘检查chkdsk /scan /perf 并行扫描不阻塞系统
  3. 3. 服务恢复sc query state=inactive 列出未运行服务并手动启动
  4. 4. 资源监控perfmon /sys 打开系统性能计数器

场景2:批量创建200台新设备初始化脚本

@echo off
:: 初始化配置脚本 - 适用于Windows 10/11/Server
set hostname=WS-%RANDOM%
wmic computersystem where "name='%COMPUTERNAME%'" call rename name="%hostname%"
netsh advfirewall set domainprofile state off
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v EnableLUA /t REG_DWORD /d 0 /f
wmic useraccount where "name='Administrator'" set PasswordExpires=FALSE

四、命令行进阶技巧

1. 强大的管道组合

# 统计当前目录文件数量(按扩展名分组)
dir /b | findstr /v "^[0-9]" | awk -F"." "{print $NF}" | sort | uniq -c

# 实时监控新建文件(可用于入侵检测)
powershell -command "& {Get-ChildItem -Path C:\Windows\Temp -Recurse -Filter *.exe -Force | % { $_.FullName }}"

2. 常用命令替代方案

传统命令
增强版工具
优势
ping
psPing
支持TCP/UDP压测
netstat
TCPView
图形化连接监控
tasklist
Process Explorer
进程树分析

我要咨询