В настоящее время я работаю над сценарием для удаления пользователя из всех облачных групп и групп рассылки AD, в которые они входят, за исключением групп безопасности AD. У меня это работает, и оно правильно удаляет пользователя из групп, перечисленных в сценарии, но я ищу помощи, чтобы очистить вывод некоторых данных в операторе If, когда он циклически перебирает список для удаления пользователя.
Вот код:
###Remove User from All Cloud and AD Distribtution Groups###
$email = Read-Host "Please provide the user's email address to remove from all distribution groups"
$EmpID = Read-Host "Please provide the user's Employee ID to remove from all AD list"
$mailbox = Get-Mailbox -Identity $email
$DN=$mailbox.DistinguishedName
$Filter = "Members -like ""$DN"""
$DistributionGroupsList = Get-DistributionGroup -ResultSize Unlimited -Filter $Filter | Where-Object GroupType -ne 'Universal, SecurityEnabled'
Write-host `n
Write-host "Listing all Cloud & AD Distribution Groups:"
Write-host `n
$DistributionGroupsList | ft
$answer = Read-Host "Would you like to proceed and remove $email from all listed distribution groups ( y / n )?"
If ($answer -eq 'y') {
ForEach ($item in $DistributionGroupsList) {
Try {
Remove-DistributionGroupMember -Identity $item.PrimarySmtpAddress -Member $email -BypassSecurityGroupManagerCheck -Confirm:$false -ErrorAction SilentlyContinue
Write-Host "Successfully removed from $item" -Foregroundcolor White -Backgroundcolor Green
}
Catch{
Write-Host "$item is not a Cloud DL" -Foregroundcolor White -Backgroundcolor Red
}
Try {
Remove-ADGroupMember -Identity $item.DisplayName -Members $EmpID -Confirm:$false -ErrorAction SilentlyContinue
Write-Host "Successfully removed from $item" -Foregroundcolor White -Backgroundcolor Green
}
Catch{
Write-Host "$item is not an AD Group" -Foregroundcolor White -Backgroundcolor Red
}
}
Write-host `n
Write-host "Successfully removed from all groups"
Remove-Variable * -ErrorAction SilentlyContinue
}
Else
{
Remove-Variable * -ErrorAction SilentlyContinue
}
Основная часть, с которой я обращаюсь за помощью, похожа на ту, в которой я изложил заявление If. Я использую Try and Catch, чтобы попытаться отфильтровать группы и вывести их, если группа не определенного типа, а затем вывести, когда эта группа также удаляется. Я также пытаюсь скрыть любые ошибки, всплывающие из группы, которые невозможно удалить.
Мы используем введенный адрес электронной почты для удаления из облачных списков DL и идентификатор сотрудника для удаления из групп AD. Любая помощь будет высоко цениться, если у кого-нибудь есть какие-либо предложения!
Спасибо!