千家信息网

如何使用脚本解决AD用户批量操作问题

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,小编给大家分享一下如何使用脚本解决AD用户批量操作问题,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1.假设一个企业(DC为www.gr.com,以下相同)中有1000个用户,其中包
千家信息网最后更新 2026年11月03日如何使用脚本解决AD用户批量操作问题

小编给大家分享一下如何使用脚本解决AD用户批量操作问题,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

1.假设一个企业(DC为www.gr.com,以下相同)中有1000个用户,其中包含了user字符的有100个用户,它们分部在不同的OU中,如:IT,PM,MRP,ACC等等,现在我们新建了一个OU名称为Sales,现在如何将这100个用户从其它的OU中移至Sales这个OU?

解答:

  • dsquery user -name *user* >>c:\user.txt

  • for /f %i in (c:\user.txt) do dsmove %i -newparent ou=Sales,dc=www,dc=gr,dc=com

2.假设一个企业中有1000个用户,其中有100个用户属于Sales组,它们分部在不同的OU中,如:IT,PM,MRP,ACC等等,现在我们新建了一个OU名称为Sales,现在如何属于Sales组的这些用户从其它的OU中移至Sales这个OU?

解答:

  • dsget group "cn=Sales,cn=users,dc=www,dc=gr,dc=com" -members >>c:\user.txt

  • for /f %i in (c:\user.txt) do dsmove %i -newparent ou=Sales,dc=www,dc=gr,dc=com

3.假设一个企业新进100个职员,他们分别分配在IT,PM,MRP,ACC,Sales部门,现在如何批量建立这些用户并设置他们所在的组和OU?

解答:

  • 首先建立一个c:\userlist.csv,格式如下:
    henGong,ACC,p@ssw0rd
    ChengYuanZhi,IT,p@ssw0rd
    ChengPu,MRP,p@ssw0rd

  • FOR /F "eol=; tokens=1,2,3* delims=, " %a in (c:\userlist.csv) do dsadd user "cn=%a,ou=%b,dc=www,dc=gr,dc=com" -pwd %c -samid %a -upn %a@www.gr.com

4.时间长了,由于职员离职等原因,在AD中被禁用的用户越来越多,而且他们分部在不同的OU中,如何将这些被禁用的用户批量的删除掉呢?

解答:

  • dsquery user -disabled >>c:\user.txt

  • for /f %i in (c:\user.txt) do dsrm -noprompt -c "%i"

总结上面几个问题,我编写了一个脚本,运用它我们可以简单的来实现以上功能。

脚本如下,大家可以拷贝到记事本中并保存为cmd格式,你也可以下载我上传的文件分别将其后缀改为cmd和csv,其中此脚本中我所用的测试DC为www.gr.com,请试验时将脚本中相应部分更改为你自己的DC。

@echo off
cls
cd\
c:
echo.
echo -------------------------------------------
echo 此脚本用于更改AD用户所在的OU及批量建立用户.
echo -------------------------------------------
echo.
echo 【1】批量更改用户至新OU
echo 【2】将同一组用户更改至新OU
echo 【3】批量建立用户
echo 【4】批量删除被禁用用户

echo -------------------------------------------
echo.
set /p select=请在菜单中选择:
if "%select%"=="1" set /p username=请输入所需查找用户(可使用匹配符): &goto A
if "%select%"=="2" set /p groupname=请输入所需查找组名: &goto B
if "%select%"=="3" goto D
if "%select%"=="4" goto E

:A
dsquery user -name %username% >>user.txt
echo.
echo ---------------------------
echo 已成功导出所匹配的用户信息。
echo ---------------------------

goto C

:B
dsget group "cn=%groupname%,cn=users,dc=www,dc=gr,dc=com" -members >>user.txt
echo.
echo ----------------------------------
echo 已成功导出%groupname%组的用户信息。
echo ----------------------------------

goto C

:C
echo.
set /p ouname=请输入用户所需更新到的OU:
for /f %%i in (user.txt) do dsmove %%i -newparent ou=%ouname%,dc=www,dc=gr,dc=com

echo.
echo ----------------------------------------
echo 已成功更新用户到 %ouname% OU中,谢谢使用。
echo ----------------------------------------
echo.

goto Z

:D

set /p userpath=请输入用户列表文件路径(c:\userlist.csv):
FOR /F "eol=; tokens=1,2,3* delims=, " %%a in (%userpath%) do dsadd user "cn=%%a,ou=%%b,dc=www,dc=gr,dc=com" -pwd %%c -samid %%a -upn %%a@www.gr.com

echo.
echo ----------------------------------------------------
echo 已成功创建%userpath%列表中的用户,谢谢使用。
echo ----------------------------------------------------
echo.

goto Z

:E
set /p select=请确定删除被禁用用户吗?(y/n):

if "%select%"=="y" goto F
if "%select%"=="n" goto Z

:F
dsquery user -disabled >>user.txt
for /f %%i in (user.txt) do dsrm -noprompt -c "%%i"

echo.
echo -------------------------------
echo 已成功删除被禁用用户,谢谢使用。
echo -------------------------------
echo.

:Z
del user.txt
pause
echo on

看完了这篇文章,相信你对"如何使用脚本解决AD用户批量操作问题"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

用户 脚本 成功 解答 输入 不同 企业 分部 问题 信息 名称 所在 文件 格式 篇文章 职员 更新 相同 几个问题 功能 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网金融科技 广州淘业互联网络科技 中关村互联网 科技集团 互联网金融 科技 互联网科技公司有哪些 互联网科技大会案例 老年人脱离互联网科技的作文 恒银科技与互联网金融 互联网系的金融科技公司 港股科技和互联网 中国航天科技大学国际工业互联网 知域互联网科技有限公司大骗子 互联网5g黑科技有哪些 如何创新互联网科技 长沙茂晟互联网科技有限公司 朱啸虎曾投资哪些互联网科技企业 智帮互联网科技公司最近动向 昆明中奇联合互联网科技 重庆科技产业互联网有哪些 高科技和互联网的现代国家 广州淘业互联网络科技 西安纸贵互联网科技有限公司 卓越科技互联网 招聘 甘肃拓世互联网科技有限公司 互联网和高科技公司 科技与互联网哪个更好 杭州壁岐互联网科技有限公司 长沙茂晟互联网科技有限公司 中和天地互联网科技有限公司 承德科技产业互联网平台
0