一些EXCHANGE命令

1.获取所有邮箱使用情况,按大小排序输出到磁盘

Get-Mailbox | Get-Mailboxstatistics | Sort-Object TotalItemSize -Descending | ft DisplayName,@{label="TotalItemSize(KB)";expression={$_.TotalItemSize.Value.ToKB()}},ItemCount >d:\1.csv

 

2.通过用户名找GUID:

get-mailbox -identity "用户名" | fl name,guid

 

3.批量查找所有用户的GUID:

get-mailbox | fl name,guid

 

4.获取邮箱配额设置:

Get-Mailbox -identity "用户名" | fl IssueWarningQuota,ProhibitSendQuota,ProhibitSendReceiveQuota

 

5.提升对指定数据库中的所有用户的操作权限:

get-mailbox -Database "数据库名" | add-mailboxpermission -user 域名\administrator -Acce***ights FullAccess -InheritanceType all

 

6.按主题包含的关键字删除:

Search-Mailbox -Identity lisi -SearchQuery  "Subject:关键字" -DeleteContent

例如:

Search-Mailbox -Identity lisi -searchquery  主题: 报价 -deletecontent

 

按照主题查找某个邮箱、某封邮件的具体信息

search-mailbox -identity lisi -searchquey  subject: "关键字" -targetmailbox administrator -targetfolder 123  -logonly -loglevel full

此命令导出用户为lisi 主题为 “关键字”的邮件到管理员邮箱下面的123文件夹并包含详细的日志内容。执行完毕后登陆管理员邮箱会看到123的文件夹,里面有查找结果到处文件,下载附件即可看到内容。

 

7.批量删除:
get-mailbox -Database "数据库名" | Search-Mailbox -DeleteContent

 

8.获取已经创建的邮箱:

Get-Mailbox | FL Name,RecipientTypeDetails,PrimarySmtpAddress

 

9.批量启用邮箱帐户:

启用AD中所有未启用的用户:

Get-User -RecipientTypeDetails User -Filter { UserPrincipalName -ne $Null } | Enable-Mailbox -Database "数据库名称"

 

10.启用AD中某个组织单位下面的用户:

Get-User -OrganizationalUnit "组织单位名称" | Enable-Mailbox -Database "数据库名称"

 


11.查看邮件服务器上某个时间段内的所有邮件信息:

Get-MessageTrackingLog -ResultSize Unlimited -Start "3/6/2016 8:40AM" -End "3/6/2016 1:50PM"

 

12.查看邮件服务器上某个时间段内由具体的某个人所发送的所有邮件详细信息:

Get-MessageTrackingLog -ResultSize Unlimited -Start "3/6/2016 8:40AM" -End "3/6/2016 1:50PM" –Sender 123@163.com

后面加上 | fl 则显示每封邮件的详细信息。

 

13.查询发送失败的邮件

Get-MessageTrackingLog -ResultSize Unlimited -Start "3/6/2016 8:40AM" -End "3/6/2016 2:50PM" -EventId "Fail" -Sender 123@163.com

 

14.删除群发邮件


Get-Mailbox –ResultSize unlimited | Search-Mailbox -searchquery 主题:测试邮件 –deletecontent

 

15.通过时间筛选删除邮件

 

Search-Mailbox -Identity lisi -SearchQuery "发送时间:<2016/12/16"-deletecontent

Search-Mailbox -Identity lisi -SearchQuery "发送时间:=2016/12/16"-deletecontent

Search-Mailbox -Identity lisi -SearchQuery "发送时间:>2016/12/16"-deletecontent

Search-Mailbox -Identity lisi -SearchQuery "发送时间:<2016/12/11 and 2016/12/16" –deletecontent

 

16.查×××器中已断开连接的邮箱

Get-MailboxDatabase | Get-MailboxStatistics | where {$_.DisconnectReason -ne $null} | ft displayname,database,disconnectreason -auto

 

在Exchange Server 2013中,Disable-Mailbox cmdlet在断开用户邮箱之后立即运行清理过程,更新数据库以反映断开连接的状态。

 

查×××器中禁用的邮箱

1.get-mailboxdatabase | get-mailboxstatistics | where-object {$_.disconnectreason -eq "disable"} 

2.get-mailboxstatistics -database <database name> | where-object {$_.disconnectreason -ne $null}  因为disconnectreason参数在正常邮箱状态下为空。


17.清理邮箱数据库(E2013/16)

 

Get-MailboxStatistics -Database "Database name" | ForEach { Update-StoreMailboxState -Database $_.Database -Identity $_.MailboxGuid -Confirm:$false }

 

18.批量导出所有邮件

$users=get-content -path "c:\user.txt"foreach($i in $users){New-MailboxExportRequest -Mailbox $i -FilePath "\\ServerName\PST\$($i).pst" –ExcludeFolders “DeletedItems” –ExcludeDumpster  -BadItemLimit 1000 -AcceptLargeDataLoss} 
 

 

