【问题标题】:PowerShell script for importing psts用于导入 psts 的 PowerShell 脚本
【发布时间】:2012-09-04 05:15:56
【问题描述】:

我需要有关此脚本的帮助。

$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 都出现此错误:

输入对象不能绑定到命令的任何参数,因为命令不接受管道 put 或输入及其属性与任何接受管道输入的参数都不匹配。 + CategoryInfo : InvalidArgument: (archive.pst:PSObject) [New-MailboxImportRequest], ParameterBindingException
+ FullyQualifiedErrorId : InputObjectNotBound,New-MailboxImportRequest

【问题讨论】:

    标签: powershell import exchange-server pst


    【解决方案1】:

    看起来New-MailboxImportRequest cmdlet 不接受管道输入,如果接受了,您必须从命令中删除“-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
        }
    
    }
    

    【讨论】:

    • 它正在工作 :) 我还有另一个问题。 -TargetRootFolder 现在是 $_.Name,文件夹的名称是 Archive.pst。如何删除名称中的 .pst?有可能吗?
    猜你喜欢
    • 1970-01-01
    • 2018-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-12
    • 2019-09-18
    • 2022-01-12
    • 1970-01-01
    相关资源
    最近更新 更多