适用于 Exchange 2013 的 Exchange 命令行管理程序快速参考

适用于:Exchange Server 2013

本主题介绍 Microsoft Exchange Server 2013 的正式发布 (RTM) 版本和更新版本中提供的最常用的 cmdlet,并提供它们的用法示例。

注意

稍后我们还将添加关于 Exchange 2013 其他方面的更多内容。

有关 Exchange 中的 Exchange 2013 命令行管理程序及所有可用 cmdlet 的详细信息,请参阅下列主题:

您希望了解哪些内容?

常见 cmdlet 操作

大多数 cmdlet 都支持下列与某一特定操作相关的动作。

谓词 说明
新增 New 动作可创建某个实例,例如:新配置设置、新数据库或新 SMTP 连接器。
Remove Remove 动作删除某个实例,例如邮箱或传输规则。

所有 Remove cmdlet 都支持 WhatIfConfirm 参数。 有关这些参数的详细信息,请参阅重要参数。
启用 Enable 动作启用某个设置或对收件人启用邮件。
Disable Disable 动作禁用已启用的设置或对收件人禁用邮件。

所有“禁用”任务还支持 WhatIfConfirm 参数。 有关这些参数的详细信息,请参阅重要参数。
Set Set 动作修改对象的特定设置,例如联系人的别名或邮箱数据库中已删除项目的保留时间。
Get Get 动作查询特定对象或某一对象类型的子集,例如特定邮箱、所有邮箱用户或域中的邮箱用户。

重要参数

以下参数有助于控制命令运行的方式,并准确指定命令对数据产生影响之前所执行的操作。

参数 说明
Identity Identity 参数标识任务的唯一对象。 通常与 Enable、Disable、Remove、Set 和 Get cmdlet 一起使用。 标识 也是一个位置参数,这意味着在命令行上指定参数的值时,无需指定 Identity

例如,Get-Mailbox -Identity user1 查询 user1 的邮箱。 Get-Mailbox user1 等效于 Get-Mailbox -Identity user1
WhatIf WhatIf 参数指示 cmdlet 模拟它将对 对象执行的操作。 通过使用 WhatIf 参数,可以查看会发生哪些更改,而无需实际应用任何更改。 默认值为 $true。
确认 Confirm 参数会导致 cmdlet 暂停处理,并要求管理员在继续处理之前确认 cmdlet 将执行的操作。 默认值为 $true。
验证 Validate 参数使 cmdlet 检查运行操作的所有先决条件是否都已满足,并检查操作是否将成功完成。

提示和技巧

下列命令与可在管理 Exchange 2013 时使用的各种任务相关联。

Cmdlet 说明
Get-Command 此 cmdlet 检索可在 Exchange 2013 中执行的所有任务。
Get-Command *keyword* 此 cmdlet 检索 cmdlet 中具有 keyword 的任务。
Get-Task | Get-Member 此 cmdlet 检索 Task 的所有属性和方法。
Get-Task | Format-List 此 cmdlet 在格式化列表中显示查询的输出。 可以通过管道将任何 Get cmdlet 的输出Format-List以查看该命令返回的对象上存在的整个属性集,也可以指定要查看的单个属性(用逗号分隔),如以下示例所示: Get-Mailbox john | Format-List alias,*quota*
Help Task 此 cmdlet 检索 Exchange 2013 中任何任务的 Exchange 命令行管理程序帮助信息,如以下示例所示: Help Get-Mailbox
Get-Task | Format-List > file.txt 此 cmdlet 将 Task 的输出导出到文本文件: file.txt

权限

命令 说明
Get-RoleGroupMember "Organization Management" 此命令检索 组织管理 角色组的成员。
Get-ManagementRoleAssignment -Role "Mail Recipient Creation" -GetEffectiveUsers 此命令检索已授予 由邮件收件人创建 管理角色提供的权限的所有用户的列表。 这包括是角色组或通用安全组 (USG) 成员的用户,其中为这些组分配了 Mail Recipient Creation 角色。 但不包括是另一个林中链接角色组成员的用户。
Get-ManagementRoleAssignment -RoleAssignee Administrator | Get-ManagementRole | Get-ManagementRoleEntry 此命令检索用户 Administrator 可以运行的 cmdlet 的列表。
ForEach ($RoleEntry in Get-ManagementRoleEntry *Remove-Mailbox -Parameters Identity) {Get-ManagementRoleAssignment -Role $RoleEntry.Role -GetEffectiveUsers -Delegating $False | Where-Object {$_.EffectiveUserName -Ne "All Group Members"} | FL Role, EffectiveUserName, AssignmentChain} 此命令检索可以运行 Remove-Mailbox cmdlet 的所有用户的列表。
Get-ManagementRoleAssignment -WritableRecipient kima -GetEffectiveUsers | FT RoleAssigneeName, EffectiveUserName, Role, AssignmentChain 此命令检索可以修改 kima 的邮箱的所有用户的列表。
New-ManagementScope "Seattle Users" -RecipientRestrictionFilter "City -Eq 'Seattle'"

