小编jri*_*der的帖子

Get-ADUser 检查代理地址是否有冲突

目前我有一个创建用户帐户的脚本。

注意:并非所有用户都具有相同的 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 
}
Run Code Online (Sandbox Code Playgroud)

我想出了一个可以解决我的问题的解决方案。不幸的是,这非常慢(预期):

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 …
Run Code Online (Sandbox Code Playgroud)

powershell

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

powershell ×1