我有个问题,关于邮件地址生成逻辑。首先假设是FirstName.Lastname,然后检查是否已经在AD中了。
如果它已经存在,它将添加结尾名的编号,直到找到一个未使用的邮件地址:
john.doe@contoso.com、john.doe2@contoso.com、john.doe3@contoso.com等。
注意:我们的名字是$FirstName,姓是$LastName
$count = $null
do {
$query = "(mail=$username$count))"
$result = ([adsisearcher]$query).FindOne()
if ($result) {if ($count -eq $null) {$count = 2} else {$count++}}
} while ($result)
Write-Host "The account name you should use is: $username$count"这里我的错误消息是:
使用"0“参数调用"FindOne”的异常:“(mail=john.doe)搜索筛选器无效。” 行号:5字符:45
发布于 2017-11-13 09:12:56
如果我很理解你,你想找到下一个可用的电子邮件地址,并在它的末尾添加一个,以防它存在?
如果是这样,您可以使用这个简单的函数:
将您的输入添加为电子邮件格式,它将添加1,直到它找不到为止,并返回可用的邮件。
Function Get-AvailableMail()
{
Param(
$Email
)
$i = 1
while (([adsisearcher]"(&(mail= $($Email)))").FindOne())
{
$Email = ($Email -split '@')[0] + "$i@" + ($Email -split '@')[1]
$i++
}
return $Email
}https://stackoverflow.com/questions/47257959
复制相似问题