如何通过批处理脚本获取Windows Server所有本地组用户并输出到文件
批量导出Windows Server所有本地组及成员信息的批处理方案
这个需求我刚好处理过,给你一个直接能用的批处理脚本,它会自动遍历系统中所有本地组,把每个组的成员信息都导出到指定文件里,完美替代手动逐个执行net localgroup的操作:
完整批处理脚本
@echo off setlocal enabledelayedexpansion :: 自定义输出文件路径,可根据需求修改 set "outputFile=C:\AllLocalGroupsMembers.txt" :: 清空输出文件(避免旧内容残留) type nul > "%outputFile%" :: 遍历所有本地组 for /f "skip=4 delims=" %%g in ('net localgroup') do ( :: 判断是否到输出末尾的结束标记 echo "%%g" | findstr /i "命令成功完成" >nul if not errorlevel 1 ( goto :endLoop ) :: 清理组名末尾的多余空格 set "groupName=%%g" set "groupName=!groupName:~0,-1!" :: 写入组标题分隔线,让输出更易读 echo ============================== >> "%outputFile%" echo 本地组名称: !groupName! >> "%outputFile%" echo ------------------------------ >> "%outputFile%" :: 遍历当前组的成员信息 for /f "skip=6 delims=" %%m in ('net localgroup "!groupName!"') do ( echo "%%m" | findstr /i "命令成功完成" >nul if not errorlevel 1 ( goto :nextGroup ) :: 写入成员信息 echo %%m >> "%outputFile%" ) :nextGroup echo. >> "%outputFile%" :: 用空行分隔不同组的信息 ) :endLoop echo 所有本地组信息已成功导出到: %outputFile% pause endlocal
脚本说明与使用步骤
- 变量配置:修改
set "outputFile=C:\AllLocalGroupsMembers.txt"这一行,指定你想要的输出文件路径(比如D:\ServerGroups\LocalGroupsInfo.txt)。 - 权限要求:右键点击保存好的
.bat文件,选择以管理员身份运行——因为部分系统本地组需要管理员权限才能查看完整成员列表。 - 输出格式:每个组的信息都会用分隔线区分,成员列表清晰明了,方便后续查看或整理。
注意事项
- 如果你的Windows Server是英文版本,需要把脚本中
findstr里的"命令成功完成"替换成英文的"The command completed successfully.",否则脚本会无法正确识别输出结尾。 - 确保输出文件所在的目录有写入权限,比如
C:\根目录可能需要管理员权限,建议提前创建好目标文件夹(比如C:\Temp)再指定路径。
内容的提问来源于stack exchange,提问作者Sadhun
相关产品推荐
相关产品推荐

