需求说明
新建名称为 manager、dev、sale 的 3 个组织单元;每个组织单元内新建与组织单元同名的全局安全组;每个组内新建20个用户:行政部 manager101-manager120、开发部 dev101-dev120、营销部 sale101-sale120,所有用户只能每天 8:00-18:00 可以登录,不能修改其口令,密码永不过期。
得到需求后总结一下要做的事情:
1.创建组织单元及对应的用户组3个。
2.创建每个用户组中的用户,每个组20个用户,共计新建60个账户。
3.每个账户配置相关登陆时间、账户口令、密码策略等,共计修改60次账户属性相关设置。
图形化的界面操作虽然给了很大程度的便捷,但在这个需求中却显得有点力不从心。为了高效的达到目标,下面打算尝试使用Powershell来实现自动化处理。
以下是Powershell脚本
注意:
1.组织单位和对应的用户组依然使用图形化界面配置,这里没有纳入脚本自动配置的范畴。
2.其中$group的值根据要求修改为目标组(manager、dev、sale)。
3.综上,完成上述需求共计执行脚本3次。
$num = 101..120
[byte[]]$hours = @(255,3,0,255,3,0,255,3,0,255,3,0,255,3,0,255,3,0,255,3,0)
foreach ($i in $num){
$group = 'sale'
$password = 'Pass-1234'
$User = "$group$i"
New-ADUser -Name $User `
-Path "OU=$group,DC=skills,DC=com" `
-AccountPassword(ConvertTo-SecureString -AsPlainText $password -Force) `
-SamAccountName $User `
-UserPrincipalName "$User@skills.com" `
-PasswordNeverExpires 1 `
-CannotChangePassword 1 `
-Enabled 1;
Set-ADUser -Identity "CN=$User,OU=$group,DC=skills,DC=com" -Replace @{logonhours = $hours}
Add-ADGroupMember -Identity $group -Members $User
echo "Added $User to $group"
}
脚本的主要作用说明:
1.利用New-ADUser来创建用户相关主要属性。
2.利用Set-ADUser来对用户的特别属性(登陆时间)就行修改。
3.利用Add-ADGroupMember来将创建完毕的用户添加到对应的用户组。
脚本的主要参数说明:
1.num:用户名称的特殊字节,同时用来进行循环。
2.group:用户组的名称
3.password:账户密码
4.User:真正的账户名称(用户组名称+编号)