Exchange导出脚本未写入单个PST文件

时间:2018-06-20 08:08:05

标签: powershell exchange-server

我正在尝试使用以下脚本从Exchange导出禁用的用户邮箱(名称以“ a”开头)。 如果我在不使用管道的情况下运行它,或者使用-whatif一切都很好,那么如果我运行它,则批处理作业将尝试写入相同的.pst文件。

我当然不是Powershell专家,所以也许我缺少明显的东西。

Get-Mailbox -filter "recipienttype -eq 'usermailbox' -and exchangeuseraccountcontrol -eq 'accountdisabled' -and name -like 'a*'" | new-mailboxexportrequest -file path ("\\server\share\exportfolder\$_.pst")

欢呼

1 个答案:

答案 0 :(得分:0)

您可以使用以下方法实现目标:

Get-Mailbox -filter "recipienttype -eq 'usermailbox' -and exchangeuseraccountcontrol -eq 'accountdisabled' -and name -like 'a*'" `
| ForEach-Object `
{ new-mailboxexportrequest -Mailbox $_.Identity -filepath ("\\server\share\exportfolder\$($_.UserPrincipalName).pst") }

(添加了换行符以提高可读性)

说明:

在您的代码中,您使用的是$_,在此示例中为邮箱对象数组。但是,new-mailboxexportrequest参数的String期望值为-FilePath。这就是为什么需要$($_.UserPrincipalName)

添加了第一个美元符号和方括号,以便您可以在双引号之间访问属性值。

最后,要遍历所有数组元素,可以使用ForEach-Object(或仅使用%作为其别名)。