Windows Server 系统命令行常用运维指令汇总

2026-03-21 12:30:37 507阅读

Windows Server 系统命令行常用运维指令汇总(2024 实用精简版)

在企业级 IT 基础设施中,Windows Server 仍是核心服务器平台之一。尽管图形界面操作直观,但命令行(CMD 与 PowerShell)凭借其可脚本化、批量处理、远程管理及低资源开销等优势,始终是系统管理员日常运维的必备技能。本文系统梳理 Windows Server(2016/2019/2022)环境下高频使用的命令行指令,涵盖系统信息、服务管理、网络诊断、磁盘与存储、用户与权限、日志查看六大维度,兼顾 CMD 兼容性与 PowerShell 功能增强,助您高效完成日常巡检、故障排查与自动化任务。

一、系统状态与基础信息

快速确认服务器运行环境是所有运维动作的前提。以下指令适用于 CMD 和 PowerShell:

:: 查看系统版本、架构与安装时间
systeminfo | findstr /C:"OS Name" /C:"OS Version" /C:"System Type" /C:"Original Install Date"

:: 查看当前登录用户及会话状态
query session

:: 查看系统启动时间(精确到秒)
net statistics server | findstr "Statistics"

PowerShell 提供更结构化输出,推荐在新环境中优先使用:

# 获取操作系统详细信息(含补丁级别)
Get-ComputerInfo | Select-Object OsName, OsVersion, OsArchitecture, WindowsBuildLabEx, OsInstallDate

# 查看最近一次重启时间
Get-WinEvent -FilterHashtable @{LogName='System'; ID=12; ProviderName='Microsoft-Windows-Kernel-General'} -MaxEvents 1 | 
  ForEach-Object { $_.TimeCreated }

二、服务与进程管理

服务异常是常见故障源。需熟练启停、查询及设为自启:

:: 列出所有服务状态(按状态分组显示)
sc queryex type= service state= all | findstr "SERVICE_NAME STATE"

:: 启动/停止指定服务(如 DNS 服务)
net start dns
net stop dns

:: 设置服务启动类型:自动(auto)、手动(demand)、禁用(disabled)
sc config Dhcp start= auto

PowerShell 操作更安全且支持管道过滤:

# 查询未运行的关键服务(DNS、DHCP、W3SVC)
Get-Service -Name DNS, Dhcp, W3SVC | Where-Object Status -ne 'Running' | 
  Start-Service -PassThru

# 查看占用 CPU >50% 的前5个进程
Get-Process | Sort-Object CPU -Descending | Select-Object -First 5 Name, CPU, Id, StartTime

三、网络连通与配置诊断

网络问题占运维工单半数以上。需掌握多层诊断能力:

:: 测试端口连通性(需 Telnet 客户端已启用)
telnet 192.168.1.100 3389

:: 查看本地所有监听端口及对应进程
netstat -ano | findstr :443

:: 刷新 DNS 缓存并重注册客户端记录
ipconfig /flushdns
ipconfig /registerdns

PowerShell 提供更现代的网络工具集:

# 测试 TCP 端口(无需 Telnet,Win10/Server 2016+ 原生支持)
Test-NetConnection -ComputerName 192.168.1.100 -Port 3389 -InformationLevel Quiet

# 获取 IPv4 路由表并筛选默认网关条目
Get-NetRoute -DestinationPrefix "0.0.0.0/0" | Select-Object InterfaceAlias, NextHop, DestinationPrefix

四、磁盘与存储管理

磁盘空间告警、卷状态异常需及时响应:

:: 快速查看各驱动器使用率(单位:GB)
wmic volume get name,capacity,usedspace,freespace /format:table

:: 检查 C 盘错误(不自动修复,仅扫描)
chkdsk C: /f /x

PowerShell 支持精细化存储操作:

# 获取所有卷信息,筛选剩余空间 <10GB 的卷
Get-Volume | Where-Object {$_.SizeRemaining -lt 10GB} | 
  Select-Object DriveLetter, FileSystemLabel, SizeRemaining, Size

# 扩展 D 盘至最大可用空间(要求后续有连续未分配空间)
Resize-Partition -DriveLetter D -Size (Get-PartitionSupportedSize -DriveLetter D).SizeMax

五、用户、组与权限管理

权限配置直接影响系统安全性:

:: 创建本地用户并设置密码永不过期
net user admin1 P@ssw0rd123 /add /expires:never /passwordchg:no

:: 将用户加入管理员组
net localgroup administrators admin1 /add

:: 查看某用户所属全部组
net user admin1 | findstr "Members"

PowerShell 提供更严格的权限控制:

# 创建用户并强制首次登录修改密码
New-LocalUser -Name "svc-backup" -Password (ConvertTo-SecureString "Temp!2024" -AsPlainText -Force) -PasswordNeverExpires $true -UserMayNotChangePassword $false

# 授予对 D:\data 的读取与执行权限(继承至子项)
icacls "D:\data" /grant "DOMAIN\BackupTeam:(OI)(CI)RX"

六、事件日志快速分析

日志是定位故障的“黑匣子”:

:: 导出系统日志最后100条到文本(便于离线分析)
wevtutil qe System /c:100 /f:text > system_recent.log

PowerShell 日志查询更灵活:

# 查询过去24小时内系统日志中的错误与警告(ID 1,2,1001 等)
$Since = (Get-Date).AddHours(-24)
Get-WinEvent -FilterHashtable @{
  LogName='System'
  Level=@(2,3) # 2=Error, 3=Warning
  StartTime=$Since
} -MaxEvents 50 | 
  Select-Object TimeCreated, Id, LevelDisplayName, ProviderName, Message | 
  Format-Table -Wrap -AutoSize

结语

命令行并非过时技术,而是 Windows Server 运维的底层支柱。本文所列指令均经实际环境验证,覆盖 90% 以上日常场景。建议管理员建立标准化检查清单(如每日 systeminfo + Get-Service + Get-Volume + Get-WinEvent 组合),并逐步将重复操作封装为 .ps1 脚本。记住:熟练使用命令行,不是为了替代图形界面,而是为了在 GUI 不可用、远程桌面中断或大规模批量操作时,依然能稳握系统控制权。持续练习、善用帮助(Get-Help cmdlet -Examples)、注重权限最小化原则,方能在复杂环境中从容应对各类挑战。

文章版权声明:除非注明,否则均为Dark零点博客原创文章,转载或复制请以超链接形式并注明出处。

目录[+]