Сценарий Powershell для удаления пользователей из списка рассылки - PullRequest
0 голосов
/ 10 мая 2019

Так как я был уведомлен, я не мог попросить написать код, пересматривая сообщение. У меня есть этот код. Он работает, но не извлекает какие-либо данные в файл cvs и не удаляет пользователей из DL. Не уверен, почему это не работает. Это выполняется на локальном сервере Exchange 2010 с консолью управления обменом. Я уверен, что это то, где я запутался, но не уверен, как это исправить. where-object {($ _. identity -eq "o365.test3")}

 Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010 
#path to output file
$OutFile = 'C:\Scripts\Logs\' 
$OutFile_LOG = $OutFile+'DL_removeusers_'+$(get-date).ToString('yyyyMMdd')+'.csv'

$totalObj = @()
#get all distribution groups
$temp = Get-DistributionGroup -ResultSize Unlimited | 
ForEach-Object { 
  #get certain user from Distribution Lists
  [array]$mem = Get-DistributionGroupMember -id $_ -ResultSize Unlimited | where-object {($_.identity -eq "o365.test3") } 
  for ($i = 0; $i -lt $mem.Count; $i++) { 
    $member = $mem[$i].name 

    #remove user from distribution group
    Remove-DistributionGroupMember -Identity $_ -Member $mem[$i].DistinguishedName -BypassSecurityGroupManagerCheck -confirm:$false     
    $obj = New-Object System.Object 
    $obj | Add-Member -MemberType NoteProperty -Value $_.Name -Name 'Distribution Group' -Force 
    $obj | Add-Member -MemberType NoteProperty -Value $member -Name 'Members' -Force 
    $obj | Add-Member -MemberType NoteProperty -Value $mem[$i].SamAccountName -Name 'SamAccountName' -Force 
    $obj | Add-Member -MemberType NoteProperty -Value $mem[$i].identity -Name 'OU' -Force -PassThru 
    $totalObj += $obj 
  } 
}

#create output file
$totalObj | Export-Csv $OutFile_LOG
Read-Host -Prompt “Press Enter to exit” 
...