Поиск

суббота, 30 марта 2019 г.

Установка Remote Server Administration Tools (RSAT) в Windows 10.


RSAT - средства удаленного администрирования сервера для Windows 10 включают диспетчер серверов, оснастки консоли управления (MMC), консоли, командлеты и поставщики Windows PowerShell, а также программы командной строки для управления ролями и компонентами в Windows Server.

Для установки открываем PowerShell с правами администратора и выполняем:
Get-WindowsCapability -Name RSAT* -Online | Add-WindowsCapability -Online

воскресенье, 24 марта 2019 г.

Запуск скриптов PowerShell без отображения окна консоли.

Содержимое скрипта (*.ps1):

############# Скрытие консоли PowerShell ###########
# ==================================================
# .Net метод для скрытия/отображения консоли в фоновом режиме:
Add-Type -Name Window -Namespace Console -MemberDefinition '
[DllImport("Kernel32.dll")]
public static extern IntPtr GetConsoleWindow();
[DllImport("user32.dll")]
public static extern bool ShowWindow(IntPtr hWnd, Int32 nCmdShow);
'
# ==================================================
# Скрываем консоль - "0".
# Например, активизация окна и отображение его свернутым - "6":
# ==================================================
$hideconsole = [Console.Window]::GetConsoleWindow()
[Console.Window]::ShowWindow($hideconsole, 0)

четверг, 14 марта 2019 г.

Исправление индексации баз данных Exchange 2013/2016.

Проблема:

Иногда случается, что индекс содержимого базы данных Exchange ломается. Первое с чем сталкиваются пользователи - это сбой при попытке поиска элементов в клиенте Outlook, как локально, так и через Outlook Web Access.

Неполадки остаются без внимания, когда остальные службы работают нормально, однако в конечном итоге отсутствие индекса вызывает проблемы. Например, если используется группа доступности базы данных - Database Availability Group (DAG), возникает проблема с переключением баз данных.

Решение:

Первое, убедитесь в функционировании служб:
- “Microsoft Exchange Search”;
- “Microsoft Exchange Search Host Controller”.

Для DAG!

Диагностика:
1. Проверка статуса индексации баз данных:
Get-MailboxDatabaseCopyStatus * | where {$_.ContentIndexState -eq “Failed”}

Если при выводе «MailboxDatabaseCopyStatus» статус ContentIndex - “Failed”, исправляем «индекс».

Решение проблемы:
1. Проверка статуса индексации баз данных и исправление:
Get-MailboxDatabaseCopyStatus * | where {$_.ContentIndexState -eq “Failed”} | Update-MailboxDatabaseCopy -CatalogOnly

Передадим отфильтрованные выходные данные полученные при выполнении "Get-MailboxDatabaseCopyStatus" в командлет "Update-MailboxDatabaseCopy" с ключом "-CatalogOnly", чтобы повторно заполнить индекс базы данных почтовых ящиков.

2. Дождитесь завершения задачи, и снова проверьте состояние индекса:
Get-MailboxDatabaseCopyStatus * | fl ContentIndex*

Без DAG!

Диагностика:
1. Проверка статуса индексации баз данных:
Get-MailboxDatabaseCopyStatus * | where {$_.ContentIndexState -eq “Failed”}

Если при выводе «MailboxDatabaseCopyStatus» статус ContentIndex - “Failed and Suspend”, создаем новый «индекс».

Решение проблемы:
1. Останавливаем службы:
- “Microsoft Exchange Search”;
- “Microsoft Exchange Search Host Controller”.

В PowerShell:
Stop-Service -Name MSExchangeFastSearch, HostControllerService

2. Расположение базы данных:
Get–MailboxDatabase DB2Gb | select EdbFilePath

3. Переименовываем директорию с GUID базы данных, например, с именем:
CGER7751-F8G3-21XJ-K4562DFC321LW56.1.Single

4. Запускаем службы:
- “Microsoft Exchange Search”;
- “Microsoft Exchange Search Host Controller”.

В PowerShell:
Start-Service -Name MSExchangeFastSearch, HostControllerService

5. Дождитесь завершения задачи, и снова проверьте состояние индекса:
Get-MailboxDatabaseCopyStatus * | fl ContentIndex*

Важно! Создание полнотекстового индекса продолжительно, также повышенна нагрузка на дисковую подсистему. Выполнять в периоды минимальной нагрузки, например, в выходные дни!

суббота, 2 марта 2019 г.

PowerShell - Обновление GAL, AL, OAB на сервере Exchange 2013/2016.

Windows PowerShell на локальном компьютере позволяет управлять параметрами Exchange сервера, путем создания удаленного сеанса PowerShell для Exchange.

Содержимое скрипта (*.ps1):

# ==================================================
### Запрашиваем учетные данные для подключения:
$UserCredential = Get-Credential -Credential domainname\admin 

# ==================================================
### Указание необходимых параметров подключения
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://servername/PowerShell/ -Authentication Kerberos -Credential $UserCredential 

# ==================================================
### Импорт командлетов Exchange в локальный сеанс Windows PowerShell, чтобы их можно было использовать.
Import-PSSession $Session -DisableNameChecking 

# ==================================================
### Обновление GlobalAddressList, AddressList, OfflineAddressBook
Get-GlobalAddressList | Update-GlobalAddressList
Get-AddressList | Update-AddressList 
Get-OfflineAddressBook | Update-OfflineAddressBook

# ==================================================
### Пауза на 5 секунд
Start-Sleep -Seconds 5 

# ==================================================
### Разрываем сессию с сервером
Remove-PSSession $Session