Chinaunix首页 | 论坛 | 博客
  • 博客访问: 409250
  • 博文数量: 87
  • 博客积分: 6015
  • 博客等级: 准将
  • 技术积分: 960
  • 用 户 组: 普通用户
  • 注册时间: 2006-09-13 16:59
文章分类
文章存档

2015年(4)

2010年(16)

2009年(13)

2008年(12)

2007年(29)

2006年(13)

我的朋友

分类: WINDOWS

2010-04-15 16:03:04

当一个新的活动目录建立后,我们需要建立大量的用户帐号,我们可以按照固定格式,用excel做好所有用户数据,包括在那个ou,用户的具体信息,以方便以后与其它系统共享信息.下面来看看怎么做:
  1. 先看一下excel格式的用户列表:

ChenGong,陈宫,Guangzhou,Sales,经理,83333333,1392910291
ChengYuanZhi,程远志,Guangzhou,Sales,经理,83335335,1392910151
ChengPu,程普,Guangzhou,Sales,工程师,83337337,1392910011


用dsadd user 去添加用户的各项属性值:分别对应列表逗号分隔的值

登陆名,显示名,所在ou,部门,职务,电话,手机.上面的Guangzhou,Sales将会作为ou的值建立.

ou:

ChenGong,陈宫,Guangzhou,IT,经理,83333333,1392910291
CaoPi,曹丕,Beijing,IT,经理,83355355,1392908751
GuoTu,郭图,Qingdao,IT,经理,83409409,1392904971
GongSunHuang,公孙晃,Guangzhou,HR,经理,83419419,1392904271
LiuQi,刘琦,Beijing,HR,经理,83485485,1392899651
LiDian,李典,Qingdao,HR,经理,83495495,1392898951
LuKang,陆抗,Guangzhou,Sales,经理,83505505,1392898251
MengDa,孟达,Beijing,Sales,经理,83523523,1392896991
MiHeng,祢衡,Qingdao,Sales,经理,83535535,1392896151

根据用户列表里的值建立相应的ou.上例是根据所在地,部门来建立ou.批量导入后的结构如下:

脚本如下:

@Echo off
setlocal

set domainname=microsoft.com
set Userpassword=pwd
set OuName=Company

echo 此脚本用于批量建立用户.
echo 使用同目录下oulist.csv和sanguo.csv作为输入数据。

:Menu
echo ==============================
echo     域名: %domainname%
echo     密码: %Userpassword%
echo     OU名: %OuName%
echo ==============================
echo.
echo 【1】使用此设置建立用户
echo 【2】修改域名
echo 【3】修改用户密码
echo 【4】修改OU名
echo.
set /p select=请在菜单中选择:
if "%select%"=="1" goto start
if "%select%"=="2" set /p domainname=请输入域名:&cls&goto Menu
if "%select%"=="3" set /p Userpassword=请输入用户密码:&cls&goto Menu
if "%select%"=="4" set /p OuName=请输入OU名:&cls&goto Menu
echo.
echo 输入无效,请重新选择.
pause
cls
goto Menu

:Start
for /f "eol=; tokens=1,2,3,4,5,6 delims=." %%a in ("%domainname%") do set ldapname1=%%a&set ldapname2=%%b&set ldapname3=%%c&set ldapname4=%%d&set ldapname5=%%e&set ldapname6=%%f
set domain=dc=%ldapname1%,dc=%ldapname2%,dc=%ldapname3%,dc=%ldapname4%,dc=%ldapname5%,dc=%ldapname6%

if DEFINED ldapname1 set ldap=dc=%ldapname1%
if DEFINED ldapname2 set ldap=%ldap%,dc=%ldapname2%
if DEFINED ldapname3 set ldap=%ldap%,dc=%ldapname3%
if DEFINED ldapname4 set ldap=%ldap%,dc=%ldapname4%
if DEFINED ldapname5 set ldap=%ldap%,dc=%ldapname5%
if DEFINED ldapname6 set ldap=%ldap%,dc=%ldapname6%

Rem echo DomainName: %domainname%
Rem echo LdapName: %ldap%

Echo ADD OU:
dsquery ou ou=%OuName%,%ldap% 2>nul >nul || dsadd ou ou=%OuName%,%ldap%
FOR /F "eol=; tokens=1,2,3,4* delims=, " %%a in (oulist.csv) do dsquery ou ou=%%c,ou=%OuName%,%ldap% 2>nul >nul|| dsadd ou ou=%%c,ou=%OuName%,%ldap%
FOR /F "eol=; tokens=1,2,3,4* delims=, " %%a in (oulist.csv) do dsquery ou ou=%%d,ou=%%c,ou=%OuName%,%ldap% 2>nul >nul|| dsadd ou ou=%%d,ou=%%c,ou=%OuName%,%ldap%


Echo ADD user:

FOR /F "eol=; tokens=1,2,3,4,5,6,7,8* delims=, " %%a in (sanguo.csv) do dsadd user cn=%%a,ou=%%d,ou=%%c,ou=%OuName%,%ldap% -samid %%a -upn %%a@%domainname% -display %%b -pwd %Userpassword% -mobile %%g -tel %%f -title %%e -dept %%d 2>nul ||goto DisplayInfo

:DisplayInfo
echo.
echo.
if %errorlevel% EQU -2147019886 echo 用户已存在,不能重复建立.&echo.&pause&goto end
if %errorlevel% NEQ 0 echo 建立用户失败.&echo.&pause&goto end
if %errorlevel% EQU 0 echo 建立用户成功.&echo.&pause
reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultDomainName /t REG_SZ /d %domainname% /f >nul

:end
rem echo %errorlevel% &pause
endlocal
echo on

用法如下:

执行BAT文件,按提示选择修改适合你的AD和PASSWORD及OU.最后执行导入动作.

阅读(3267) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~