EasyEntra.Format.ps1xml
|
<?xml version="1.0" encoding="utf-8"?>
<!-- ******************************************************************* Copyright(c) Agema A/S, 2026 ******************************************************************** --> <Configuration> <ViewDefinitions> <!--############################ Get-Mailbox ################################--> <View> <Name>Microsoft.Exchange.Data.Directory.Management.Mailbox</Name> <ViewSelectedBy> <TypeName>Microsoft.Exchange.Data.Directory.Management.Mailbox</TypeName> </ViewSelectedBy> <TableControl> <TableHeaders> <TableColumnHeader> <Label>Name</Label> <Width>25</Width> </TableColumnHeader> <TableColumnHeader> <Label>Alias</Label> <Width>20</Width> </TableColumnHeader> <TableColumnHeader> <Label>RecipientTypeDetails</Label> <Width>20</Width> </TableColumnHeader> <TableColumnHeader> <Label>PrimarySmtpAddress</Label> <Width>30</Width> </TableColumnHeader> <TableColumnHeader> <Label>ExternalDirectoryObjectId</Label> </TableColumnHeader> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>Name</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>Alias</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>RecipientTypeDetails</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>PrimarySmtpAddress</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>ExternalDirectoryObjectId</PropertyName> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> <!--############################ Get-Mailbox ################################--> <!--########### CreateUserFromTemplate Result (Hybrid & Entra) ##############--> <View> <Name>EasyEntra.CreateUserFromTemplate.Result</Name> <ViewSelectedBy> <TypeName>EasyEntra.CreateUserFromTemplate.Result</TypeName> </ViewSelectedBy> <CustomControl> <CustomEntries> <CustomEntry> <CustomItem> <ExpressionBinding> <ScriptBlock> try { $sb = [System.Text.StringBuilder]::new() [void]$sb.AppendLine() [void]$sb.AppendLine("Identity : $($_.Identity)") [void]$sb.AppendLine("DisplayName : $($_.DisplayName)") [void]$sb.AppendLine("Template : $($_.Template)") # Domain only exists for Hybrid user creation if ($null -ne $_.Domain) { [void]$sb.AppendLine("Domain : $($_.Domain)") } [void]$sb.AppendLine("Tenant : $($_.Tenant)") [void]$sb.AppendLine("Type : $($_.Type)") [void]$sb.AppendLine("Status : $($_.Status)") if ($null -ne $_.Timestamp) { [void]$sb.AppendLine("Timestamp : $($_.Timestamp.ToString('yyyy-MM-dd HH:mm:ss'))") } if ($null -ne $_.TaskLog -and $_.TaskLog.Count -gt 0) { [void]$sb.AppendLine("TaskLog : $($_.TaskLog.Count) entries") [void]$sb.AppendLine() Format-EETaskLogEntries -StringBuilder $sb -TaskLog $_.TaskLog } else { [void]$sb.AppendLine("TaskLog : (empty)") } $sb.ToString() } catch { "Error formatting output: $($_.Exception.Message)" } </ScriptBlock> </ExpressionBinding> </CustomItem> </CustomEntry> </CustomEntries> </CustomControl> </View> <!--########### CreateUserFromTemplate Result (Hybrid & Entra) ##############--> <!--############### Decommission Result (Hybrid & Entra) ####################--> <View> <Name>EasyEntra.Decommission.Result</Name> <ViewSelectedBy> <TypeName>EasyEntra.Decommission.Result</TypeName> </ViewSelectedBy> <CustomControl> <CustomEntries> <CustomEntry> <CustomItem> <ExpressionBinding> <ScriptBlock> try { $sb = [System.Text.StringBuilder]::new() [void]$sb.AppendLine() [void]$sb.AppendLine("Identity : $($_.Identity)") # Domain only exists for Hybrid decommissions if ($null -ne $_.Domain) { [void]$sb.AppendLine("Domain : $($_.Domain)") } [void]$sb.AppendLine("Tenant : $($_.Tenant)") [void]$sb.AppendLine("Type : $($_.Type)") [void]$sb.AppendLine("Status : $($_.Status)") if ($null -ne $_.Timestamp) { [void]$sb.AppendLine("Timestamp : $($_.Timestamp.ToString('yyyy-MM-dd HH:mm:ss'))") } # Show count of enabled decommission settings if ($null -ne $_.DecommissionSettings) { $settings = @($_.DecommissionSettings) $enabledCount = ($settings | Where-Object { $_.Enabled }).Count [void]$sb.AppendLine("DecommissionSettings : $enabledCount of $($settings.Count) enabled") } else { [void]$sb.AppendLine("DecommissionSettings : (not specified)") } if ($null -ne $_.TaskLog -and $_.TaskLog.Count -gt 0) { [void]$sb.AppendLine("TaskLog : $($_.TaskLog.Count) entries") [void]$sb.AppendLine() Format-EETaskLogEntries -StringBuilder $sb -TaskLog $_.TaskLog } else { [void]$sb.AppendLine("TaskLog : (empty)") } $sb.ToString() } catch { "Error formatting output: $($_.Exception.Message)" } </ScriptBlock> </ExpressionBinding> </CustomItem> </CustomEntry> </CustomEntries> </CustomControl> </View> <!--############### Decommission Result (Hybrid & Entra) ####################--> <!--##################### PST Export Result ##########################--> <View> <Name>EasyEntra.PstExport.Result</Name> <ViewSelectedBy> <TypeName>EasyEntra.PstExport.Result</TypeName> </ViewSelectedBy> <CustomControl> <CustomEntries> <CustomEntry> <CustomItem> <ExpressionBinding> <ScriptBlock> try { $sb = [System.Text.StringBuilder]::new() [void]$sb.AppendLine() [void]$sb.AppendLine("Identity : $($_.Identity)") [void]$sb.AppendLine("Tenant : $($_.Tenant)") [void]$sb.AppendLine("Type : $($_.Type)") [void]$sb.AppendLine("Status : $($_.Status)") if ($null -ne $_.Timestamp) { [void]$sb.AppendLine("Timestamp : $($_.Timestamp.ToString('yyyy-MM-dd HH:mm:ss'))") } [void]$sb.AppendLine("OutputPath : $($_.OutputPath)") [void]$sb.AppendLine("TotalFolders : $($_.TotalFolders)") [void]$sb.AppendLine("TotalMessages : $($_.TotalMessages)") [void]$sb.AppendLine("FileSizeMB : $($_.FileSizeMB) MB") [void]$sb.AppendLine("Duration : $($_.Duration)") if ($null -ne $_.StartDate) { [void]$sb.AppendLine("StartDate : $($_.StartDate.ToString('yyyy-MM-dd'))") } if ($null -ne $_.EndDate) { [void]$sb.AppendLine("EndDate : $($_.EndDate.ToString('yyyy-MM-dd'))") } if ($null -ne $_.TaskLog -and $_.TaskLog.Count -gt 0) { [void]$sb.AppendLine("TaskLog : $($_.TaskLog.Count) entries") [void]$sb.AppendLine() Format-EETaskLogEntries -StringBuilder $sb -TaskLog $_.TaskLog } else { [void]$sb.AppendLine("TaskLog : (empty)") } $sb.ToString() } catch { "Error formatting output: $($_.Exception.Message)" } </ScriptBlock> </ExpressionBinding> </CustomItem> </CustomEntry> </CustomEntries> </CustomControl> </View> <!--##################### PST Export Result ##########################--> <!--################## OneDrive Export Result #######################--> <View> <Name>EasyEntra.OneDriveExport.Result</Name> <ViewSelectedBy> <TypeName>EasyEntra.OneDriveExport.Result</TypeName> </ViewSelectedBy> <CustomControl> <CustomEntries> <CustomEntry> <CustomItem> <ExpressionBinding> <ScriptBlock> try { $sb = [System.Text.StringBuilder]::new() [void]$sb.AppendLine() [void]$sb.AppendLine(("{0,-15}: {1}" -f 'Identity', $_.Identity)) # Domain is cloud-only-empty for OneDrive; show only when present. if (-not [string]::IsNullOrEmpty($_.Domain)) { [void]$sb.AppendLine(("{0,-15}: {1}" -f 'Domain', $_.Domain)) } [void]$sb.AppendLine(("{0,-15}: {1}" -f 'Tenant', $_.Tenant)) [void]$sb.AppendLine(("{0,-15}: {1}" -f 'Type', $_.Type)) [void]$sb.AppendLine(("{0,-15}: {1}" -f 'Status', $_.Status)) if ($null -ne $_.Timestamp) { [void]$sb.AppendLine(("{0,-15}: {1}" -f 'Timestamp', $_.Timestamp.ToString('yyyy-MM-dd HH:mm:ss'))) } [void]$sb.AppendLine(("{0,-15}: {1}" -f 'OutputPath', $_.OutputPath)) [void]$sb.AppendLine(("{0,-15}: {1}" -f 'TotalItems', $_.TotalItems)) [void]$sb.AppendLine(("{0,-15}: {1}" -f 'IncludedCount', $_.IncludedCount)) [void]$sb.AppendLine(("{0,-15}: {1}" -f 'SkippedCount', $_.SkippedCount)) [void]$sb.AppendLine(("{0,-15}: {1}" -f 'ErrorCount', $_.ErrorCount)) [void]$sb.AppendLine(("{0,-15}: {1} MB" -f 'IncludedMB', [math]::Round($_.IncludedBytes / 1MB, 1))) [void]$sb.AppendLine(("{0,-15}: {1}" -f 'Duration', $_.Duration)) # Optional fields — shown only when present, mirroring the PST view's StartDate/EndDate. if ($null -ne $_.PartPaths -and $_.PartPaths.Count -gt 1) { [void]$sb.AppendLine(("{0,-15}: {1}" -f 'Parts', $_.PartPaths.Count)) } if (-not [string]::IsNullOrEmpty($_.ManifestPath)) { [void]$sb.AppendLine(("{0,-15}: {1}" -f 'ManifestPath', $_.ManifestPath)) } if ($null -ne $_.ModifiedAfter) { [void]$sb.AppendLine(("{0,-15}: {1}" -f 'ModifiedAfter', $_.ModifiedAfter.ToString('yyyy-MM-dd'))) } if ($null -ne $_.ModifiedBefore) { [void]$sb.AppendLine(("{0,-15}: {1}" -f 'ModifiedBefore', $_.ModifiedBefore.ToString('yyyy-MM-dd'))) } if ($null -ne $_.MaxFileSizeBytes) { [void]$sb.AppendLine(("{0,-15}: {1} MB" -f 'MaxFileSizeMB', [math]::Round($_.MaxFileSizeBytes / 1MB, 1))) } if ($null -ne $_.SplitSizeBytes) { [void]$sb.AppendLine(("{0,-15}: {1} MB" -f 'SplitSizeMB', [math]::Round($_.SplitSizeBytes / 1MB, 1))) } if ($null -ne $_.TaskLog -and $_.TaskLog.Count -gt 0) { [void]$sb.AppendLine(("{0,-15}: {1} entries" -f 'TaskLog', $_.TaskLog.Count)) [void]$sb.AppendLine() Format-EETaskLogEntries -StringBuilder $sb -TaskLog $_.TaskLog } else { [void]$sb.AppendLine(("{0,-15}: (empty)" -f 'TaskLog')) } $sb.ToString() } catch { "Error formatting output: $($_.Exception.Message)" } </ScriptBlock> </ExpressionBinding> </CustomItem> </CustomEntry> </CustomEntries> </CustomControl> </View> <!--################## OneDrive Export Result #######################--> </ViewDefinitions> </Configuration> |