19.批量导出单个数据库中所有邮箱的邮件

Get-Mailbox -DataBase DBName |ForEach-Object {New-MailboxExportRequest -Mailbox $_ -FilePath "D:\Newfolder\$($_.Alias).pst" –ExcludeFolders “DeletedItems” –ExcludeDumpster  -BadItemLimit 1000 -AcceptLargeDataLoss }
 

 

20.EX13/16 限制用户每天接收、发送邮件的数量

 

  1. New-ThrottlingPolicy -Name LimitMessagesSent -RecipientRateLimit 300 -MessageRateLimit 10

    以上命令,传输策略的名称为:limitmessagessent,可以接收的数量:300,可以发送的数量:10.

     

  2. Set-Mailbox -Identity 用户名 -ThrottlingPolicy LimitMessagesSent  (应用到具体邮箱上面)

     

     

21.查找所有邮箱并按照使用空间大小来排序并按照指定字段显示

 

Get-Mailboxdatabase |Get-Mailboxstatistics |sort totalitemsize -desc |ft
displayname,itemcount

 

22.获取邮箱数据库的路径,按要求输出

 

get-mailboxdatabase | fl name,*path*

wKioL1hiDfjCj4LwAAA0ZWkhOAE576.png-wh_50

 

 

23.设置用户收发邮件的大小,设置发送、接受连接器大小

 

设置所有用户:

get-user | set-mailbox -maxsendsize "20MB" -maxreceivesize "20MB"

 

以上命令会遍历所有邮箱,运行时用户邮箱完成配置,但系统邮箱等会报错。可用以下命令跳过:

 

Get-Mailbox -ResultSize unlimited -Filter{(RecipientTypeDetails -eq"UserMailbox")} | Set-Mailbox -MaxSendSize 20mb -MaxReceiveSize 20mb

 

清除现有所有用户单独设置的收发邮件大小值(无限制):

 

Get-Mailbox -ResultSize unlimited -Filter{(RecipientTypeDetails -eq "UserMailbox")}| Set-Mailbox -MaxSendSize Unlimited -MaxReceiveSize Unlimited

 

查询当前传输设置、发送连接器、接收连接器设置:

 

Get-TransportConfig |ft maxsendsize,maxreceivesize

Get-ReceiveConnector |ft name,maxmessagesize

Get-SendConnector |ft name,maxmessagesize

 

 

设置传输连接器大小:

Set-TransportConfig -MaxSendSize 35MB -MaxReceiveSize 35MB

 

 

设置发送连接器大小:

Get-SendConnector | Set-SendConnector -MaxMessageSize 35MB

 

查看用户邮箱收发邮件大小:

Get-Mailbox  123 | fl MaxSendSize,MaxReceiveSize

 

 

设置某个用户邮箱收发邮件大小:

Set-Mailbox 123 -MaxSendSize 10mb -MaxReceiveSize 10mb

 

24.去除匿名中继的权限(去除仿冒内部邮件地址)
==========
      24.1 Get-ReceiveConnector "Internet Receive Connector" | Remove-ADPermission -User "NT AUTHORITY\ANONYMOUS LOGON" -ExtendedRights "Ms-Exch-SMTP-Accept-Any-Recipient"

      24.2 restart-service mschangefrontendtransport

 

  还可以设置规则来确保双保险(建议这么做)

        在邮件流规则里面建立如下规则:

   1.png

在执行“删除邮件而不通知任何人”的选项上为了保险可以做一个转发。记得也需要重启exchange传输服务。

 

 
25.去除接收匿名邮件域发送者的权限(对过滤垃圾邮件有一定作用)
==========
Get-ReceiveConnector "Internet Receive Connector" | Remove-ADPermission -User "NT AUTHORITY\ANONYMOUS LOGON" -ExtendedRights "ms-exch-smtp-accept-authoritative-domain-sender"

 

26.查看某一个邮箱的统计信息(最后登录时间等)

Get-MailboxStatistics -Identity 'administrator' |fl

 

27.查看某个邮箱服务器上所有用户的统计信息,例如在这里范例需要查看邮件服务器 tr-ex01 上相关用户的登录时间,可以输入如下内容:

Get-MailboxStatistics -server 'tr-ex01'

 

 

28.查看某个邮箱服务器上所有用户的统计信息,并且以降序排列,例如在这里范例需要查看邮件服务器 tr-ex01 上相关用户的登录时间并且以降序方式排列,可以输入如下内容:

Get-MailboxStatistics -server 'tr-ex01' | Sort LastLogonTime -Descending

 

29.查询一段时间的  每个用户的邮件发送数量

 

Get-MessageTrackingLog -ResultSize unlimited -Start"07/01/2012" -End "07/13/2012" -EventId "send"|Group-Object -Property:sender |Select name,count|sort count -Descending   

如果不想要外部邮箱的话,加一个filter

 

Get-MessageTrackingLog -ResultSize Unlimited -Start"10/1/2013" -End "10/25/2013" | where{$_.recipients -like"*@domain.com"}

 

