1

このスクリプトについてサポートが必要です。

$data = Import-CSV C:\temp\import.csv
ForEach ($i in $data){
$pstpath = "\\server\pst$\" + $i.folder + "\"
$user = $i.user
$folder = $i.folder
Get-ChildItem -Recurse -path $pstpath -Filter *.pst | New-MailboxImportRequest -FilePath "$pstpath + $_.name" - Mailbox $user -Name "Import $user $_.name" -BadItemLimit 30 -ConflictResolutionOption KeepAll -TargetRootFolder $_.name -IsArchive -confirm: $false

}

フォルダ内のpstごとに次のエラーが発生します。

コマンドがパイプライン入力を受け取らないか、入力とそのプロパティがパイプライン入力を受け取るパラメーターのいずれとも一致しないため、入力オブジェクトをコマンドのパラメーターにバインドすることはできません。+ CategoryInfo:InvalidArgument:(archive.pst:PSObject)[New-MailboxImportRequest]、ParameterBindingException
+ FullyQualifiedErrorId:InputObjectNotBound、New-MailboxImportRequest

4

1 に答える 1

1

New-MailboxImportRequestコマンドレットがパイプライン入力を受け入れないようです。受け入れた場合は、コマンドから'-FilePath "$ pstpath +$_。name"'の部分を削除する必要があります。

代わりにこれを試してください:

$data = Import-CSV C:\temp\import.csv
ForEach ($i in $data){

    $user = $i.user
    $folder = $i.folder
    $pstpath = "\\server\pst$\$folder"

    Get-ChildItem -Recurse -path $pstpath -Filter *.pst | Foreach-Object{
        New-MailboxImportRequest -FilePath $_.FullName - Mailbox $user -Name "Import $user $($_.Name)" -BadItemLimit 30 -ConflictResolutionOption KeepAll -TargetRootFolder $_.Name -IsArchive -Confirm:$false
    }

}
于 2012-09-11T10:10:50.920 に答える