| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| полезные_команды_exchange [2024/06/06 13:46] – jp | полезные_команды_exchange [2026/01/20 12:46] (current) – jp |
|---|
| <WRAP prewrap> | <WRAP prewrap> |
| <code> | <code> |
| Set-ClientAccessServer -Identity mx03 -AutoDiscoverServiceInternalUri https://autodiscover.scport.ru/autodiscover/autodiscover.xml | Set-ClientAccessServer -Identity mx03 -AutoDiscoverServiceInternalUri https://autodiscover.domain.ru/autodiscover/autodiscover.xml |
| </code> | </code> |
| </WRAP> | </WRAP> |
| === Узнать версию схемы Exchange, скрипт === | === Узнать версию схемы Exchange, скрипт === |
| |
| В данном скрипте используется имя организации "scport", которое потребуется заменить, если выполнять в другом окружении. | В данном скрипте используется имя организации "Contoso", которое потребуется заменить, если выполнять в другом окружении. |
| |
| <code> | <code> |
| $RootDSE= ([ADSI]"").distinguishedName | $RootDSE= ([ADSI]"").distinguishedName |
| ([ADSI]"LDAP://CN=ms-Exch-Schema-Version-Pt,CN=Schema,CN=Configuration,$RootDSE").rangeUpper | ([ADSI]"LDAP://CN=ms-Exch-Schema-Version-Pt,CN=Schema,CN=Configuration,$RootDSE").rangeUpper |
| ([ADSI]"LDAP://cn=scport,cn=Microsoft Exchange,cn=Services,cn=Configuration,$RootDSE").objectVersion | ([ADSI]"LDAP://cn=Contoso,cn=Microsoft Exchange,cn=Services,cn=Configuration,$RootDSE").objectVersion |
| </code> | </code> |
| |
| //Группа, при этом, обязательно должна быть Universal, а не Global:// | //Группа, при этом, обязательно должна быть Universal, а не Global:// |
| |
| {{::universal_group_for_exchange.jpg?200|}}'' | ;#; |
| | {{::universal_group_for_exchange.jpg?200|}} |
| | ;#; |
| |
| ---- | ---- |
| |
| ---- | ---- |
| === Удаленное подключение к сессии PowerShell Exchange === | ** Вывести полный перечень ящиков в Excel с русскими именами в UTF8 ** |
| |
| Вводим креды: | |
| |
| <code>$UserCredential = Get-Credential</code> | |
| |
| Создаем сессию: | |
| <WRAP prewrap> | <WRAP prewrap> |
| <code> | <code> |
| New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://mx.office.domain.ru/PowerShell/ -Authentication Kerberos -Credential $UserCredential | Get-Mailbox -ResultSize Unlimited | select name, primarysmtpaddress | Export-Csv c:\users.csv -Encoding UTF8 |
| </code> | </code> |
| </WRAP> | </WRAP> |
| |
| Подключаемся к созданной сессии: | ---- |
| |
| | **Вывести перечень ящиков из определенного OU** |
| | |
| | Выводим в тектовый файл ящики АКТИВНЫХ пользователей, размещённых в определенном OU AD (для его указания используем DN), выбрав в результаты только Alias. |
| | |
| | <WRAP prewrap> |
| <code> | <code> |
| etsn -id 1 | Get-Mailbox -OrganizationalUnit "OU=DOMAIN,DC=domain,DC=domain,DC=ru" | where {$_.AccountDisabled -match $false} | Select-Object alias >> C:\scripts\users.txt |
| </code> | </code> |
| | </WRAP> |
| |
| Уничтожить созданную сессию: | === Запросить все ящики, в адресах которых есть определенный домен === |
| |
| | <WRAP prewrap> |
| <code> | <code> |
| Remove-PSSession -Id 1 | Get-Mailbox -ResultSize Unlimited | Where-Object {($_.EmailAddresses -match "@domain1\.ru$")} | Select-Object Name, PrimarySmtpAddress, EmailAddresses |
| </code> | </code> |
| | </WRAP> |
| |
| ---- | Ещё один вариант: |
| | |
| **Перезапуск сервисов** | |
| | |
| Перезапуск сервисов, для которых был задан режим запуска //Auto//: | |
| |
| <WRAP prewrap> | <WRAP prewrap> |
| <code> | <code> |
| $services = get-wmiobject win32_service | ? {$_.name -like "MSExchange*" -and $_.StartMode -eq "Auto"};foreach ($service in $services) {Restart-Service $service.name -Force} | Get-Mailbox -ResultSize Unlimited -Filter {EmailAddresses -like "*@domain.ru"} | Select-Object DisplayName,PrimarySmtpAddress, @{Name="EmailAddresses";Expression={($_.EmailAddresses | Where-Object {$_ -clike "smtp*"} | ForEach-Object {$_ -replace "smtp:",""}) -join ","}} | Sort-Object DisplayName |
| </code> | </code> |
| </WRAP> | </WRAP> |
| |
| ---- | ---- |
| | ** Подключить модули Exchange Management Shell в обычный PS ** |
| |
| **Вывести перечень ящиков из определенного OU** | Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn |
| | :!: //PS необходимо запустить от имени администратора, иначе команда не выполнится.// |
| |
| Выводим в тектовый файл ящики АКТИВНЫХ пользователей, размещённых в определенном OU AD, выбрав в результаты только Alias. | ---- |
| | ** Общее количество ящиков ** |
| |
| <WRAP prewrap> | Узнать общее число пользовательских ящиков - можно следующим образом: |
| <code> | |
| Get-Mailbox -OrganizationalUnit "OU=DOMAIN,DC=domain,DC=domain,DC=ru" | where {$_.AccountDisabled -match $false} | Select-Object alias >> C:\scripts\users.txt | (Get-Mailbox -RecipientTypeDetails UserMailbox -ResultSize Unlimited).count |
| </code> | |
| </WRAP> | |
| {{tag>Exchange Microsoft WindowsServer Mail PowerShell}} | {{tag>Exchange Microsoft WindowsServer Mail PowerShell}} |