提取 windows 服务器中所有本地组中的所有用户
Extract all the users in all the local groups in windows server
我必须通过批处理脚本找到所有本地组中的所有用户,并且应该重定向到输出文件。
我可以提取一组并重定向到一个文件。
net localgroup "Administrators" > c:\temp.txt
但我必须获取为以下命令显示的所有组的用户列表。
net localgroup
通常 运行 仅 net localgroup
returns 以星号开头的组 *
所以这应该有效:
@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%a in ('net localgroup') do (
set "var=%%a"
set var=!var:~1!
net localgroup "!var!" >> someoutput.txt
)
编辑
根据您的意见,我们可以简单地检查创建的文件是否具有正确的行数,如果不正确,将其删除。
@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%a in ('net localgroup') do (
set "var=%%a"
set var=!var:~1!
net localgroup "!var!" > "!var!.txt"
for /f %%i in ('type "!var!.txt" ^|find "" /v /c ') do set /a count=%%i
if !count! lss 10 del /Q "!var!.txt"
)
我必须通过批处理脚本找到所有本地组中的所有用户,并且应该重定向到输出文件。
我可以提取一组并重定向到一个文件。
net localgroup "Administrators" > c:\temp.txt
但我必须获取为以下命令显示的所有组的用户列表。
net localgroup
通常 运行 仅 net localgroup
returns 以星号开头的组 *
所以这应该有效:
@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%a in ('net localgroup') do (
set "var=%%a"
set var=!var:~1!
net localgroup "!var!" >> someoutput.txt
)
编辑
根据您的意见,我们可以简单地检查创建的文件是否具有正确的行数,如果不正确,将其删除。
@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%a in ('net localgroup') do (
set "var=%%a"
set var=!var:~1!
net localgroup "!var!" > "!var!.txt"
for /f %%i in ('type "!var!.txt" ^|find "" /v /c ') do set /a count=%%i
if !count! lss 10 del /Q "!var!.txt"
)