求助编写一个批处理文件:
1、从userList.txt文件的第二行读取用户名,第一行读取用户分组
2、使用命令net group /domain,更新用户分组(和命令行返回的名单比较,中原有的用户名比较userList.txt有的添加用户,没有的删除用户)
自己简单编写了一个test批处理,执行后没啥效果,直接闪退。求帮忙看看- ::@echo off
- setlocal enabledelayedexpansion
-
- set "inputFile=userList.txt"
- set "outputFile=1.txt"
-
- REM 读取用户分组
- for /f "tokens=1,* delims= " %%A in ('type "%inputFile%"') do (
- set "group=%%B"
- @echo %group%
- pause
- goto :next
- )
- :next
-
- REM 循环读取用户名并进行更新操作
- for /f "tokens=1,* delims= " %%A in ('type "%inputFile%" ^| findstr /n "^"') do (
- set "userName=%%B"
- set "command=net group /domain "%group%" /add "%userName%""
- %command% > "%outputFile%" 2>&1
- echo %userName% >> "%outputFile%" 2>&1
- ) > nul
-
- REM 删除不在userList.txt中的用户
- for /f "tokens=1,* delims= " %%A in ('net group /domain "%group%" ^| findstr /n "^"') do (
- set "userName=%%B"
- set "checkUser=1"
- for /f "tokens=1,* delims= " %%C in ('type "%inputFile%" ^| findstr /n "^"') do (
- if "%%D"=="%userName%" (
- set "checkUser=0"
- goto :continue
- )
- )
- if !checkUser!==1 (
- net group /domain "%group%" "%userName%" /delete > "%outputFile%" 2>&1
- echo Deleted user: %userName% >> "%outputFile%" 2>&1
- )
- :continue
- ) > nul
-
- echo 更新完成。结果已保存在 %outputFile% 文件中。
- pause
复制代码 这个是执行命令后返回的内容,需要提取出administrator、admin
这项请求将在域 group.com 的域控制器处理。
组名 Domain Admins
注释 指定的域管理员
成员
-------------------------------------------------------------------------------
administrator admin domainadm
crm dbcr dlcr
命令成功完成。 |