Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Feiertage in Outlook falsch

Frage Microsoft Outlook & Mail

Mitglied: melmax

melmax (Level 1) - Jetzt verbinden

20.11.2014, aktualisiert 24.11.2014, 9147 Aufrufe, 10 Kommentare, 1 Danke

Hallo zusammen,

ich bin gerade von einem User darauf aufmerksam gemacht worden dass die Pfingstfeiertage 2015 in Outlook falsch sind.
Nach einigen Google Abfragen weiß ich zwar wie ich das Problem lösen kann (mit Feiertage löschen und .hol File tauschen...), irgendwie macht das aber bei 900 Clients keinen Spass.
Da steiken auch meine Azubis

Hat einer von euch hier schon eine Enterprise-taugliche Lösung oder hab ich mal wieder ein MS Hotfix übersehen?

Vielen Dank für euren Input,

Melmax
Mitglied: colinardo
LÖSUNG 20.11.2014, aktualisiert 24.11.2014
Hallo Melmax,
ließe sich mit einem Powershell-Script machen, hier mal schnell skizziert:
(Das korrigierte HOL-File kannst du ja auf ein Netzlaufwerk legen / Pfad Zeile 11)
01.
function Remove-OutlookHolidays(){ 
02.
    $objOL = New-Object -ComObject "Outlook.Application" 
03.
    $calendar = $objOL.GetNamespace("MAPI").GetDefaultFolder(9) 
04.
    $holidays = $calendar.Items.Restrict("@SQL=""http://schemas.microsoft.com/mapi/string/{00020329-0000-0000-C000-000000000046}/Keywords"" = 'Feiertag'") 
05.
    while($holidays.Count -gt 0){ 
06.
        $holidays.Remove(1) 
07.
08.
09.
 
10.
function Add-OutlookHolidays(){ 
11.
    $holFile = "\\Server\Share\OUTLOOK_FIX.HOL" 
12.
    $objOL = New-Object -ComObject "Outlook.Application" 
13.
    $calendar = $objOL.GetNamespace("MAPI").GetDefaultFolder(9) 
14.
    $holidays = [regex]::Match((gc $holfile | out-string),'(?sm)^\[Deutschland\].*?$(.*?)^\[').Groups[1].Value.Trim().Split("`n") 
15.
    $holidays | %{ 
16.
        $line = $_.Split(",") 
17.
        $app = $calendar.Items.Add(1) 
18.
        $app.AllDayEvent = $true  
19.
        $app.Start = get-date $line[1] 
20.
        $app.Subject = $line[0] 
21.
        $app.ReminderSet = $false 
22.
        $app.Categories = "Feiertag" 
23.
        $app.Location = "Deutschland" 
24.
        $app.Save() 
25.
26.
27.
write-host "Entferne Outlook-Feiertage ..." 
28.
Remove-OutlookHolidays 
29.
write-host "Füge Outlook-Feiertage hinzu...Bitte warten..." 
30.
Add-OutlookHolidays
Grüße Uwe
Bitte warten ..
Mitglied: melmax
24.11.2014 um 13:43 Uhr
Hallo Uwe,

vielen Dank, Script wird bereits getestet.

Grüße Melmax
Bitte warten ..
Mitglied: FrauMue
26.01.2015 um 17:38 Uhr
Hallo Uwe,

vielen Dank. Ich beschäftige mich jetzt zum ersten Mal mit PowerShell. Mir ist nicht klar was z.B. in Zeile 4 gemacht wird. In die Variable $holidays schreibst du die Feiertage aus dem Kalender...? Was macht @sql und der link?

Würde gerne nur die beiden falschen tage ersetzten, wenn sie denn existieren - komme aber mit meinen beschränkten Kenntnissen nicht weiter.

Danke im Voraus!

Grüße
Bitte warten ..
Mitglied: colinardo
26.01.2015, aktualisiert um 17:54 Uhr
Hallo FrauMue,
Zitat von FrauMue:
vielen Dank. Ich beschäftige mich jetzt zum ersten Mal mit PowerShell. Mir ist nicht klar was z.B. in Zeile 4 gemacht wird.
In die Variable $holidays schreibst du die Feiertage aus dem Kalender...?
Ja damit werden auf effektive Weise alle Feiertage gefiltert um nicht alle Termine mit einer Schleife durchitterieren zu müssen.
Siehe: Items.Restrict Method (Outlook)
Was macht @sql und der link?
Das sind PropTags die intern von Outlook Verwendung finden. Diese kann man sich z.B. mit MFCMAPI anzeigen lassen.

c2bd7719325ae280103b58b1c26a5d63 - Klicke auf das Bild, um es zu vergrößern

Würde gerne nur die beiden falschen tage ersetzten, wenn sie denn existieren - komme aber mit meinen beschränkten
Kenntnissen nicht weiter.
Das Script entfernt alle Feiertage. Dann holst du dir das korrigierte HOL-File mit den korrigierten Feiertagen und lässt es mit der Import-Funktion wieder alle importieren. Feddich.

Grüße Uwe

/Eine Einführung in Powershell können wir hier leider nicht jedem geben...siehe dazu://

Powershell Grundlagen- und Praxisvermittlung:
Bitte warten ..
Mitglied: colinardo
26.01.2015, aktualisiert um 18:47 Uhr
Zitat von FrauMue:
Würde gerne nur die beiden falschen tage ersetzten, wenn sie denn existieren - komme aber mit meinen beschränkten
Kenntnissen nicht weiter.
Sorry hatte ich glatt überlesen, für den Fall reicht folgendes Script:
Korrigiert Pfingstfeiertage 2015 (Pfingstsonntag und Pfingstmontag) im Standardkalender von Outlook.
  • Pfingstsonntag vom 28.05.2015 auf 24.05.2015
  • Pfingstmontag vom 29.05.2015 auf 25.05.2015
01.
$objOL = New-Object -ComObject "Outlook.Application" 
02.
$calendar = $objOL.GetNamespace("MAPI").GetDefaultFolder(9) 
03.
$calendar.Items.Restrict("[Subject] = 'Pfingstsonntag' AND [Start] = '" + (get-date '28.05.2015' -Format 'g') + "'") | %{$_.Start = get-date '24.05.2015';$_.Save()} 
04.
$calendar.Items.Restrict("[Subject] = 'Pfingstmontag' AND [Start] = '" + (get-date '29.05.2015' -Format 'g') + "'") | %{$_.Start = get-date '25.05.2015'; $_.Save()}
Falls der Beitrag gefällt, seid so nett und unterstützt mich durch eine kleine Spende / If you like my contribution please support me and donate

Grüße Uwe
Bitte warten ..
Mitglied: HarryK
19.03.2015 um 14:25 Uhr
Hallo Uwe,

vorab, das Powershell Script funktioniert einwandfrei.

Das Script wird bei uns per GPO beim Logon eines Users ausgeführt.

Auf Windows 7 + Clients kein Problem, gibt es jedoch für Windows XP Clients auch eine Lösung?

Danke!
Bitte warten ..
Mitglied: colinardo
19.03.2015, aktualisiert um 14:32 Uhr
Hallo HarryK,
das läßt sich auch einfach als VBS umschreiben, oder du installierst die PS 2.0 auf den XP Rechnern.

Grüße Uwe
Bitte warten ..
Mitglied: HarryK
19.03.2015 um 14:41 Uhr
Ja, wenn man Ahnung von VB hat, ist es bestimmt einfach . Installation von PS auf den Rechnern will ich eig. vermeiden.

Ich schau mir trotzdem einmal die VBS Variante an.
Bitte warten ..
Mitglied: colinardo
19.03.2015, aktualisiert um 15:28 Uhr
So hier noch das Script als VBS umgeschrieben:
01.
Set objOL = CreateObject("Outlook.Application") 
02.
Set cal = objOL.GetNamespace("MAPI").GetDefaultFolder(9) 
03.
Set items = cal.items.Restrict("[Subject] = 'Pfingstsonntag' AND [Start] = '" & FormatDateTime("28.05.2015", vbShortDate) & " 00:00'") 
04.
Set itm = items.GetFirst() 
05.
If Not itm Is Nothing Then 
06.
    itm.start = CDate("24.05.2015") 
07.
    itm.Save 
08.
End If 
09.
Set items = cal.items.Restrict("[Subject] = 'Pfingstmontag' AND [Start] = '" & FormatDateTime("29.05.2015", vbShortDate) & " 00:00'") 
10.
Set itm = items.GetFirst() 
11.
If Not itm Is Nothing Then 
12.
    itm.start = CDate("25.05.2015") 
13.
    itm.Save 
14.
End If
Ist ja Ende Mai sowieso obsolet

Grüße Uwe

Installation von PS auf den Rechnern will ich eig. vermeiden.
Lieber die Kisten migrieren ... ist schon längst überfällig...
Bitte warten ..
Mitglied: HarryK
19.03.2015 um 15:51 Uhr
Top Uwe, hat super funktioniert!
Bitte warten ..
Ähnliche Inhalte
Exchange Server
Outlook Android und Exchange 2013 (2)

Frage von cmmarburg zum Thema Exchange Server ...

Exchange Server
Exchange + Outlook 365 - Absturz beim Verschieben von Ordnern

Frage von JackNukem zum Thema Exchange Server ...

Outlook & Mail
Outlook 2013 Kalender sync

Frage von TGoyf45 zum Thema Outlook & Mail ...

Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(5)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
Windows Server
gelöst Exchange HyperV Prozessorlast (19)

Frage von theoberlin zum Thema Windows Server ...

Hardware
16-20 Port POE Switch mit VLAN (19)

Frage von thomasreischer zum Thema Hardware ...

LAN, WAN, Wireless
gelöst Batchdatei um einen Proxy einzustellen (14)

Frage von CrystalFlake zum Thema LAN, WAN, Wireless ...

Windows Userverwaltung
Nicht Administratoren Installation von Software erlauben (14)

Frage von WinLiCLI zum Thema Windows Userverwaltung ...