Задача сделать список почтовых ящиков с информацией отключена или нет учетная запись и есть ли редирект.
# Подключение к 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:
- Как сделать автоматическое создание почтового ящика exchange.
- Как создать переадресацию с одного ящика на другой в exchange. Переезд в другой домен.
- Как сделать скрипт для архивировании почты exchange перед удаление учетной записи.
- Как завести пользователь в exchange через powershell.
- Как сделать автоматическое создание почтовых ящиков с отключёнными ActiveSync и MAPI и добавить в группу G-Deny to send