Объявление

Свернуть
Пока нет объявлений.

Полезные командлеты Powershell для Exchange

Свернуть
Это закреплённая тема.
X
X
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения

    Полезные командлеты Powershell для Exchange

    Человеки привет! Собираем тут полезные командлеты для exchange server, то что необходимо каждый день, в одном месте.
    Формат такой - код powershell и то что он делает. Возможно пояснить походу для масс.
    Погнали.

    Команда выгружает содержимое почтового ящика пользователя username@mailbox.com в файл PST
    Код:
    New-MailboxExportRequest -Mailbox username@mailbox.com -FilePath "\\suse\mailarchive\user.pst"
    Поиск и удаление писем с темой 123 в почтовом ящике username@mailbox.com
    Код:
    Get-mailbox username@mailbox.com | search-mailbox –searchquery “Subject:’123’” –DeleteContent

    #2
    Очистка почтового ящика exchange
    Код:
    Search-Mailbox username@domain.com -Deletecontent

    Комментарий


      #3
      Для вывода информации почтовых ящиках на сервере.
      Код:
      Get-Mailbox -Serve имя сервера
      Для вывода расширенной информации по почтовым ящикам и сортировкой по размеру
      Код:
      Get-Mailbox -Serve имя сервера | Get-MailboxStatistics | sort TotalItemSize -descending | ft DisplayName, TotalItemSize, ItemCount
      При перемещении почтового ящика посмотреть информацию
      Код:
      Get-MoveRequest -Identity имя почтового ящика
      Информация о размере почтовых баз на конкретном сервере.
      Код:
      Get-MailboxDatabase -Server имя сервера -Status | select ServerName,Name,DatabaseSize
      или в другом виде
      Get-MailboxDatabase -Status -Server имя сервера | fl name, DatabaseSize
      Информация о сотрудниках, которые входят в определенную группу
      Код:
      Get-DistributionGroupMember имя группы
      Информация о содержании общих папок
      Код:
      Get-PublicFolderStatistics -Server имя сервера
      Отправка писем с сервера
      Код:
      [PS] C:\Windows\system32>Send-MailMessage -From имя ящика с которого отправляем -To имя ящика куда отправляем -Subject "Test #01" -Body "Justa test message" -SMTPServer имя сервера отправки
      Информация по спискам рассылок
      Код:
      Get-DistributionGroup
      Информация по общим календарям
      Код:
      Get-Publicfolder -Identity имя -recurse
      Переиндексация базы. Иногда требуется, когда возникает ошибка при поиске писем
      [PS] C:\Program Files\Microsoft\Exchange Server\V14\scripts>.\ResetSearchIndex.ps1 -Force имя базы
      MSExchangeSearch service stopped
      Deleting catalog forимя базы
      No index for database:имя базы
      MSExchangeSearch service Started

      Принудительный запрос сертификата
      Get-ExchangeCertificate | FL

      Комментарий


        #4
        Принудительное обновление OAB
        Код:
        Get-OfflineAddressbook | Update-OfflineAddressbook
        Get-ClientAccessServer | Update-FileDistributionService
        Включение Архива для всех ящиков из базы
        Задание ограничения на архив и политики архивирования
        Код:
        Get-MailboxDatabase MDB | Get-Mailbox | Enable-Mailbox -Archive -ArchiveDatabase AMDB
        Get-MailboxDatabase MDB | Get-Mailbox | Set-Mailbox -ArchiveWarningQuota 3584MB -ArchiveQuota 4GB
        Get-MailboxDatabase MDB | Get-Mailbox | Set-mailbox -RetentionPolicy "Default Archive and Retention Policy"
        Политика хранения применяется Managed Folder Assistant’ом. В Exchange 2010 RTM он запускался по расписанию (с часа ночи до 9 утра по умолчанию). В Exchange 2010 SP1 этот ассистент включен постоянно, так что политики архивирования к почтовому ящику должны примениться сразу же. Для ручного запуска используется командлет:
        Код:
        Get-MailboxDatabase | Get-Mailbox | Start-ManagedFolderAssistant
        Найти какому почтовому ящику принадлежит определенный электронный адрес
        Код:
        Get-mailbox -resultsize unlimited | where-object{$_.Emailaddresses -like "*st@*"} | format-list name,emailaddresses,database,servername
        Поиск и удаление писем по теме,вложению
        Код:
        Get-Mailbox -ResultSize unlimited | Search-Mailbox -SearchQuery вложение:"котики.jpg" -DeleteContent
        Посмотр статистики по отдельной базе с ограничением числа отображаемых ящиков.
        Код:
        Get-MailboxDatabase MDB | Get-Mailbox -ResultSize 15
        Просмотр статистики по отдельной БД
        Код:
        Get-MailboxDatabase MDB |Get-MailboxStatistics | Sort totalitemsize -desc | ft displayname, totalitemsize, itemcount
        Экспорт статистики в CSV файл
        Код:
        Get-MailboxDatabase MDB | Get-MailboxStatistics | Sort totalitemsize -desc | ft displayname, totalitemsize, itemcount | Export-CSV C:\MDB.csv -encoding unicode
        Ящики которые не использовались за последние 120 дней
        Код:
        Get-MailboxDatabase | Get-MailboxStatistics | where {$_.Lastlogontime -lt (get-date).AddDays(-120)} | Sort Lastlogontime -desc | ft DisplayName,ItemCount,Lastlogontime
        Экспорт статистики в HTML
        Код:
        Get-MailboxDatabase | Get-MailboxStatistics | where {$_.Lastlogontime -lt (get-date).AddDays(-120)} | Sort Lastlogontime -desc | ConvertTo-Html DisplayName,ItemCount,Lastlogontime > c:\temp\MB.html
        
        [PS] C:\>Get-MailboxDatabase | Get-MailboxStatistics | where {$_.Lastlogontime -lt (get-date).AddDays(-60)} | where {$_.DisconnectReason -ne "Disabled"} | where {$_.Lastlogontime -ne $null} | Sort Lastlogontime | ft DisplayName,ItemCount,Lastlogontime
        Предоставить доступ группе «Organization Management» к содержимому всех существующих почтовых ящиков
        Код:
        Get-Mailbox | Add-MailboxPermission -User "Organization Management" -AccessRights FullAccess -AutoMapping:$False
        
        [PS] C:\>Get-Mailbox | Get-MailboxPermission | ?{($_.AccessRights -like "*fullaccess*") -and ($_.User
        -notlike "*nt authority\self*") -and ($_.IsInherited -like "false")}
        -----Подумал и добавил------

        Эскпорт почтового ящика в PST
        Код:
        New-MailboxExportRequest -Mailbox "zalozny" -Filepath "\\PC\temp\zalozny.pst" -ContentFilter {(Received -gt "01/04/2014")}
        New-MailboxExportRequest -Mailbox "zalozny" -Filepath "\\PC\temp\zalozny.pst"
        Просмотреть статус экспорта
        Код:
        Get-MailboxExportRequest | ft
        очистка выполненых запросов
        Код:
        Get-MailboxExportRequest -Status Completed | Remove-MailboxExportRequest
        проверить пустое пространство в почтовых базах
        Код:
        Get-MailboxDatabase -Status | FL Name,AvailableNewMailboxSpace
        Найдено в просторах интернетов

        Комментарий


          #5
          Интересный скрипт для отчетности Exchange
          https://gallery.technet.microsoft.co...hange-2388e7c9
          Предлагаемый скрипт позволяет автоматически создавать отчет для серверов и DAG (database availability groups) в Exchange 2003, 2007, 2010 и 2013, а именно:
          • Общее количество серверов на версию и SP Exchange
          • Общее количество почтовых ящиков на версию и SP Exchange
          • Общее количество Exchange ролей в Вашей ИТ-инфраструктуре
          • Разбивка по сайтам для следующих параметров:
          o Почтовые ящики на сайте
          o Exchange серверы, версия, пакет обновления и его версия, уровень службы, установленные роли, версия ОС и service
          • Разбивка по каждой Database Availability Group, включая:
          o Наименование каждой DAG, число членов и их список
          o Информация о базе данных:
          — Имя
          — Количество почтовых ящиков на базу данных и их средний размер
          — Количество архивных почтовых ящиков на базу данных и их средний размер – показывается только если БД включена в архивные почтовые ящики
          — Размер БД и свободное место
          — % свободного места в БД и логическом диске
          — Время и дата последнего бекапа (новое) – показывается, если хотя бы одна база данных DAG имеет полный бекап
          — Состояние циклического ведения журнала (Circular Logging) (новое) — показывается, если хотя бы для одной базы данных DAG включено циклическое ведение журнала
          — Сервер, на котором находится активная копия
          — Список серверов, на которых находятся активные копии и количество копий
          • Разбивка по не-DAG базам данных, включая БД Exchange 2007 и 2003 с информацией о базе данных и имени группы хранения Storage Group (где это применимо).
          Образец развернутого отчета


          Пример запуска
          Код:
          .\Get-ExchangeEnvironmentReport  -HTMLReport c:\report.html

          Комментарий


            #6
            Узнать размер почтовых баз Exchange
            Код:
            Get-MailboxDatabase -Status | select-object Name,Server,DatabaseSize,Mounted
            Удалить "Плохое письмо" из всех ящиков в БД Exchange
            Код:
            get-mailbox -OrganizationalUnit Needed_OU -ResultSize unlimited | Search-Mailbox -SearchQuery Subject:'Very bad message' -TargetMailbox mailbox@mailbox.com -TargetFolder Inbox –DeleteContent
            Приведенный выше командлет позволяет реализовать поиск по ящикам требуемого аккаунта и убрать нежелательное сообщение. В сценарии ниже для примера задана тема письма, почтовый ящик куда мы складываем «плохое» сообщение и целевая папка.

            Запретить юзерам возможность соединения по RPC over HTTPS
            Код:
            Set-CASMailbox -Identity mailbox@mailbox.com -MAPIBlockOutlookRpcHttp $true
            Запретить работать с почтовым ящиком юзеру, настроенному не в режиме кэширования
            Код:
            Set-CASMailbox -Identity mailbox@mailbox.com -MAPIBlockOutlookNonCachedMode $true
            Запретить использовать пользователям версии Outlook старее, чем 2003.
            Код:
            Get-CASMailbox -Resultsize Unlimited | Set-CASMailbox -MAPIBlockOutlookVersions '-5.9.9;7.0.0-10.9.9'
            Получить сводную информацию по почтовым ящикам с заданного аккаунта и экспортировать ее в Excel

            Код:
            Get-Mailbox -OrganizationalUnit groza -Resultsize unlimited | Get-MailboxStatistics | Sort-Object TotalItemSize -Descending | Select-Object DisplayName,@{Name="TotalItemSize(KB)";Expression={$_.TotalItemSize.Value.ToKB()}},ItemCount,lastlogontime,lastlogofftime,lastloggedonuseraccount | Export-Csv c:\xfer\groza.csv | foreach {$_.length=($_.length)/1024/1024/1024; $_}
            Проверка возможности логина в определенную базу
            Код:
             Test-MAPIConnectivity -Database DB1
            Проверка возможность логина в определенный почтовый ящик
            Код:
            Test-MAPIConnectivity –Identity username@contoso.ru
            - -Подумал и добавил - -

            Test-ActiveSyncConnectivity — тестирует ActiveSync протокол;
            Test-CalendarConnectivity – тестирование доступности календаря;
            Test-EcpConnectivity – валидация виртуальной директории ECP на выбранном CAS сервере
            Test-ImapConnectivity – проверка статуса сервиса IMAP и возможности клиентского подключения по данному протоколу
            Test-OutlookWebServices – проверка корректности информации, выдаваемой пользователю сервисом AutoDiscover
            Test-OwaConnectivity – валидация виртуальной директории OWA на указанном CAS сервере
            Test-WebServicesConnectivity – проверка Exchange Web Services, которые используются, например, Outlook for Mac, Mac Mail и еще некоторыми клиентами.

            Комментарий


              #7
              Поиск писем в журналах exchange с форматированным выводом FL, запись в файл txt
              Код:
              Get-MessageTrackingLog -Sender sender@domain1.ru -Recepients recep@domain2.ru | select timestamp,messageid,messagesubject | FL > c:\result.txt

              Комментарий


                #8

                Список всех имеющихся отключенных ящиков во всех базах организации:
                Код:
                Get-MailboxDatabase | Get-MailboxStatistics | Where { $_.DisconnectReason -eq "Disabled" } | ft DisplayName,Database,DisconnectDate,MailboxGUID
                Поиск в конкретной почтовой БД
                Код:
                Get-MailboxStatistics –database DBNAME | Where { $_.DisconnectReason -eq "Disabled" } | ft DisplayName,Database,DisconnectDate,MailboxGUID
                Удаление почтового ящика по GUID
                Код:
                Remove-StoreMailbox -Database Msk-DB1  -Identity "6398897d-d12a-4975-8ef0-ebca5b1c635b" -MailboxState Disabled
                Удаление всех отключенных почтовых ящиков в организации Exchange
                Код:
                Get-MailboxDatabase | Get-MailboxStatistics | where {$_.DisconnectReason -eq "Disabled"} | foreach {Remove-StoreMailbox -Database $_.database -Identity $_.mailboxguid -MailboxState SoftDeleted}

                Комментарий

                Обработка...
                X