Power Shell для удаления пользователя из всех облачных групп и групп рассылки AD - PullRequest
0 голосов
/ 11 февраля 2020

В настоящее время я работаю над сценарием для удаления пользователя из всех облачных групп и групп рассылки 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. Любая помощь будет высоко цениться, если у кого-нибудь есть какие-либо предложения!

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...