Teh Hermit

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
полезные_команды_exchange [2024/11/01 11:58] jpполезные_команды_exchange [2025/09/24 11:10] (current) jp
Line 65: Line 65:
 === Узнать версию схемы 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>
  
Line 94: Line 94:
  
 ---- ----
-=== Удаленное подключение к сессии PowerShell Exchange === 
  
-Вводим креды: 
  
-<code>$UserCredential = Get-Credential</code>+---- 
 + 
 +**Перезапуск сервисов** 
 + 
 +Перезапуск сервисов, для которых был задан режим запуска //Auto//:
  
-Создаем сессию: 
 <WRAP prewrap> <WRAP prewrap>
 <code> <code>
-New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://mx.office.domain.ru/PowerShell/ -Authentication Kerberos -Credential $UserCredential+$services = get-wmiobject win32_service | ? {$_.name -like "MSExchange*" -and $_.StartMode -eq "Auto"};foreach ($service in $services) {Restart-Service $service.name -Force}
 </code> </code>
 </WRAP> </WRAP>
  
-Подключаемся к созданной сессии:+---- 
 +** Вывести полный перечень ящиков в Excel с русскими именами в UTF8 **
  
 +<WRAP prewrap>
 <code> <code>
-etsn -id 1 +Get-Mailbox -ResultSize Unlimited | select name, primarysmtpaddress | Export-Csv c:\users.csv -Encoding UTF8
-</code> +
- +
-Уничтожить созданную сессию: +
- +
-<code> +
-Remove-PSSession -Id 1+
 </code> </code>
 +</WRAP>
  
 ---- ----
  
-**Перезапуск сервисов**+**Вывести перечень ящиков из определенного OU**
  
-Перезапуск сервисов, для которых был задан режим запуска //Auto//:+Выводим в тектовый файл ящики АКТИВНЫХ пользователей, размещённых в определенном OU AD (для его указания используем DN), выбрав в результаты только Alias.
  
 <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 -OrganizationalUnit "OU=DOMAIN,DC=domain,DC=domain,DC=ru" where {$_.AccountDisabled -match $false| Select-Object alias >> C:\scripts\users.txt
 </code> </code>
 </WRAP> </WRAP>
  
-----+=== Запросить все ящики, в адресах которых есть определенный домен ===
  
-**Вывести перечень ящиков из определенного OU**+<WRAP prewrap> 
 +<code> 
 +Get-Mailbox -ResultSize Unlimited | Where-Object {($_.EmailAddresses -match "@domain1\.ru$")} | Select-Object Name, PrimarySmtpAddress, EmailAddresses 
 +</code> 
 +</WRAP>
  
-Выводим в тектовый файл ящики АКТИВНЫХ пользователей, размещённых в определенном OU AD (для его указания используем DN), выбрав в результаты только Alias.+Ещё один вариант:
  
 <WRAP prewrap> <WRAP prewrap>
 <code> <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 -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>
Line 147: Line 149:
  
    Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn    Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn
-:!: //PS необходимо запустить от имени администратора, иначе команда не выполнится.// +:!: //PS необходимо запустить от имени администратора, иначе команда не выполнится.// 
 + 
 +---- 
 +** Общее количество ящиков ** 
 + 
 +Узнать общее число пользовательских ящиков - можно следующим образом:  
 + 
 +   (Get-Mailbox -RecipientTypeDetails UserMailbox -ResultSize Unlimited).count
 {{tag>Exchange Microsoft WindowsServer Mail PowerShell}} {{tag>Exchange Microsoft WindowsServer Mail PowerShell}}
полезные_команды_exchange.1730462338.txt.gz · Last modified: by jp