使用多个CSV列导入邮箱导出数据

mor*_*stu 1 csv powershell

我正在尝试将几百个邮箱导出到.PST文件.我有一个包含两列的CSV文件

  1. 电子邮件地址,和
  2. 用户登录名

我需要登录名来指定要导出的邮箱.

理想情况下,我希望能够循环访问唯一的登录名并使用格式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++
}
Run Code Online (Sandbox Code Playgroud)

Sha*_*man 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"
}
Run Code Online (Sandbox Code Playgroud)