我正在尝试运行一个脚本,但我仍然在同一个问题上运行,我在同一个林中都有域A,B和C;但当我尝试做简单的命令,如
禁用-ADAccount -Identity $ User
我无法完成它,因为它无法在域B中找到用户,用户位于域A中。
所以问题是,有没有办法让脚本检查“User1”的所有域(A,B,C)并对它们执行禁用操作。 (除设置开关外)
-server
答案 0 :(得分:2)
我最近遇到了这个问题,最后编写了一个函数来获取用户的ADUser对象。您可以使用该对象轻松地禁用用户。
Function Get-DomainUser{
Param([String]$Alias)
BEGIN{$GCs = Get-ADForest|select -expand GlobalCatalogs|?{($_ -match "^(.*?)\.(.+?)$")}|%{[pscustomobject]@{'Server' = $matches[1];'Region' = $matches[2];'FQDN' = $_}}|group region|%{$_.group|select -first 1}
}
PROCESS{
$DomUser = Get-ADUser -Filter {samAccountName -eq $Alias} -Prop DisplayName
If(([string]::IsNullOrEmpty($DomUser.Name))){
ForEach($GC in $GCs){
$DomUser = Get-ADUser -Filter {samAccountName -eq $Alias} -Server $GC.FQDN -Prop DisplayName
If(!([string]::IsNullOrEmpty($DomUser.Name))){Break}
}
}
$DomUser
}
}
这将获取全局编录服务器列表,按站点对它们进行分组,然后每个站点只获得1个服务器。然后它尝试获取用户,如果当前用户失败,则它会尝试每个站点,直到找到用户为止。