Problem persist?
If the problem persists, you can see in the “HomeMDB” AD Attribute User if the right database is tagged! if not, you can “Edit” it to add the right value!
You can search your “HomeMDB” value when you connect on your domain in ADSI Edit > Configuration
Browse to :
CN=Configuration,DC=your,DC=domain > CN=Services > CN=Microsoft Exchange > CN=ORGANIZATION > CN=Administrative Groups > CN=Exchange Administrative Group (XXXXXXX) > CN=Databases
1 | CN=Configuration,DC=your,DC=domain>CN=Services>CN=Microsoft Exchange>CN=ORGANIZATION>CN=Administrative Groups>CN=Exchange Administrative Group(XXXXXXX)>CN=Databases |
Here you have databases list. You do copy the “Distinguished Name” value of database and assign it to your user.
The type of value is :
CN=DATABASE,CN=Databases,CN=Exchange Administrative Group (XXXXXXXXX),CN=Administrative Groups,CN=ORGANIZATION,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=YOUR,DC=DOMAIN
1 | CN=DATABASE,CN=Databases,CN=Exchange Administrative Group(XXXXXXXXX),CN=Administrative Groups,CN=ORGANIZATION,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=YOUR,DC=DOMAIN |
Reload the command line:
PowerShell
Get-MailboxDatabase «DATABASE» | Clean-MailboxDatabase
1 | Get-MailboxDatabase»DATABASE»|Clean-MailboxDatabase |
And verify again:
Get-MailboxDatabase «DATABASE» | Get-MailboxStatistics | where {$_.DisconnectReason -ne $null} | ft displayname,database,disconnectreason -auto
1 | Get-MailboxDatabase»DATABASE»|Get-MailboxStatistics|where{$_.DisconnectReason-ne$null}|ft displayname,database,disconnectreason-auto |
Tips !
If you want to change the HomeMDB for multiple users, you can execute this Powershell cdmlet :
PowerShell
Get-ADUser -Filter * -SearchBase «OU=YOUR-OU,DC=YOUR,DC=DOMAIN» | Set-ADUser -Replace @{HomeMDB=»CN=DATABASE,CN=Databases,CN=Exchange Administrative Group (XXXXXXXXXXX),CN=Administrative Groups,CN=ORGANIZATION,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=YOUR,DC=DOMAIN»}
1 | Get-ADUser-Filter*-SearchBase»OU=YOUR-OU,DC=YOUR,DC=DOMAIN»|Set-ADUser-Replace@{HomeMDB=»CN=DATABASE,CN=Databases,CN=Exchange Administrative Group (XXXXXXXXXXX),CN=Administrative Groups,CN=ORGANIZATION,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=YOUR,DC=DOMAIN»} |
I hope this post has helped you !
What do you need to know before you begin?
-
Estimated time to complete each procedure: 2 minutes.
-
For more information about accessing and using the EAC, see Exchange admin center in Exchange Server. To learn how to open the Exchange Management Shell in your on-premises Exchange organization, see Open the Exchange Management Shell.
-
You need to be assigned permissions before you can perform this procedure or procedures. To see what permissions you need, see the «Recipient Provisioning Permissions» section in the Recipients Permissions topic.
-
For information about keyboard shortcuts that may apply to the procedures in this topic, see Keyboard shortcuts in the Exchange admin center.
Tip
Having problems? Ask for help in the Exchange forums. Visit the forums at: Exchange Server, Exchange Online, or Exchange Online Protection.
См. также
- Папки и элементы в веб-службах Exchange
- Разработка клиентов веб-служб для Exchange
- Папка «элементы с возможностью восстановления»
- Exchange 2013: удаление повторяющихся рядов программным способом из серверов Exchange Server
- Exchange 2013: Программное удаление задач из учетной записи на серверах Exchange Server
- Exchange 2013: пустые папки на серверах Exchange Server программным способом
- Exchange 2013: Программное удаление папок из серверов Exchange Server
- Exchange 2013: Программное удаление многих элементов из серверов Exchange Server
- Exchange 2013: Программное удаление контактов из серверов Exchange Server
- Удаление встреч и отмена собраний с помощью EWS в Exchange
- Управление параметрами сохраняемого приложения с помощью EWS в Exchange
Disable mailboxes
Use the EAC to disable a mailbox
-
In the EAC, go to Recipients, and click the tab for the type of mailbox that you want to disable:
-
Mailboxes for user mailboxes and linked mailboxes.
-
Shared for shared mailboxes.
-
Use the Exchange Management Shell to disable a mailbox
To disable a mailbox, use this syntax:
This example disables the user mailbox that has the alias value danj.
This example disables the room mailbox named Conf Room 31/1234 (12).
How do you know this worked?
To verify that you’ve successfully disabled a mailbox, do any of these steps:
-
Notes:
When you delete a mailbox, the value of the DisconnectReason property is also , but the corresponding Active Directory user account is also deleted.
Then, run the previous command, which should now return results.
Delete mailboxes
Use the EAC to delete a mailbox
-
In the EAC, go to the location for the type of mailbox that you want to delete:
-
Recipients > Mailboxes for user mailboxes and linked mailboxes.
-
Recipients > Resources for room and equipment mailboxes.
-
Recipients > Shared for shared mailboxes.
-
Public folders > Public folder mailboxes for public folder mailboxes.
-
To delete a mailbox, use this syntax:
This example deletes the equipment mailbox named Fleet Van (16).
How do you know this worked?
To verify that you’ve successfully deleted a mailbox, do any of these steps:
-
In Active Directory Users and Computers, verify that the associated account is no longer listed. Note that mailbox types other than user and linked mailboxes also have associated user accounts that are disabled (for example, room, equipment, arbitration, shared, and public folder mailboxes).
-
Notes:
Then, run the previous command, which should now return results.
Установка
Сначала делаем резервную копию AD. Хотя, возможность последующего восстановления из неё весьма сомнительна. Штатными средствами на DC: Start — Administrative Tools — Windows Server Backup.
Для удобства выполнения всех манипуляций, связанных с установкой Exchange 2013, с одного сервера устанавливаем на него (на новый сервер Exchange 2013) средства администрирования. В Windows Power-Shell:
Import-Module ServerManager
Install-WindowsFeature RSAT-ADDS
Install-WindowsFeature AS-HTTP-Activation, Desktop-Experience, NET-Framework-45-Features, RPC-over-HTTP-proxy, RSAT-Clustering, RSAT-Clustering-CmdInterface, Web-Mgmt-Console, WAS-Process-Model, Web-Asp-Net45, Web-Basic-Auth, Web-Client-Auth, Web-Digest-Auth, Web-Dir-Browsing, Web-Dyn-Compression, Web-Http-Errors, Web-Http-Logging, Web-Http-Redirect, Web-Http-Tracing, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Lgcy-Mgmt-Console, Web-Metabase, Web-Mgmt-Console, Web-Mgmt-Service, Web-Net-Ext45, Web-Request-Monitor, Web-Server, Web-Stat-Compression, Web-Static-Content, Web-Windows-Auth, Web-WMI, Windows-Identity-Foundation
(Да, это одна очень длинная строка. Но за то все просто и быстро.)
Устанавливаем на сервер:
Остальное, если потребуется, подскажет программа установки сервера Exchange 2013.
В качестве дистрибутива использовался не тот ISO, что выложен на MVLS (www.microsoft.com/Licensing/servicecenter), а тот, что в открытом доступе — KB2936880
(http://www.microsoft.com/ru-RU/download/details.aspx?id=43103), файл Exchange2013-x64-cu5.exe. Он в 3 раза меньше и на много более свежий. Это самораспаковывающийся архив. Независимо от выбранного при скачивании языка (RUS/ENG), скачивается один и тот же файл. Язык интерфейса будет зависеть от системы, с которой он запускается.
Запускаем его и распаковываем на новый сервер (D:\Inst\exch2013\).
Дальнейшие манипуляции по подготовке AD нужно выполнять:
— от имени учетной записи с правами «Администраторы схемы» и «Администраторы предприятия»,
— на машине в том же сайте AD, что и хозяин схемы.
У нас все права есть и новый сервер находится в том же сайте, что и хозяин схемы, поэтому выполняем все на новом сервере.
В командной строке с повышенными привилегиями переходим в каталог с установочным пакетом (D:\Inst\exch2013) и выполняем команду:
Setup.exe /PrepareSchema /IAcceptExchangeServerLicenseTerms
После завершения расширения схемы нужно дождаться репликации с остальными DC. В одном сайте репликация должна проходить достаточно быстро, не больше 5 минут. Можно как-то проконтролировать завершение процесса с помощью repadmin. В общем, ждем 10 минут и переходим к подготовке AD:
Setup.exe /PrepareAD /IAcceptExchangeServerLicenseTerms
При установке первого сервера в организации Exchange в этой же команде еще указывают имя новой организации Exchange. Но у нас Exchange уже действует, поэтому имя не нужно.
После завершения подготовки AD также ждем минут 10 и запускаем подготовку доменов:
Setup.exe /PrepareAllDomains /IAcceptExchangeServerLicenseTerms
Теперь нужно дождаться репликации на ВСЕ контроллеры домена, т.е. во всех сайтах. Межсайтовая репликация может происходить довольно долго, и, как правило, её расписание включает ночное время. Можно отложить процесс до завтра, либо инициировать репликацию принудительно через апплет “Sites and Services”. Но тогда уже перед продолжением нужно будет убедиться, что репликация закончилась.
Установку Exchange 2013 запускаем из уже распакованного дистрибутива командой setup.exe. Мастер установки делает проверки системы, если чего-то не хватает, то он либо сам поставит, либо сообщит, что нужно еще сделать. Сама установка достаточно тривиальна. Основных ролей теперь две: сервер клиентского доступа и сервер почтовых ящиков. Эти роли включают в себя все роли версии 2010, кроме пограничного транспортного сервера. В Exchange 2013 SP1 роль пограничного сервера может быть установлена отдельно. Мы её не использовали ни в 2010, ни в 2013. Сам сервер мы ставили в каталог по умолчанию, на диск C:, а для почтовых баз подготовлен диск D:.
Установка заняла минут 20.
Parameters
-Archive
The on-premises mail user and its associated cloud-based mailbox aren’t removed if you use this switch.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019 |
-Confirm
The Confirm switch specifies whether to show or hide the confirmation prompt. How this switch affects the cmdlet depends on if the cmdlet requires confirmation before proceeding.
- Destructive cmdlets (for example, Remove-* cmdlets) have a built-in pause that forces you to acknowledge the command before proceeding. For these cmdlets, you can skip the confirmation prompt by using this exact syntax: .
- Most other cmdlets (for example, New-* and Set-* cmdlets) don’t have a built-in pause. For these cmdlets, specifying the Confirm switch without a value introduces a pause that forces you acknowledge the command before proceeding.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019 |
-DomainController
The DomainController parameter specifies the domain controller that’s used by this cmdlet to read data from or write data to Active Directory. You identify the domain controller by its fully qualified domain name (FQDN). For example, dc01.contoso.com.
Type: | Fqdn |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019 |
-Identity
The Identity parameter specifies the cloud-based mailbox. Valid values are:
- ADObjectID
- GUID
- Distinguished name (DN)
- Domain\Username
- User principal name (UPN)
- LegacyExchangeDN
- Email address
- User alias
Type: | RemoteMailboxIdParameter |
Position: | 1 |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019 |
-IgnoreDefaultScope
The IgnoreDefaultScope switch tells the command to ignore the default recipient scope setting for the Exchange Management Shell session, and to use the entire forest as the scope. This allows the command to access Active Directory objects that aren’t currently available in the default scope.
Using the IgnoreDefaultScope switch introduces the following restrictions:
- You can’t use the DomainController parameter. The command uses an appropriate global catalog server automatically.
- You can only use the DN for the Identity parameter. Other forms of identification, such as alias or GUID, aren’t accepted.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019 |
-IgnoreLegalHold
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019 |
-WhatIf
The WhatIf switch simulates the actions of the command. You can use this switch to view the changes that would occur without actually applying those changes. You don’t need to specify a value with this switch.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Applies to: | Exchange Server 2010, Exchange Server 2013, Exchange Server 2016, Exchange Server 2019 |
Changing User Mailbox Department and Title
In rare situations, you may need to change user’s department and title. Use the following command when you need are required.
Set-User -Identity “<Name/DisplayName/Alias/User Principal Name>” -Department “<Name of Department>” -Title “<Designation or Title>”
1 | Set-User-Identity“<NameDisplayNameAliasUser Principal Name>”-Department“<Name of Department>”-Title“<Designation orTitle>” |
Example
Again, take an example of user “Karim Buzdar” and change or set his department or title.
Set-User -Identity “karim buzdar” -Department “IT” -Title “IT Officer”
1 | Set-User-Identity“karim buzdar”-Department“IT”-Title“IT Officer” |
Creating a User Mailbox
Let us start with creating a user mailbox. Following is the complete syntax:
New-Mailbox -Name <Name> -UserPrincipalName <UPN> -Password (ConvertTo-SecureString -String ‘<Password>’ -AsPlainText -Force) —
1 | New-Mailbox-Name<Name> -UserPrincipalName<UPN>-Password(ConvertTo-SecureString-String'<Password>’-AsPlainText-Force)-Alias<Alias>-FirstName<FirstName>-LastName<LastName>-DisplayName<DisplayName>-OrganizationalUnit<OU> |
Where
-Name specifies the name of the object in an active directory.
-DisplayName is an optional parameter. If not specified, a value of name parameter is used.
Example
The example below will illustrate how you can create a user mailbox.
New-Mailbox -Name “Karim Buzdar” -UserPrincipalName kbuzdar@yourdomain.com -Password (ConvertTo-SecureString -String ‘@password1′ -AsPlainText -Force) -Alias ‘karimbuzdar’ -FirstName karim -LastName buzdar -DisplayName “karim buzdar” -OrganizationalUnit Users
1 | New-Mailbox-Name “Karim Buzdar” -UserPrincipalName kbuzdar@yourdomain.com-Password(ConvertTo-SecureString-String‘@password1′-AsPlainText-Force)-Alias‘karimbuzdar’-FirstName karim-LastName buzdar-DisplayName“karim buzdar”-OrganizationalUnit Users |
If you would like to prompt for the password during runtime, slightly change the above command.
New-Mailbox -Name “Karim Buzdar” -UserPrincipalName kbuzdar@yourdomain.com -Password (Read-host “Enter Password” -AsSecureString) -Alias ‘karimbuzdar’ -FirstName karim -LastName buzdar -DisplayName “karim buzdar” -OrganizationalUnit Users
1 | New-Mailbox-Name “Karim Buzdar” -UserPrincipalName kbuzdar@yourdomain.com-Password(Read-host“Enter Password”-AsSecureString)-Alias‘karimbuzdar’-FirstName karim-LastName buzdar-DisplayName“karim buzdar”-OrganizationalUnit Users |
Get-Mailbox -Identity “<Name/DisplayName/Alias/User Principal Name>”
1 | Get-Mailbox-Identity“<NameDisplayNameAliasUser Principal Name>” |
Удаление неправильно выведенного из строя сервера Exchange
Бывают случаи, когда сервер исчез/перезалился/потерялся без удаления на нём Exchange, но остался в системе. Избавиться от него и его хвостов одной кнопкой, к сожалению, не получится.
Есть два пути для удаления следов:
- Через режим восстановления
- Через ручное удаление, с подчисткой схемы
Я являюсь категорическим противником второго варианта. Никогда не знаешь, всплывёт где-нибудь когда-нибудь или нет. Поэтому, делюсь удалением через восстановление.
Берём такую же операционную систему, как и на потерянном сервере. Производим установку Exchange через командую строку с использованием ключа /Mode:RecoverServer.
После установки, перезагружаемся и запускаем удаление:
После удаления, у меня подчистились все хвосты неправильно удалённого сервера Exchange.
Возможные ошибки
Сервер может не установиться до конца. Это не страшно. Если была пройдена проверка перед установкой, установка началась и какие-то из компонентов установились, но потом на чём-нибудь свалилось в ошибку — всё ок. Можно перезагрузиться и запустить удаление. В моих случаях происходило полное удаление сервера.
Ошибка «The language pack bundle could not be found or is corrupt.»
На этапе проверки, перед установкой, возникла следующая ошибка:
Эта ошибка решилась удалением на сервере ветки реестра: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ExchangeServer\v15\Lanaguage Packs
Описание решения есть у Микрософт: https://support.microsoft.com/ru-ru/help/3069005/error-when-you-try-to-install-exchange-server-2013-in-recoverserver-mo
Ошибка: После того, как установка свалилась, не стартует удаление/установка Exchange.
Мне помогло удаление под веткой HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ExchangeServer\v15\* всех значений Action и Watermark:
(3 оценок, среднее: 5,00 из 5) Загрузка.