В настоящее время у меня есть скрипт, который создает учетные записи пользователей.
Примечание: Не все пользователи имеют одно и то же имя участника-пользователя (UserPrincipalName)
Учетные записи пользователей имеют следующий формат: <firstinit><lastname>
.
Если это конфликтует, формат будет изменен на: <firstinit><middleinit><lastname>
Недавно я столкнулся с проблемой, когда пользователь proxyAddress
конфликтует с существующими пользователями.Это проблема, потому что AD не поймает это.
Проблема:
Проверка каждого прокси-адреса AD-User
занимает много времени, если он не включен в фильтр.Однако при включении proxyAddresses
в фильтр результаты будут противоречивыми.Я предполагаю, что это потому, что атрибут proxyAddresses
является массивом.
Непоследовательный :
Import-Module ActiveDirectory
$FirstLast = "jrider@ChuckNorrisKills.com"
$conflictCheck = Get-ADUser -Properties mail, proxyAddresses -Filter "mail -eq '$FirstLast' -or UserPrincipalName -eq '$FirstLast' -or proxyAddresses -eq `"smtp:'$FirstLast'`"" | measure
if($conflictCheck.Count -gt 0)
{
Write-Host "New user conflicts with existing user" -ForegroundColor Red
}
Я нашел решение, которое решит мою проблему.К сожалению, это очень медленно (ожидается):
Import-Module ActiveDirectory
function Test-NewADUser
{
Param(
[Parameter(Mandatory=$true)][string]$firstname,
[Parameter(Mandatory=$true)][string]$lastname,
[Parameter(Mandatory=$false)][string]$middle
)
[bool]$proxExsists = $false
$domain = '@chuckNorrisKills.com'
$FirstLast = $firstname.Substring(0,1)+$lastname+$domain
Get-ADUser -Filter * -Properties proxyAddresses | foreach {
#xpand the proxy address and iterate through it
foreach($address in $_.proxyAddresses)
{
#As you can see this goes through every user
Write-Host "Address: " $address -ForegroundColor Yellow
if($address -eq "smtp:$FirstLast")
{
Write-Host "Found Conflict" -ForegroundColor Red
$proxExsists = $true
}
}
}
}
Test-NewADUser -firstname jack -lastname Rider
Вопрос (ы):
- Есть ли способ расширить
proxyAddresses
и проверитьконфликты в -Filter
? - Если нет, стоит ли мне беспокоиться о Джобсе или об альтернативном способе проверки конфликтов?
Заранее благодарю за любую помощь