适用于 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 都支持 WhatIf 和 Confirm 参数。 有关这些参数的详细信息,请参阅重要参数。 |
启用 | Enable 动作启用某个设置或对收件人启用邮件。 |
Disable | Disable 动作禁用已启用的设置或对收件人禁用邮件。 所有“禁用”任务还支持 WhatIf 和 Confirm 参数。 有关这些参数的详细信息,请参阅重要参数。 |
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 |
此命令显示了从远程 Exchange 2013 服务器导出文件所需的语法示例。 该语法将封装存储在由 cmdlet 返回的对象的 FileData 属性中的数据,然后将该数据传递到本地计算机上。 然后将数据存储在 C:\tonysmith.wma 文件中。 其输出对象具有 FileData 属性的大多数 cmdlet 都使用此语法将数据导出到本地计算机上的文件中。 |