Public/Migration/CloudData/Set-CloudDataRegionalSettings.ps1
function Set-CloudDataRegionalSettings { <# .SYNOPSIS Imports all Mailboxes Regional Configuration from CSV created by Get-CloudDataRegionalSettings .DESCRIPTION Imports all Mailboxes Regional Configuration from CSV created by Get-CloudDataRegionalSettings Results are exported as PSCustomObject which can be exported to CSV etc. .PARAMETER CSVFilePath Path to the CSVFile previously exported by Get-CloudDataRegionalSettings .EXAMPLE Set-CloudDataRegionalSettings -CSVFilePath .\RegionalSettings.csv | Export-Csv .\SetRegionalSettings_Results.csv -Append -notypeinformation .NOTES #> [CmdletBinding()] param ( [Parameter(Mandatory)] [string] $CSVFilePath ) if (Test-Path $CSVFilePath) { $MailboxList = Import-Csv $CSVFilePath | Where-Object { $_.Language -and $_.TimeZone } } else { Write-Warning "Path, $CSVFilePath not found. Please try again with the CSV's proper path" return } foreach ($Mailbox in $MailboxList) { try { Set-MailboxRegionalConfiguration -Identity $Mailbox.ExchangeGuid -Language $Mailbox.Language -TimeZone $Mailbox.TimeZone -ErrorAction Stop $NewConfig = Get-MailboxRegionalConfiguration -Identity $Mailbox.ExchangeGuid [PSCustomObject]@{ DisplayName = $Mailbox.DisplayName PrimarySmtpAddress = $Mailbox.PrimarySmtpAddress ExchangeGuid = $Mailbox.ExchangeGuid NewLanguage = $NewConfig.Language NewTimeZone = $NewConfig.TimeZone SourceLanguage = $Mailbox.Language SourceTimeZone = $Mailbox.TimeZone DateFormat = $Mailbox.DateFormat TimeFormat = $Mailbox.TimeFormat Log = 'SUCCESS' } } catch { [PSCustomObject]@{ DisplayName = $Mailbox.DisplayName PrimarySmtpAddress = $Mailbox.PrimarySmtpAddress ExchangeGuid = $Mailbox.ExchangeGuid NewLanguage = 'FAILED' NewTimeZone = 'FAILED' SourceLanguage = $Mailbox.Language SourceTimeZone = $Mailbox.TimeZone DateFormat = $Mailbox.DateFormat TimeFormat = $Mailbox.TimeFormat Log = $_.Exception.Message } } } } |