您的位置:首页 > 运维架构 > Shell

PowerShell通过CSV批量导入AD用户

2009-08-03 23:56 399 查看
首先我们要准备好我们的运行环境:

Windows .NET 3.5 Framework(从官方站下的版本,还要通过网络继续下包,非常慢,所以我提供了一个多特的地址)
http://9.duote.com/dotnetfxchs.exe
PowerShell
http://download.microsoft.com/download/D/0/E/D0E6D2C1-2593-4017-B26D-7375BC9263D5/PowerShell_Setup_x86.msi
ActiveRoles Management Shell for Active Directory
http://www.quest.com/quest_download_assets/individual_components/ActiveRolesManagementShellforActiveDirectory_122.zip
安装运行环境:
1、首先安装Windows .NET 3.5 Framework
2、安装PowerShell
3、ActiveRoles Management Shell for Active Directory
都是下一步到底的东西,没有太多好说的。

创建CSV文件:
1、首先用记事本创建对应文本



2、保存文件,这里一定要注意编码,这里选择为”Unicode



3、我在这里保存的路径为”C:\Users.csv”



PowerShell导入研究
1、”Type”显示文件信息,有点类似Linux Shell中的cat



2、导入CSV信息,在PowerShell中有CSV导入的命令“Import-Csv



3、信息导入之后,考虑的是如何处理信息,这里我们将使用管道命令“|”,并使用”foreach”命令来罗列对象:



(上图可能与第二步中显示的信息没有区别,在下图中我对命令进行小小的修改,结果如图所示)




4、我们开始思考如何将所获取的信息写入AD,这里我们将使用ActiveRoles Management Shell for Active Directory中的命令“New-QADUser



由上图可以看到由于默认没有加载ActiveRoles Management Shell for Active Directory的模块所以找不到该命令报错。
这里我们可以直接通过Quest Software下面的ActiveRoles Management Shell for Active Directory来直接加载。



第一次加载时会提示是否需要运行。默认为“D”,我个人修改为了永远运行。。
5、我们先来看看New-QADUser的帮助,可以发现它存在大量的参数,有兴趣的朋友可以通过帮助继续研究:



6、根据帮助我们来将信息写入AD:
Import-Csv C:\USERS.CSV | ForEach-Object {New-QADUser -ParentContainer 'ou=测试组,dc=TEST,dc=COM' -SamAccountNa
me $_.userName -Name $_.username -userPassword 'p@ssw0rd' -firstname $_.'名' -lastName $_.'姓' -Department $_.'部门' -di
splayName ($_."姓"+$_."名")}

参数说明
-ParentContainer 创建对象在AD中容器位置
-SamAccountName 登录名称
-Name 用户名
-userPassword 用户密码
-firstname 名
-lastName 姓
-Department 部门
-displayName 显示名称

7、执行结果:



再看看AD中的信息:



最后核对一下用户信息:







Pass!这里只是一段简单的脚本,并不健壮,例如AD中有用户的处理,以及日志功能等都还有待完善。
另外,微软自己也在做PowerShell管理AD的库了,现在有Beta,不多只支持英文版,有兴趣的朋友可以去Technet的AD Poweshell的Blog看看:
http://blogs.msdn.com/adpowershell/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息