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, 9203 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
Microsoft Office
Outlook 2016 Fehler Link einfügen

Frage von Florian86 zum Thema Microsoft Office ...

Outlook & Mail
gelöst Outlook 2010-2013-2016 Profile mit Passwort (6)

Frage von Parlam3nt zum Thema Outlook & Mail ...

E-Mail
Fake E-Mail in Outlook für Demonstartionszwecke (12)

Frage von sascha382 zum Thema E-Mail ...

Neue Wissensbeiträge
Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(29)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Humor (lol)

Bester Vorschlag eines Supporttechnikers ever: APC

(15)

Erfahrungsbericht von DerWoWusste zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
ISDN & Analoganschlüsse
gelöst Splitter - RJ45 zu RJ11? (13)

Frage von Waishon zum Thema ISDN & Analoganschlüsse ...

Webbrowser
Windows 7 unbeliebte Internetseite sperren (13)

Frage von Daoudi1973 zum Thema Webbrowser ...

LAN, WAN, Wireless
gelöst Suche Firmware Image für Cisco Aironet 1252 (10)

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

Webbrowser
Internet Explorer schliesst direkt bei Start (10)

Frage von gabeBU zum Thema Webbrowser ...