active-directory - Powershell 未将用户添加到 AD 组
问题描述
我在下面检查了以下条件的脚本:
- 检查何时创建用户并仅过滤不超过 30 天的帐户
- 当他们开始与组织合作时检查数据(在描述中)
- 在他们开始与组织合作的同时将他们添加到适当的组
下面的代码:
$DateMaxTime = (Get-date).AddDays(0)
$DateMaxTimeNew = (Get-date).AddDays(-30)
$usersRO = Get-ADUser -Filter * -Properties * -SearchBase "OU=Users,OU=Resources,OU=Romania,OU=Country,DC=I,DC=Love,DC=Donuts"|where {$_.Description -like "*TEMP*" -or $_.Description -like "*PERM*" } |select samaccountname,description,name
$groupsRO = 'EXTERNALACCESS'
###########################
ForEach($groupRO in $groupsRO){
$membersRO = Get-ADGroupMember -Identity $groupRO -Recursive | Select -ExpandProperty samaccountname
Foreach ($userRO in $usersRO){
$AcountNameRO = $userRO.samaccountname
$DatePartRONew = get-aduser -identity $AcountNameRO -Properties * | Select-Object whenCreated
$DatePartSubsRONew = $DatePartRONew.whenCreated
$DataPartROdesc=$userRO.description
$expressionRO = ([regex]'(\d{2}/\d{2}/\d{4})').Match($DataPartROdesc).Groups[0].Value
$DatePartRO= $expressionRO
$FinalDateRO = [datetime]::ParseExact($DatePartRO,'dd/MM/yyyy',$null)
If ($DatePartSubsRONew -lt $DateMaxTimeNew){
Write-Host "$AcountNameRO ouf of date scope"}
else {Write-Host "$AcountNameRO in scope"
If ((get-date $FinalDateRO.Date) -eq (get-date $DateMaxTime.Date)){
Write-Host "$AcountNameRO is a today Starter"
If ($membersRO -notcontains $AcountNameRO ) {
Write-Host "Adding external group $groupRO for: $AcountNameRO"
Add-ADGroupMember -Identity "EXTERNALACCESS" -Members $AcountNameRO
[array]$FinalResultRO += New-Object psobject -Property @{User=$AcountNameRO}
}
Else {Write-Host "$AcountNameRO exists in group $groupRO"}
}Else {Write-Host "$AcountNameRO is not a Starter"}
}
}
}
$listRO = [array]$FinalResultRO |Select User |Out-String
$listRO.gettype()
#
if ([string]::IsNullOrEmpty($listRO){
Write-Host "nothing to send"
}
Else {
Write-Host "Mail sent"
Send-MailMessage -From "Donut@love.com" -To "ITsystemL@love.com" -Subject "Following users have been granted external access rights" -smtpServer "internalrelay.donut.love.com" -body "$($listRO)"
}
我对其他国家也有相同的代码(一个脚本中还有 4 个国家)并且它有效(我只是复制粘贴) 奇怪的是,当我收到用户已被授予分组但在罗马尼亚的情况下这是怎么了:
- 我收到邮件说用户 selectecby 脚本获得了组“外部”
- 当我签入 AD 时,未分配组(我检查复制,这不是它)
- 其他国家/地区具有相同的代码并且可以使用
这里可能有什么问题?
解决方案
推荐阅读
- svg - SVG 徽标上带圆圈的文本(顶部和底部)
- javascript - 表单数据未发布
- javascript - CRM 2011 调用 Ajax 给出错误请求错误
- typescript - Javascript/Typescript 默认顺序排序
- javascript - 如何添加 2 个不同 div 中的按钮?
- python - 如果使用 .filter 找不到记录,则使其抛出错误
- javascript - 检测字符串中的相同事件
- android - 动画边界半径
- java - RestTemplate 以 String 形式返回数据,但不填充列表嵌套对象
- android - 未来建造者
- 不显示任何数据