如果是要查发出的,就把recipients改成sender

 

30.本示例返回贵组织中所有邮箱的摘要列表

 

Get-Mailbox -ResultSize unlimited

 

31.返回组织内名为 Users 的 OU 中所有邮箱的列表

Get-Mailbox -OrganizationalUnit Users

 

32.查询ex  邮箱服务器  上面所有存档邮箱的列表

get-mailbox -archive -server ex

 

32.查询mailbox1  邮箱数据库  上面所有存档邮箱的列表


get-mailbox -archive -database mailbox1

 

33.查询所有的邮箱数量

 (get-mailbox-resultsize unlimited).count 

 

34.查询每个邮箱数据库中分别有多少用户

get-mailbox-resultsize unlimited | group-object -property:database | select-objectname,count

如果把database参数更替为邮箱数据库的名字,那统计出来的就是某一个邮箱数据库内的用户数量

 

35.查询每个邮箱服务器上面分别有多少用户

 

get-mailbox-resultsize unlimited | group-object -property:servername | select-object name,count 

如果把 servername参数更替为服务器的名字,那统计出来的就是某一个邮箱服务器内的用户数量

 

36.批量导出、导入邮箱

     1.赋予管理员权限

 New-ManagementRoleAssignment -Name "ImportExport_Domain Admins" -User        "Administrator" -Role "MailboxImport Export"

     
     2.批量导出邮件到C盘EXPORT文件夹下

get-mailbox -OrganizationalUnit "contoso.com/contoso" -resultsize unlimited |%{New-MailboxexportRequest -mailbox $_.name -FilePath ("\\localhost\c$\export\"+($_.name)+".pst") -BadItemLimit50}

 

     3. 批量导入PST文件到目的邮箱地址

get-childitem\\localhost\c$\export\*.pst | select name,basename | %{New-MailboximportRequest-mailbox $_.basename -FilePath ("\\localhost\c$\export\"+$_.name)-BadItemLimit 50}

 


37.查找用户的GUID

 

get-mailbox -identity "用户名" | fl name,guid

 

38.查找所有用户的GUID

 

get-mailbox | fl name,guid

 

 

39.获取邮箱使用情况,按大小排序

Get-Mailbox | Get-Mailboxstatistics | Sort-ObjectTotalItemSize -Descending | ftDisplayName,totalitemsize

 


40.获取某个用户的邮箱配额(警告、阻止、阻止发送接收):

 

Get-Mailbox -identity  "用户名" | fl IssueWarningQuota,ProhibitSendQuota,ProhibitSendReceiveQuota

 

41.提升指定数据库中的所有用户的操作权限为administrator

 

get-mailbox -Database "数据库名" | add-mailboxpermission -user域名\administrator -Acce***ights FullAccess -InheritanceTypeall

 

 

 

42.批量启用邮箱账户

 

启用AD中所有未启用的用户:

 

Get-User -RecipientTypeDetails User -Filter { UserPrincipalName -ne $Null} | Enable-Mailbox -Database  "数据库名称"

 

启用AD中某个组织单位下面的用户:

 

Get-User -OrganizationalUnit  "组织单位名称" | Enable-Mailbox -Database  "数据库名称"

 

43、查看每个账户设备的连接数量

 Get-MobileDeviceStatistics -Mailbox 用户名 | fl deviceid

 

44.开启或关闭NDR(未送达报告)

Set-RemoteDomain contoso -NDREnabled $false
Set-RemoteDomain Contoso -NDREnabled $true

说明:

1.png

remotedomain 指的是 配置的SMTP为*的地址空间。(发送连接器SMTP *)

 

45.导入、导出邮箱

 

new-mailboxexportrequest -mailbox zhangsan -filepath \\****\\mailbox.pst

new-mailboximportrequest  -mailbox zhangsan -filepath \\***\mailbox.pst

导入导出路径必须为UNC路径,导出为PST格式可以直接用OUTLOOK挂载进行查看。

 

46.邮件跟踪命令

 

  1. 查看用户发送和接收邮件的记录

    get-messagetrackinglog -sender zhangsan@abc.com

    get-messagetrackinglog -recipients zhangsan@abc.com

  2. 查看zhangsan发往lisi的邮件记录

    get-messagetrackinglog -sender zhangsan@abc.com -recipients lisi@abc.com

  3. 查看某个发送周期内的发送记录

    get-messagatrackinglog -sender lisi@abc.com -recipients zhangs@abc.com -start "2017-06-01 -end "2017-07-11"

     

 

47.查看、启动EXCHANGE服务器的组件

查看组件是否正常运行:

get-servercomponentstate servername | fl component,state

活动:active  非活动:inactive

 

启动相应组件:

ServerName ComponentNameGet-ExchangeServer -status | fl name, static*,current*

如果需要更改使用set-exchangeserver

posted @ 2019-01-18 08:46  liulj0713  阅读(2270)  评论(0编辑  收藏  举报