我尝试将几百个邮箱导出到.PST文件。我有一个包含两列
的CSV文件我需要登录名来指定要导出的邮箱。
理想情况下,我希望能够循环访问唯一的登录名并使用emailaddress.pst格式导出邮箱(以下命令在静态输入时有效)但我似乎无法能够正确循环登录名称。
我收到有关无效字符长度的错误,但如果我只是尝试将其回显到控制台,它会将每个名称作为单独的条目提供给我,例如
AUser BUser CUser
有什么建议吗?
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn;
$File = Import-Csv "sourcefile.csv"
$EmailAddr = @($File | select -ExpandProperty "E-Mail Address")
$index = 0
$ADLogonName = @($File | select -ExpandProperty "User Logon name")
foreach ($addr in $EmailAddr) {
New-MailboxExportRequest -Mailbox $ADLogonName[$index] -FilePath \\networkshare\$addr.pst
$index++
}
答案 0 :(得分:5)
我认为您可以通过避免索引并只是做一个foreach来解决您的问题。这样,您可以确保每个$Entry
都是匹配的用户登录名和电子邮件地址。
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn
$File = Import-Csv "sourcefile.csv"
foreach ( $Entry in $File )
{
New-MailboxExportRequest -Mailbox $Entry.'User Logon name' -FilePath "\\networkshare\$($Entry.'E-Mail Address').pst"
}