Windows Server 常用管理脚本白帽子实战版作为一名白帽子在渗透测试、安全运维、应急响应过程中Windows Server 是绕不开的目标。一套顺手、高效的管理脚本能让你快速获取服务器状态、定位风险点、执行安全加固甚至在中标后迅速搜集信息、维持权限。本文整理自一线运维实战经验涵盖系统巡检、服务控制、磁盘清理、定时任务、远程桌面加固、日志取证、权限审计、端口监控等高频场景所有脚本均为.bat格式开箱即用。注生产环境操作需谨慎建议先在测试环境验证。通用前提所有脚本保存为.bat格式编码必须选择ANSI避免中文乱码执行前替换脚本中的自定义参数如路径、服务名、阈值等涉及重启、删除、禁用等关键操作务必在测试环境验证。一、Windows Server 核心管理脚本1. 服务器状态一键巡检运维/渗透必备功能批量采集系统版本、CPU/内存、磁盘空间、开机时间、关键服务状态、CPU 前 5 进程生成日期命名报告便于快速排查问题或搜集目标信息。echo off chcp 65001 nul 21 set reportServer_Check_Report_%date:~0,4%%date:~5,2%%date:~8,2%.txt echo Windows Server 巡检报告 %report% echo 生成时间%date% %time% %report% echo 服务器名称%COMPUTERNAME% %report% echo 登录用户%USERNAME% %report% echo. %report% echo 1. 系统版本/位数 %report% systeminfo | findstr /i 操作系统名称 系统类型 %report% echo. %report% echo 2. CPU/内存使用情况 %report% wmic cpu get name, loadpercentage /format:list %report% wmic OS get TotalVisibleMemorySize, FreePhysicalMemory /format:list %report% echo. %report% echo 3. 磁盘空间 (GB) %report% wmic logicaldisk where drivetype3 get caption, freespace, size /format:list %report% echo. %report% echo 4. 开机时间/运行时长 %report% systeminfo | findstr /i 系统启动时间 %report% echo. %report% echo 5. 关键服务状态 (可自定义) %report% for %%s in (WinRM W3SVC MSSQLSERVER TermService) do ( sc query %%s | findstr /i SERVICE_NAME STATE %report% ) echo. %report% echo 6. 占用CPU前5的进程 %report% wmic process get name, processid, percentprocessortime | sort /r /25 | findstr /v percentprocessortime | more 1 %report% echo 巡检完成报告保存至%cd%\%report% pause白帽子视角快速获取目标服务器的软硬件指纹操作系统、CPU、磁盘、服务定位高 CPU 进程可用于识别异常挖矿进程服务列表可替换为常见数据库/中间件快速确认目标开放的服务角色。2. 服务批量管理启/停/重启/设为自动功能对核心服务IIS、数据库、远程桌面批量操作适合应急启停或权限维持。echo off chcp 65001 nul 21 setlocal enabledelayedexpansion :: 自定义服务列表可替换为 Tomcat、MySQL80 等 set service_listW3SVC TermService MSSQLSERVER WinRM echo 服务批量管理 echo 请选择操作 echo 1. 启动所有指定服务 echo 2. 停止所有指定服务 echo 3. 重启所有指定服务 echo 4. 设置服务为自动启动 set /p opt请输入数字1-4 if %opt%1 ( for %%s in (%service_list%) do ( echo 启动服务%%s net start %%s nul 21 if !errorlevel! equ 0 (echo 成功) else (echo 失败/已启动) ) ) else if %opt%2 ( for %%s in (%service_list%) do ( echo 停止服务%%s net stop %%s /y nul 21 if !errorlevel! equ 0 (echo 成功) else (echo 失败/已停止) ) ) else if %opt%3 ( for %%s in (%service_list%) do ( echo 重启服务%%s net stop %%s /y nul 21 timeout /t 2 /nobreak nul net start %%s nul 21 if !errorlevel! equ 0 (echo 成功) else (echo 失败) ) ) else if %opt%4 ( for %%s in (%service_list%) do ( echo 设置 %%s 为自动启动 sc config %%s start auto nul 21 if !errorlevel! equ 0 (echo 成功) else (echo 失败) ) ) else ( echo 输入错误请重新运行 ) echo 操作完成 pause白帽子视角渗透测试中可快速关闭安全软件服务如 Windows Defender、AV 进程权限维持时可确保后门服务开机自启应急响应时一键重启业务服务快速恢复被破坏的应用。3. 磁盘空间监控与清理预警自动清理功能监控指定磁盘剩余空间低于阈值时自动清理临时文件、日志文件防止业务因磁盘满而宕机。echo off chcp 65001 nul 21 setlocal enabledelayedexpansion :: 自定义配置 set monitor_diskC: :: 要监控的磁盘 set warning_threshold10 :: 剩余空间低于10GB时预警 set temp_paths%temp% C:\Windows\Temp :: 要清理的临时目录 set log_pathsC:\Windows\Logs\*.log :: 要清理的日志文件 echo 磁盘空间监控与清理 :: 获取磁盘剩余空间单位GB for /f tokens3 %%a in (dir %monitor_disk% /-c ^| findstr /i 可用字节) do ( set free_space%%a :: 转换为GB1GB1073741824 set /a free_space_gb!free_space!/1073741824 ) echo %monitor_disk% 剩余空间!free_space_gb! GB if !free_space_gb! lss %warning_threshold% ( echo 警告%monitor_disk% 剩余空间低于 %warning_threshold%GB开始清理... :: 清理临时文件 echo 1. 清理临时文件... for %%p in (%temp_paths%) do ( del /f /s /q %%p\*.* nul 21 rd /s /q %%p nul 21 md %%p nul 21 ) :: 清理日志文件 echo 2. 清理日志文件... del /f /s /q %log_paths% nul 21 :: 重新获取剩余空间 for /f tokens3 %%a in (dir %monitor_disk% /-c ^| findstr /i 可用字节) do ( set new_free_space%%a set /a new_free_space_gb!new_free_space!/1073741824 ) echo 清理完成%monitor_disk% 剩余空间!new_free_space_gb! GB ) else ( echo 磁盘空间正常无需清理。 ) pause白帽子视角在获得权限后可清理操作痕迹用户临时目录、日志文件降低被溯源风险日志清理路径可扩展至%SystemRoot%\System32\winevt\LogsWindows 事件日志需提权操作阈值可调小避免清理动作本身产生大量告警。4. 定时任务管理创建/删除/查询功能通过命令行快速创建、删除、查看计划任务常用于权限维持定时回连或自动化巡检。echo off chcp 65001 nul 21 :: 自定义配置 set task_name服务器每日巡检 :: 任务名称 set task_scriptC:\Scripts\Server_Check.bat :: 要执行的脚本路径 set task_time00:00 :: 执行时间24小时制 set task_frequencydaily :: 执行频率daily/weekly/monthly/onstart echo 定时任务管理 echo 请选择操作 echo 1. 创建定时任务 echo 2. 删除定时任务 echo 3. 查询所有定时任务 set /p opt请输入数字1-3 if %opt%1 ( echo 创建定时任务%task_name% schtasks /create /tn %task_name% /tr %task_script% /sc %task_frequency% /st %task_time% /ru SYSTEM /rl HIGHEST if %errorlevel% equ 0 ( echo 任务创建成功执行时间每日 %task_time% ) else ( echo 任务创建失败请检查脚本路径或权限 ) ) else if %opt%2 ( echo 删除定时任务%task_name% schtasks /delete /tn %task_name% /f if %errorlevel% equ 0 ( echo 任务删除成功 ) else ( echo 任务删除失败可能任务不存在 ) ) else if %opt%3 ( echo 服务器所有定时任务 schtasks /query /fo table /v ) else ( echo 输入错误请重新运行 ) pause白帽子视角权限维持常用手法创建每小时/每天执行的计划任务拉取后门或反弹 shell推荐添加/ru SYSTEM以最高权限运行绕过用户账户控制查询所有任务可发现其他攻击者留下的计划任务。5. 服务器重启/关机带确认延迟功能安全重启/关机增加确认和延迟机制防止误操作。echo off chcp 65001 nul 21 echo 服务器重启/关机 echo 警告此操作会关闭服务器所有进程请确认已保存数据 echo 请选择操作 echo 1. 延迟重启默认5分钟 echo 2. 立即重启 echo 3. 延迟关机默认5分钟 echo 4. 立即关机 echo 5. 取消操作 set /p opt请输入数字1-5 if %opt%1 ( set /p delay请输入延迟分钟数默认5 if not defined delay set delay5 echo 服务器将在 %delay% 分钟后重启... shutdown /r /t %delay%*60 /c 服务器计划重启 ) else if %opt%2 ( echo 确认立即重启Y/N set /p confirm if /i %confirm%Y ( shutdown /r /t 0 /c 服务器立即重启 ) else ( echo 操作取消 ) ) else if %opt%3 ( set /p delay请输入延迟分钟数默认5 if not defined delay set delay5 echo 服务器将在 %delay% 分钟后关机... shutdown /s /t %delay%*60 /c 服务器计划关机 ) else if %opt%4 ( echo 确认立即关机Y/N set /p confirm if /i %confirm%Y ( shutdown /s /t 0 /c 服务器立即关机 ) else ( echo 操作取消 ) ) else if %opt%5 ( echo 操作已取消 ) else ( echo 输入错误请重新运行 ) echo 提示如需取消操作可执行命令shutdown /a pause白帽子视角提权后若需要重启使某些策略如远程桌面端口生效可用此脚本应急响应时可延迟关机争取更多取证时间单独制作Cancel_Shutdown.bat以备误操作取消。6. 远程桌面配置开启/关闭/修改端口功能一键开启/关闭远程桌面修改默认3389端口并自动配置防火墙规则是服务器初始化和安全加固的必备脚本。echo off chcp 65001 nul 21 echo 远程桌面配置 echo 请选择操作 echo 1. 开启远程桌面 echo 2. 关闭远程桌面 echo 3. 修改远程桌面端口默认3389 set /p opt请输入数字1-3 if %opt%1 ( echo 开启远程桌面... reg add HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server /v fDenyTSConnections /t REG_DWORD /d 0 /f :: 开放防火墙3389端口 netsh advfirewall firewall add rule name远程桌面3389 dirin actionallow protocolTCP localport3389 echo 远程桌面已开启防火墙已放行3389端口 ) else if %opt%2 ( echo 关闭远程桌面... reg add HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server /v fDenyTSConnections /t REG_DWORD /d 1 /f :: 删除防火墙规则 netsh advfirewall firewall delete rule name远程桌面3389 protocolTCP echo 远程桌面已关闭 ) else if %opt%3 ( set /p new_port请输入新的远程桌面端口 echo 修改远程桌面端口为 %new_port%... :: 修改注册表端口 reg add HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp /v PortNumber /t REG_DWORD /d %new_port% /f :: 开放新端口防火墙 netsh advfirewall firewall add rule name远程桌面%new_port% dirin actionallow protocolTCP localport%new_port% :: 删除旧端口规则 netsh advfirewall firewall delete rule name远程桌面3389 protocolTCP echo 端口修改完成需重启服务器生效执行shutdown /r /t 60 ) else ( echo 输入错误请重新运行 ) pause白帽子视角安全加固修改默认3389端口避免被批量扫描爆破渗透测试中开启远程桌面作为后门接入点关闭远程桌面可增加对手横向移动难度。二、生产环境高频实用脚本安全/运维刚需1. 系统日志一键导出取证/排查故障功能快速导出系统、安全、应用程序日志用于分析入侵痕迹、故障原因。echo off chcp 65001 nul set logdirServerLogs_%date:~0,4%%date:~5,2%%date:~8,2% md %logdir% 2nul wevtutil epl System %logdir%\System.evtx wevtutil epl Security %logdir%\Security.evtx wevtutil epl Application %logdir%\Application.evtx echo 日志已导出到 %logdir% pause白帽子视角应急响应时提取攻击痕迹登录事件、服务创建、计划任务等可扩展导出 PowerShell、TerminalServices 等通道日志。2. 本地用户批量查看/锁定/解锁功能查看所有本地用户快速锁定/解锁账户重置密码默认123456。echo off chcp 65001 nul echo 本地用户列表 net user echo. set /p user输入要操作的用户名 echo 1 锁定 2 解锁 3 重置密码为123456 set /p opt选择 if %opt%1 net user %user% /active:no if %opt%2 net user %user% /active:yes if %opt%3 net user %user% 123456 echo 操作完成 pause白帽子视角权限维持创建隐藏用户后重置密码锁定合法用户防止被发现安全加固定期审计并禁用未使用/可疑账号。3. 本地管理员权限审计查谁是管理员功能快速列出本地 Administrators 组成员排查非法提权账户。echo off chcp 65001 nul echo 本机管理员组 net localgroup administrators pause白帽子视角后渗透阶段检查是否已成功加入管理员组应急响应必查项及时发现影子账户。4. 进程占用高CPU/内存一键定位功能显示 CPU 占用最高的进程并将完整进程列表导出至process.txt。echo off chcp 65001 nul echo 占用CPU最高的进程 tasklist /v /fo list | findstr /i 进程名 CPU 内存 echo. echo 已将进程信息保存到 process.txt tasklist /v process.txt pause白帽子视角定位挖矿木马、恶意软件的进程名配合 taskkill 可快速清除恶意进程。5. IIS 服务一键重启网站挂了常用功能优雅重启 IIS 服务。echo off iisreset /stop timeout /t 2 /nobreak iisreset /start echo IIS 已重启 pause白帽子视角渗透测试中修改 Web 应用后重启 IIS 使木马页面生效应急恢复被篡改网站时常用。6. 查看所有开机自启项排查木马、卡顿功能列出所有开机启动项注册表、启动文件夹。echo off chcp 65001 nul echo 开机启动项 wmic startup get caption,command pause白帽子视角权限维持检测排查自启动后门清理恶意软件常用手段。7. 系统更新服务开关解决服务器卡慢功能快速禁用或启用 Windows Update 服务避免更新占用资源或导致重启。echo off echo 1 禁用自动更新 echo 2 启用自动更新 set /p opt输入选择 if %opt%1 ( sc config wuauserv start disabled net stop wuauserv ) if %opt%2 ( sc config wuauserv start auto net start wuauserv ) echo 完成 pause白帽子视角攻击者常禁用更新避免系统补丁阻断已利用漏洞加固时可保持更新开启。8. 共享文件夹查看/删除功能查看本机所有共享并支持删除指定共享默认管理共享不受影响。echo off chcp 65001 nul echo 本机所有共享 net share echo. set /p share输入共享名如C$删除 net share %share% /delete pause白帽子视角发现意外开放的共享可能泄露敏感文件攻击者可能创建隐蔽共享存放工具。9. 服务器时间同步解决时间错误导致的认证失败功能强制与 time.windows.com 同步时间解决因时间偏差导致的 Kerberos 认证失败。echo off w32tm /config /manualpeerlist:time.windows.com /syncfromflags:manual /reliable:yes /update w32tm /resync echo 时间已同步 pause白帽子视角域内横向移动时需保证时间同步否则票据失效修复因时间错误导致的业务认证问题。10. 组策略强制刷新改策略后必用功能立即应用本地或域组策略无需重启或等待。echo off gpupdate /force echo 组策略已刷新 pause白帽子视角修改安全策略如密码策略、用户权限分配后立即生效域渗透中使用。11. 清理系统垃圾安全版不删业务文件功能仅清理临时文件夹、预读取文件不影响业务数据。echo off del /f /s /q %temp%\*.* del /f /s /q C:\Windows\Temp\*.* del /f /s /q C:\Windows\Prefetch\*.* echo 清理完成 pause白帽子视角清理攻击痕迹工具残留、日志注意Prefetch 可能包含执行痕迹清理后影响取证。12. 查看本机所有开放端口PID功能显示当前处于 LISTENING 状态的端口及对应 PID。echo off netstat -ano | findstr LISTENING pause白帽子视角信息收集快速发现开放端口识别服务类型结合 tasklist 可定位对应进程发现可疑后门端口。结语以上脚本是我在长期红蓝对抗、安全评估和应急响应中不断打磨的实用工具集合几乎覆盖了 Windows Server 日常管理与安全操作的方方面面。作为白帽子熟练掌握这些脚本能让你在拿到 shell 后迅速定位关键信息、维持访问权限、清理痕迹作为运维它们也能极大提升故障排查与安全加固的效率。再次提醒所有脚本在生产环境执行前请务必替换自定义参数并在测试环境充分验证。安全是一把双刃剑合理使用方能体现价值。