如何在域环境中根据用户名查询对应用户的完整姓名
域用户全名提取批处理实现方案(Win7兼容)
实现逻辑
通过系统自带的for /f命令解析net user /domain [用户名]的输出结果,匹配全名对应的字段后提取内容存入变量,完全不依赖第三方工具,Win7及以上系统通用。
完整批处理代码
@echo off setlocal enabledelayedexpansion :: 接收用户输入的域账号名 set /p "target_username=请输入要查询的域用户名:" set "full_name=" :: 提取全名:中文系统请将下方的"Full Name"替换为"全名" for /f "tokens=1,* delims=:" %%a in ('net user /domain !target_username! ^| findstr /i /c:"Full Name"') do ( set "full_name=%%b" :: 去除字段前的多余空格 for /f "tokens=* delims= " %%c in ("!full_name!") do set "full_name=%%c" ) :: 结果处理 if not defined full_name ( echo 未查询到对应用户信息 endlocal exit /b 1 ) :: 输出结果,可直接将%full_name%变量接入其他工作流程 echo 对应用户全名为:%full_name% :: 若需要批处理结束后仍可调用该变量,取消下方行注释即可 :: endlocal & set "global_fullname=%full_name%" endlocal
注意事项
- 运行设备需已经加入对应域,当前账号具备域用户信息查询权限,无需管理员权限
- 中文系统仅需修改
findstr匹配的关键词为"全名"即可正常运行 - 提取到的
%full_name%变量可直接传入其他批处理逻辑使用,无额外适配成本
内容的提问来源于stack exchange,提问作者Christopher Mccullough
相关产品推荐
相关产品推荐

