温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2021-11-08 10:25:58 来源:亿速云 阅读:175 作者:小新 栏目:云计算

小编给大家分享一下如何使用脚本解决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,其中此脚本中我所用的测试DCwww.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用户批量操作问题”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI