Benutzer-Werkzeuge

Webseiten-Werkzeuge


powershell:ad:fix-calendarsettings

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
powershell:ad:fix-calendarsettings [2019/05/28 09:19] – angelegt henningpowershell:ad:fix-calendarsettings [2024/05/27 08:36] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 2: Zeile 2:
 Das Skript sucht nach Mailboxen, deren Kalender-Konfiguration nicht in der Westeuropäischen Zeitzone liegt und deren erste Kalenderwoche nicht der deutschen ISO-Norm entspricht und ändert die Einstellungen auf die deutschen Standard-Werte. Das Skript sucht nach Mailboxen, deren Kalender-Konfiguration nicht in der Westeuropäischen Zeitzone liegt und deren erste Kalenderwoche nicht der deutschen ISO-Norm entspricht und ändert die Einstellungen auf die deutschen Standard-Werte.
 ===== Das Skript ===== ===== Das Skript =====
 +<file powershell Fix-CalendarSettings.ps1>
 +<#
 +Skript:  Fix-CalendarSettings.ps1
 +Autor:   Henning Löser
 +Version: 1.1
 +Datum:   20.12.2018
  
 +Funktion:
  
 +- Bei der Neuanlage von Mailboxen werden die Kalenderwochen nach amerikanischer 
 +  Norm angelegt (Nicht ISO 8601). 
 +- Das Standard-Datum steht auf "Pacific Standard Time" und muss auf "W. Europe 
 +  Standard Time" geändert werden.
 +- Durch das Ändern der Zeitzone veschiebt sich die "WorkingHoursEndTime" in den 
 +  folgenden Tag und damit vor die "WorkingHoursStartTime", was zu Fehlern bei 
 +  der Objektverwaltung führt. Die Zeiten werden auf 8 und 17 Uhr in der neuen 
 +  Zeitzone festgelegt
 +
 +Das Skript sucht nach diesen Einstellungen und ändert sie auf den deutschen 
 +Standard.
 +
 +Nicht zu verarbeitende Mailboxen unter "$Skips" eintragen. Das ist evtl. für Postfächer 
 +von Personen im Ausland interessant.
 +#>
 +
 +# Zu übespringende Mailboxen
 +# Format: $Skips = @("samaccountname1","samaccountname2","samaccountname3")
 +$Skips = @("p.larkworthy.anke")
 +
 +# Logging einschalten
 +$logpath="C:\ProgramData\Skripte\log\Fix-CalendarSettings"
 +if (!(Test-path $logpath))
 +    {
 +    New-Item -ItemType directory $logpath
 +    }
 +
 +Start-Transcript -LiteralPath "$logpath\$(Get-Date -Format yyyMMdd).log" -Append
 +
 +# Alte Logfiles löschen
 +$MaxAge="90" # Tage
 +get-childitem -Path $logpath | where-object {$_.lastwritetime -lt (get-date).addDays(-$MaxAge)} | Foreach-Object { remove-item $_.FullName }
 +
 +# Powershell Exchange-SnapIn importieren
 +Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010
 +
 +# Alle Mailboxen abfragen
 +$Mbxs=Get-Mailbox -ResultSize unlimited
 +
 +# Mailboxen ausschließen, die nicht verarbeitet werden sollen
 +foreach ($Skip in $Skips)
 +    {
 +    if ($mbxs.samaccountname -contains $Skip)
 +        {
 +        Write-Host "$Skip`: Kalendereinstellung wird nicht geändert"
 +        $Mbxs = $mbxs | Where-Object samaccountname -NotLike $Skip
 +        }
 +    Else
 +        {
 +        Write-Host "$Skip`: Auszulassende Mailbox nicht gefunden" -ForegroundColor Red
 +        }
 +    }
 +
 +$Mbxs = $Mbxs | Sort-Object samaccountname
 +
 +foreach ($Mbx in $Mbxs)
 +    {
 +    # Kalenderwochen auf ISO ändern
 +    if ((Get-MailboxCalendarConfiguration $Mbx.Name).firstweekofyear -notlike "FirstFourDayWeek")
 +        {
 +        Write-Host "$($Mbx.name)`: Ändere Kalendereinstellung zu `"FirstFourDayWeek`"" -ForegroundColor Green
 +        Set-MailboxCalendarConfiguration -Identity $($Mbx.name) -FirstWeekOfYear FirstFourDayWeek
 +        }
 +    Else
 +        {
 +        Write-Host "$($Mbx.name)`: Kalendereinstellung bereits korrekt, keine Anpassung vorgenommen" -ForegroundColor Yellow
 +        }
 +
 +    # Timezone auf "W. Europe Standard Time" ändern und Arbeitszeit auf 08 bis 17 Uhr verschieben
 +    $tz=($Mbx | Get-MailboxCalendarConfiguration | select-object WorkingHoursTimeZone).WorkingHoursTimeZone.ExTimeZone.id
 +    if ($tz -notlike "W. Europe Standard Time")
 +        {
 +        Write-Host "$($Mbx.samaccountname)`: Timzone $tz"
 +        $Mbx | Set-MailboxCalendarConfiguration -WorkingHoursTimeZone "W. Europe Standard Time" -WorkingHoursStartTime 08:00:00 -WorkingHoursEndTime 17:00:00
 +        }
 +    Else
 +        {
 +        Write-Host "$($mbx.samaccountname)`: Timzone $tz" -ForegroundColor Green
 +        }
 +    }
 +Stop-Transcript
 +</file>
powershell/ad/fix-calendarsettings.1559027975.txt.gz · Zuletzt geändert: 2024/05/27 08:34 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki