我们使用的用户名格式为“姓氏的第一个首字母和姓氏的第一个首字母的第一个首字母”。
如果用户名已经存在于AD中,我需要一种方法来更改中间的初始值。它应循环显示字母表中的字母,直到找到可用的匹配项。
以下是我现在在PowerShell中所拥有的内容,它能够正确设置用户名并检查它是否存在于Active Directory中。但是,我无法弄清楚如何改变中间的初始。 有什么建议吗?
我已将代码更新到下面,但我不知道如何使用新用户名再次检查AD。
$randomObject = New-Object System.Random
$randomChar = [char]$randomObject.next(97, 122)
$FirstName = ’rirstName’
$MiddleName = 'aiddleName'
$LastName = ’gastName’
$Username = $Firstname.Substring(0, 1) + $Middlename.Substring(0, 1) +
$Lastname.Substring(0, 1)
$User = Get-ADUser -Filter {sAMAccountName -eq $Username}
if ($User -eq $null) {
'not found'
} elseif ($User -eq $Username) {
$MiddleName = $randomChar
$Username = $Firstname.Substring(0, 1) + $Middlename +
$Lastname.Substring(0, 1)
} else {
$randomObject = New-Object System.Random
$randomChar = [char]$randomObject.next(97, 122)
$MiddleName = $randomChar
$Username = $Firstname.Substring(0, 1) + $Middlename +
$Lastname.Substring(0, 1)
}
$Username
Powershell
$FirstName = ’FirstName’
$MiddleName = 'MiddleName'
$LastName = ’LastName’
$Username = $Firstname.Substring(0, 1) + $Middlename.Substring(0, 1) +
$Lastname.Substring(0, 1)
$User = Get-ADUser -Filter {sAMAccountName -eq $Username}
if ($User -eq $null) {
"User does not exist in AD"
} else {
"User found in AD"
}
$Username