Powershell的AD相关的命令灰常好用,豆子今天早上从HR那里拿了一份名单,需要更新所有AD用户的职位和部门信息。这个名单有上千人,肯定不能手动修改,一个简单几行的脚本就可以迅速解决。基本方法是可以通过get-ADuser搜索用户,然后使用 set-ADuser这个命令修改就行了。
名单格式如下: HR的代码,名字,姓,加入日期,职位,部门等等。由于鬼佬习惯结婚之后改名字,所有直接通过displayname 搜索很多人是找不到的。不过SamaccountName一般不会变,公司的命名方式是第一个名字的首字母+最后一个名字( First intial+ Last Name)。
如何改成这个SamaccountName呢,很简单,利用split函数分开重组一下就行了
比如:
1
2
3
4
5
6
7
|
$a
=
get-content
'c:\employee.csv'
foreach
(
$b
in
$a
){
$c
=
$b
.split(
","
)
$init
=
$c
[1][0]
$lastname
=
$c
[2]
$shortnamae
=
$init
+
$lastname
}
|
获得SamaccountName之后,那就很简单了,在foreach循环里面,利用get-ADuser搜索,然后set-ADuser修改就行了。可以写成一行,通过管道传输,也可以分开写。
比如:
1
2
3
4
5
6
7
|
$user
=
get-ADuser
$shortname
if
(
$user
-eq
$null
) {
$b
>> c:/temp/error.csv }
else
{
$user
.samaccountname
set-aduser
$user
.samaccountname
-replace
@{title=
$c
[4];department-
$c
[5]}
}
|
这样就能修改了
本文转自 beanxyz 51CTO博客,原文链接:http://blog.51cto.com/beanxyz/1637787,如需转载请自行联系原作者