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

Exchange 2013
 

适用于:Exchange Server 2013

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

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

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

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

 

New

New 动作可创建某个实例,例如:新配置设置、新数据库或新 SMTP 连接器。

Remove

Remove 动作删除某个实例,例如邮箱或传输规则。

所有 Remove cmdlet 都支持 WhatIfConfirm 参数。有关这些参数的详细信息,请参阅重要参数

Enable

Enable 动作启用某个设置或对收件人启用邮件。

Disable

Disable 动作禁用已启用的设置或对收件人禁用邮件。

所有 Disable 任务也支持 WhatIfConfirm 参数。有关这些参数的详细信息,请参阅重要参数

Set

Set 动作修改对象的特定设置,例如联系人的别名或邮箱数据库中已删除项目的保留时间。

Get

Get 动作查询特定对象或某一对象类型的子集,例如特定邮箱、所有邮箱用户或域中的邮箱用户。

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

 

Identity

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

例如,Get-Mailbox -Identity user1 查询 user1 的邮箱。Get-Mailbox user1 相当于 Get-Mailbox -Identity user1

WhatIf

WhatIf 参数指示 cmdlet 模拟对要对象执行的操作。使用 WhatIf 参数,可以查看所要发生的更改,而无需实际应用任何更改。默认值为 $true

Confirm

Confirm 参数可以使 cmdlet 暂停处理,并要求管理员确认在继续处理之前 cmdlet 要执行的操作。默认值为 $true

Validate

Validate 参数使 cmdlet 检查运行操作的所有先决条件是否都已满足,并检查操作是否将成功完成。

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

 

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 中任意任务的 Exchange 2013 命令行管理程序帮助信息,如以下示例所示:Help Get-Mailbox

Get-task | Format-List > file.txt

此 cmdlet 将 task 的输出导出到文本文件:file.txt

 

Get-RoleGroupMember "Organization Management"

此命令检索 Organization Management 管理角色组的成员。

Get-ManagementRoleAssignment -Role "Mail Recipient Creation" -GetEffectiveUsers

此命令检索被授予 Mail Recipient Creation 管理角色提供的权限的所有用户的列表。这包括是角色组或通用安全组 (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 的新角色组,并将分配 Mail RecipientsMail Recipient CreationMailbox Import Export 角色。该角色组已设置作用域,以便其成员只能管理与 Seattle Users 收件人筛选器作用域匹配的用户。

New-ManagementScope "Vancouver Servers" -ServerRestrictionFilter { ServerSite -Eq "Vancouver" }

$RoleGroup = Get-RoleGroup "Server Management"

New-RoleGroup "Vancouver Server Management" -Roles $RoleGroup.Roles -CustomConfigWriteScope "Vancouver Servers"

此命令创建新管理作用域并复制现有角色组,使新角色组的成员只能管理 Vancouver Active Directory 站点中的服务器。

首先,将创建 Vancouver Servers 管理作用域,此作用域只与位于 Vancouver Active Directory 站点中的服务器匹配。Active Directory 站点存储在服务器对象上的 ServerSite 属性中。

然后,将创建称为 Vancouver Server Management 的新角色组,此角色组是 Server Management 角色组的副本。但是,此新角色组已设置作用域,只允许其成员管理与 Vancouver Servers 配置筛选器作用域匹配的服务器。

Add-RoleGroupMember "Organization Management" -Member davids

此命令将用户 davids 添加到 Organization Management 角色组。

Get-ManagementRoleAssignment -Role "Mail Recipient Creation" -RoleAssignee "Seattle Admins" | Remove-ManagementRoleAssignment

此命令将 Mail Recipient Creation 角色从 Seattle Admins 角色组中删除。此命令非常有用,因为您不需要知道将角色分配给角色组的管理角色分配的名称。

 

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

Import-PSSession $Session

这些命令将在本地加入域的计算机与完全限定域名 (FQDN) 为 ExServer.contoso.com 的远程 Exchange 2013 服务器之间打开新的远程命令行管理程序会话。在希望管理远程 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 服务器之间打开新的远程命令行管理程序会话。在希望管理远程 Exchange 2013 服务器、但本地计算机上仅安装了包含 Windows PowerShell 的 Windows Management Framework 的情况下,请使用此命令。此命令将使用您显式指定的凭据对远程 Exchange 2013 服务器进行身份验证。

Remove-PSSession $Session

此命令关闭本地计算机与远程 Exchange 2013 服务器之间的远程命令行管理程序会话。

Import-RecipientDataProperty -Identity "Tony Smith" -SpokenName -FileData ([Byte[]]$(Get-Content -Path "M:\AudioFiles\TonySmith.wma" -Encoding Byte -ReadCount 0))

此命令将显示一个语法示例(以斜体显示),该语法是使用 FileData 参数在 cmdlet 上将文件导入远程 Exchange 2013 服务器时所必需的。此语法将封装 M:\AudioFiles\TonySmith.wma 文件中包含的数据,并将这些数据传递给 Import-RecipientDataProperty cmdlet 上的 FileData 属性。

FileData 参数在大多数 cmdlet 上使用此语法从本地计算机文件中接受数据。

Export-RecipientDataProperty -Identity tony@contoso.com -SpokenName | ForEach { $_.FileData | Add-Content C:\tonysmith.wma -Encoding Byte}

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

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

 
显示: