Перейти к содержимому

Как вывести список почтовых ящиков с информацией отключены пользователи и есть ли редиректор exchange

Задача сделать список почтовых ящиков с информацией отключена или нет учетная запись и есть ли редирект.

# Подключение к Exchange PowerShell
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "http://<ExchangeServerFQDN>/PowerShell/" -Authentication Kerberos
Import-PSSession $session

# Получение списка ящиков
$mailboxes = Get-Mailbox -ResultSize Unlimited

# Путь к CSV-файлу для вывода
$csvPath = "C:\Path\To\Output.csv"

# Создание пустого массива для хранения данных
$exportData = @()

# Обработка каждого ящика
foreach ($mailbox in $mailboxes) {
    $primarySMTPAddress = $mailbox.PrimarySMTPAddress

    # Получение данных ящика и статуса отключения
    $adUser = Get-ADUser -Filter "ProxyAddresses -like '*$primarySMTPAddress'" -Properties Enabled
    
    if ($adUser) {
        $forwardingAddress = $mailbox.ForwardingAddress
        $forwardingSmtpAddress = ""

        if ($forwardingAddress) {
            $forwardingSmtpAddress = (Get-Recipient -Identity $forwardingAddress).PrimarySmtpAddress
        }
        
        $data = [PSCustomObject]@{
            UserPrincipalName = $adUser.UserPrincipalName
            DisplayName = $mailbox.DisplayName
            DisconnectStatus = If (!$adUser.Enabled) { "Отключен" } Else { "Включен" }
            ForwardingAddress = $forwardingSmtpAddress
        }
    
        # Добавление данных в массив экспорта
        $exportData += $data
    }
}

# Экспорт данных в CSV-файл с кодировкой UTF-8
$exportData | Export-Csv -Path $csvPath -NoTypeInformation -Encoding UTF8

После этого берем этот список и проверяем в домене куда идёт редирект включена или выключена учетная запись пользователя

# Путь к CSV-файлу
$csvPath = "C:\1\Output1.csv"

# Получение данных из CSV-файла
$emailData = Import-Csv -Path $csvPath

# Создание пустого массива для хранения данных
$exportData = @()
$credential = Get-Credential
        $session = New-PSSession -ComputerName $domain -Credential $credential
# Обработка каждой строки CSV-файла
foreach ($dataRow in $emailData) {
    $forwardingAddress = $dataRow.ForwardingAddress
    
    if ($forwardingAddress) {
        $domain = "adminbd.ru"
        
        # Подключение к домену пересылки
        
       # Import-PSSession -Session $session -Module ActiveDirectory
        
        # Проверка статуса учетной записи в AD
        try {
            $adUser = Get-ADUser -Filter { EmailAddress -eq $forwardingAddress } -Properties Enabled -ErrorAction Stop
            $status = If ($adUser.Enabled) { "Включена" } Else { "Выключена" }
        }
        catch {
            $status = "Не найдена в AD"
        }
        
        $exportData += [PSCustomObject]@{
            ForwardingAddress = $forwardingAddress
            DestinationDomain = $domain
            Status = $status
        }
        
        # Закрытие сеанса и удаление модуля Active Directory PowerShell
        #Remove-PSSession -Session $session
       # Remove-Module ActiveDirectory
    }
}

# Путь к CSV-файлу для вывода
$csvOutputPath = "C:\1\Output.csv"

# Экспорт данных в CSV-файл
$exportData | Export-Csv -Path $csvOutputPath -NoTypeInformation -Encoding UTF8

 

 

Similar Posts:

Метки:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *