我有一个客户正在将一个业务部门剥离到新的 AD 林、Exchange 组织等。
我们正在使用 Quest 工具迁移用户和邮箱。但是,我必须构建新的基础设施来匹配旧基础设施。
在旧版本中,我们使用托管文件夹邮箱策略来限制(或允许)保留。它们从 Exchange 2007 开始,从未升级到保留策略;算了。
因此,在旧环境中,当您使用 2007 服务器定义新的托管内容设置时,您可以从 MessageClass 的下拉列表中选择“电子邮件”。这是一个显示名称;实际的 MessageClass 值如下:
MessageClass:IPM.Note;IPM.Note.AS/400 移动通知表单 v1.0;IPM.Note.Delayed;IPM.Note.Exchange.ActiveSync.Report;IPM.Note.JournalReport.Msg;IPM.Note.JournalReport.Tnef;IPM.Note.Microsoft.Missed.Voice;IPM.Note.Rules.OofTemplate.Microsoft;IPM.Note.Rules.ReplyTemplate.Microsoft;IPM.Note.Secure.Sign;IPM.Note.SMIME;IPM.Note.SMIME.MultipartSigned;IPM.Note.StorageQuotaWarning;IPM.Note.StorageQuotaWarning.Warning;IPM.Notification.Meeting.Forward;IPM.Outlook.Recall;IPM.Recall.Report.Success;IPM.Schedule.Meeting.*;REPORT.IPM.Note.NDR
如果我尝试在新环境中将其转换为 Ex2010 的新 cmdlet,那么我得到的结果是
New-ManagedContentSettings -Name "Delete Messages older then 90 days" -FolderName "Entire Mailbox" -RetentionEnabled $True -AgeLimitForRetention 90 -TriggerForRetention WhenDelivered -RetentionAction DeleteAndAllowRecovery -MessageClass "IPM.Note","IPM.Note.AS/400MoveNotificationFormv1.0","IPM.Note.Delayed","IPM.Note.Exchange.ActiveSync.Report","IPM.Note.JournalReport.Msg","IPM.Note.JournalReport.Tnef","IPM.Note.Microsoft.Missed.Voice","IPM.Note.Rules.OofTemplate.Microsoft","IPM.Note.Rules.ReplyTemplate.Microsoft","IPM.Note.Secure.Sign","IPM.Note.SMIME","IPM.Note.SMIME.MultipartSigned","IPM.Note.StorageQuotaWarning","IPM.Note.StorageQuotaWarning.Warning","IPM.Notification.Meeting.Forward","IPM.Outlook.Recall","IPM.Recall.Report.Success","IPM.Schedule.Meeting.*","REPORT.IPM.Note.NDR" -whatif
Invoke-Command:无法将参数“MessageClass”绑定到目标。异常设置“MessageClass”:“属性的长度太长。最大长度为 255,提供的值的长度为 518。”位于 C:\Users\MFinnigan.sa\AppData\Roaming\Microsoft\Exchange\RemotePowerShell\pfexcas02.fve.ad.5ssl.com\pfexcas02.fve.ad .5ssl.com.psm1:28204 char:29 + $scriptCmd = { & <<<< $script:InvokeCommand ` + CategoryInfo : WriteError: (:) [New-ManagedContentSettings], ParameterBindingException + FullyQualifiedErrorId : ParameterBindingFailed,Microsoft.Exchange.Management.SystemConfigurationTasks.NewManaged ContentSettings
因此,配置对象可以店铺那些乱七八糟的东西,但我无法通过 cmdlet 创建对象。太棒了。
有任何想法吗?
答案1
哇。答案既明智又丑陋。我将这个讨厌的东西放在一个变量中,然后将其传递给 cmdlet。我不是那种盲目抨击微软的人,我知道他们大约 4 年前就希望人们停止使用托管文件夹,但这又有什么关系呢。
它比我考虑过的其他解决方案要好,即安装 Ex2007 管理工具(或可能是 Ex2007 服务器)只是为了让 GUI 在 2007 Exchange 管理控制台中执行此操作。
$class = "IPM.Note;IPM.Note.AS/400 Move Notification Form v1.0;IPM.Note.Delayed;IPM.Note.Exchange.ActiveSync.Report;IPM.Note.JournalReport.Msg;IPM.Note.JournalReport.Tnef;IPM.Note.Microsoft.Missed.Voice;IPM.Note.Rules.OofTemplate.Microsoft;IPM.Note.Rules.ReplyTemplate.Microsoft;IPM.Note.Secure.Sign;IPM.Note.SMIME;IPM.Note.SMIME.MultipartSigned;IPM.Note.StorageQuotaWarning;IPM.Note.StorageQuotaWarning.Warning;IPM.Notification.Meeting.Forward;IPM.Outlook.Recall;IPM.Recall.Report.Success;IPM.Schedule.Meeting.*;REPORT.IPM.Note.NDR"
New-ManagedContentSettings -Name "Delete Messages older then 90 days" -FolderName "Entire Mailbox" -RetentionEnabled $True -AgeLimitForRetention 90 -TriggerForRetention WhenDelivered -RetentionAction DeleteAndAllowRecovery -MessageClass $class
答案2
Mfinni 将其放入变量中的解决方法可能是最好的方法,特别是如果有机会在其他脚本/保留策略中重复使用它。但如果只是为了缩短长度,您也应该能够使用以下方法。
New-ManagedContentSettings -Name "Delete Messages older than 90 days" -FolderName "Entire Mailbox" -RententionEndabled $True -AgeLimitForRetention 90 -TriggerForRetention WhenDelivered -RetentionAction DeleteAndAllowRecovery -MessageClass "IPM.Note.*","IPM.Notification.Meeting.Forward","IPM.Outlook.Recall","IPM.Recall.Report.Success","IPM.Schedule.Meeting.*","REPORT.IPM.Note.NDR"