Exchange 导出脚本不写入单个 pst 文件
Exchange export script not writing to individual pst files
我正在尝试使用以下脚本从 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")
干杯
您可以使用此方法实现您的目标:
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
(或者只是 %
,这是它的别名)。
我正在尝试使用以下脚本从 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")
干杯
您可以使用此方法实现您的目标:
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
(或者只是 %
,这是它的别名)。