十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
小编给大家分享一下如何使用脚本解决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用户批量操作问题”有了一定的了解,如果想了解更多相关知识,欢迎关注创新互联行业资讯频道,感谢各位的阅读!