New-RoleGroup "Seattle Admins" -Roles "Mail Recipients", "Mail Recipient Creation", "Mailbox Import Export", -CustomRecipientWriteScope "Seattle Users"
此命令创建新管理作用域和管理角色组,使角色组的成员能够管理位于 Seattle 的收件人。

首先,将创建 Seattle Users 管理作用域,此作用域只与其用户对象上的 City 属性中有 Seattle 的收件人匹配。

然后,将创建一个名为 Seattle Admins 的新角色组,并分配 邮件收件人邮件收件人创建邮箱导入导出 角色。 角色组的范围是限定的,以便其成员只能管理与 Seattle Users 收件人筛选器范围匹配的用户。
New-ManagementScope "Vancouver Servers" -ServerRestrictionFilter "ServerSite -Eq 'Vancouver'"

$RoleGroup = Get-RoleGroup "Server Management" <br/><br/> New-RoleGroup "Vancouver Server Management" -Roles $RoleGroup.Roles -CustomConfigWriteScope "Vancouver Servers"
此命令创建新管理作用域并复制现有角色组,使新角色组的成员只能管理 Vancouver Active Directory 站点中的服务器。

首先,创建 温哥华服务器 管理范围,它仅匹配位于 温哥华 Active Directory 站点中的服务器。 Active Directory 站点存储在 服务器对象的 ServerSite 属性中。

然后,创建名为 Vancouver Server Management 的新角色组,该组是 服务器管理 角色组的副本。 但是,此新角色组的范围允许其成员仅管理与 温哥华服务器 配置筛选器范围匹配的服务器。
Add-RoleGroupMember "Organization Management" -Member davids 此命令将用户 davids 添加到 Organization Management 角色组。
Get-ManagementRoleAssignment -Role "Mail Recipient Creation" -RoleAssignee "Seattle Admins" | Remove-ManagementRoleAssignment 此命令从 Seattle 管理员角色组中删除邮件收件人创建角色。 此命令非常有用,因为您不需要知道将角色分配给角色组的管理角色分配的名称。

远程命令行管理程序

命令 说明
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://ExServer.contoso.com/PowerShell/ -Authentication Kerberos

Import-PSSession $Session
这些命令在已加入域的本地计算机与具有 FQDN ExServer.contoso.com 的远程 Exchange 2013 服务器之间打开新的远程 Shell 会话。 在希望管理远程 Exchange 2013 服务器、但本地计算机上仅安装了包含 Windows PowerShell 命令行界面的 Windows Management Framework 的情况下,请使用此命令。 此命令将使用您的当前登录凭据对远程 Exchange 2013 服务器进行身份验证。
$UserCredential = Get-Credential

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://ExServer.contoso.com/PowerShell/ -Authentication Kerberos -Credential $UserCredential

Import-PSSession $Session
这些命令使用 FQDN ExServer.contoso.com 在本地已加入域的计算机和远程 Exchange 2013 服务器之间打开新的远程 Shell 会话。 在希望管理远程 Exchange 2013 服务器、但本地计算机上仅安装了包含 Windows PowerShell 的 Windows Management Framework 的情况下,请使用此命令。 此命令将使用您显式指定的凭据对远程 Exchange 2013 服务器进行身份验证。
Remove-PSSession $Session 此命令关闭本地计算机与远程 Exchange 2013 服务器之间的远程命令行管理程序会话。
Import-RecipientDataProperty -Identity "Tony Smith" -SpokenName -FileData ([System.IO.File]::ReadAllBytes('M:\AudioFiles\TonySmith.wma')) 此命令演示使用 cmdlet 上的 FileData 参数将文件导入远程 Exchange 2013 服务器所需的语法示例。 语法封装 M:\AudioFiles\TonySmith.wma 文件中包含的数据,并将数据流式传输到 Import-RecipientDataProperty cmdlet 上的 FileData 属性。

FileData 参数在大多数 cmdlet 上使用此语法接受本地计算机上的文件中的数据。
$SN = Export-RecipientDataProperty -Identity tonys@contoso.com -SpokenName

[System.IO.File]::WriteAllBytes('C:\tonysmith.wma', $SN.FileData)

此命令显示了从远程 Exchange 2013 服务器导出文件所需的语法示例。 该语法将封装存储在由 cmdlet 返回的对象的 FileData 属性中的数据,然后将该数据传递到本地计算机上。 然后将数据存储在 C:\tonysmith.wma 文件中。

其输出对象具有 FileData 属性的大多数 cmdlet 都使用此语法将数据导出到本地计算机上的文件中。