[英]Get-ADUser Check for conflicting proxyAddresses
目前,我有一個創建用戶帳戶的腳本。
注意:並非所有用戶都具有相同的UPN(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
? 預先感謝您的任何幫助
您不需要擴展它,因為proxyAddress過濾器應該是可靠的。
因此,這應該非常簡單:
function Validate-proxyAddress($email)
{
if (Get-ADUser -Filter "proxyAddresses -eq 'smtp:$email'")
{
return $true
}
elseif (Get-ADUser -Filter "mail -eq '$email'")
{
return $true
}
elseif (Get-ADUser -Filter "UserPrincipalName -eq '$email'")
{
return $true
}
return $false
}
或者您可以像代碼一樣將其全部加入,但尚未對其進行測試,因此,如果您得到的是假,則表明該用戶不存在,應該可以繼續...
另外,如果需要,可以使用-like
而不是-eq
(在某種程度上缺少smtp前綴的情況下):
"proxyAddresses -like '*$email*'"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.