ICS Import Office 365
Hallo Zusammen, benötige mal Hilfe und hoffe das ich hier ne Lösung finde:
Ich benötige ein Programm zum automatischen Import von ICS Dateien in das jeweilige Office 365 Konto !
Wir bekommen von unserem Zeiterfassungssystem pro Mitarbeiter immer eine ICS Datei ausgespielt
Jeder Mitarbeiter bei mir hat ein eigenes Office 365 Konto und wir würden uns Wünschen, das es ein Programm oder auch Batch Datei gibt, wo die jeweilige passende ICS Datei des Mitarbeiters gegen das Office 365 Konto des Mitarbeiters Synchronisiert / Importiert wird
Hat hier jemand vielleicht eine Lösungsansatz oder vielleicht auch ein passendes Programm dazu ?
Wir hatten schon so mal was aber leider hat Microsoft jetzt auf OAuth Umgestellt und wir sind in einer Sackgasse
Carsten
Ich benötige ein Programm zum automatischen Import von ICS Dateien in das jeweilige Office 365 Konto !
Wir bekommen von unserem Zeiterfassungssystem pro Mitarbeiter immer eine ICS Datei ausgespielt
Jeder Mitarbeiter bei mir hat ein eigenes Office 365 Konto und wir würden uns Wünschen, das es ein Programm oder auch Batch Datei gibt, wo die jeweilige passende ICS Datei des Mitarbeiters gegen das Office 365 Konto des Mitarbeiters Synchronisiert / Importiert wird
Hat hier jemand vielleicht eine Lösungsansatz oder vielleicht auch ein passendes Programm dazu ?
Wir hatten schon so mal was aber leider hat Microsoft jetzt auf OAuth Umgestellt und wir sind in einer Sackgasse
Carsten
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 4466853330
Url: https://administrator.de/contentid/4466853330
Ausgedruckt am: 19.11.2024 um 10:11 Uhr
19 Kommentare
Neuester Kommentar
Servus,
ja das lässt sich mit ein wenig EWS Powershell und OAuth2 Login per App-Registration realisieren.
Das Erstellen der App-Registrierung für die Application Impersonation in Azure soll hier nicht das Thema sein, wie man diese anlegt habe ich hier schon in einem Beitrag erläutert: MS 365 Exchange Service Account
Nur in Kürze wo sich die entsprechende Seiten dazu finden:
Nächster Schritt: Ist das Anlegen der App-Registration geschehen kann man mit diesen Credentials folgendes Skript laufen lassen um das zu erreichen was du dir oben vorstellst:
(Variablen im Kopf des Skripts mit den entsprechenden Werten füllen)
Ausschnitt der Variablen
Support für persönliche Anpassung gerne per PN nach Aufwand.
Viel Erfolg.
Grüße Uwe
ja das lässt sich mit ein wenig EWS Powershell und OAuth2 Login per App-Registration realisieren.
Das Erstellen der App-Registrierung für die Application Impersonation in Azure soll hier nicht das Thema sein, wie man diese anlegt habe ich hier schon in einem Beitrag erläutert: MS 365 Exchange Service Account
Nur in Kürze wo sich die entsprechende Seiten dazu finden:
Nächster Schritt: Ist das Anlegen der App-Registration geschehen kann man mit diesen Credentials folgendes Skript laufen lassen um das zu erreichen was du dir oben vorstellst:
(Variablen im Kopf des Skripts mit den entsprechenden Werten füllen)
import_ics_m365_4466853330.zip
Ausschnitt der Variablen
# Variables ========================================
# tenant domain
$DOMAIN = 'domain.tld'
# app registration identifier
$CLIENT_ID = 'xxxxxxxxxxxxxx'
# app registration secret key
$CLIENT_KEY = 'xxxxxxxxxxxxxx'
# Folder in which the ics files reside
$FOLDER_ICS = 'D:\data'
# User mapping (file basename => assigned user email)
$USERMAPPING = @{
'MM' = 'MaxMuster@domain.tld'
'AM' = 'AnnaMusterfrau@domain.tld'
}
# ...
Support für persönliche Anpassung gerne per PN nach Aufwand.
Viel Erfolg.
Grüße Uwe
Zitat von @CSEService:
Mal ne Frage : Unter Skript meinst zum Beispiel eine Batch Datei die ich laufen lassen kann ? Also ich pack das einfach in den Aufgabenplaner dann ?
Das ist Powershell kein Batch, und "ja" das lässt sich natürlich auch per Taskplaner ausführen.Mal ne Frage : Unter Skript meinst zum Beispiel eine Batch Datei die ich laufen lassen kann ? Also ich pack das einfach in den Aufgabenplaner dann ?
Und das wäre dann die Zuweisung der jeweiligen User ? :
$USERMAPPING = @{
'MM' = 'MaxMuster@domain.tld'
'AM' = 'AnnaMusterfrau@domain.tld'
Richtig. Das kann man entweder direkt im Skript hinterlegen oder aber auch in eine Textdatei auslagern und per ConvertFrom-StringData oder Import-Csv einlesen wenn man möchte, das wäre auch kein Problem.$USERMAPPING = @{
'MM' = 'MaxMuster@domain.tld'
'AM' = 'AnnaMusterfrau@domain.tld'
Zitat von @CSEService:
Frage dazu noch: Wäre es denn Schlimm wenn die Dateien dann Überschrieben werden mit neuen Dateien ?
Frage dazu noch: Wäre es denn Schlimm wenn die Dateien dann Überschrieben werden mit neuen Dateien ?
Kein Problem wenn du in einer neuen Zeile nach Zeile 109 die folgende Zeile einfügst
wird das jeweilige File nach Verarbeitung gelöscht.
Vielleicht mal als Wochenendlektüre empfehlenswert:
Powershell Leitfaden für Anfänger
remove-item -LiteralPath $file.Fullname -Force
Vielleicht mal als Wochenendlektüre empfehlenswert:
Powershell Leitfaden für Anfänger
Habe ich gerade mal schnell übernommen.
Grüße Uwe
Grüße Uwe
Jemand ne Idee was hier das Problem ist ?
Ja, du verwendest offensichtlich noch ein OS bzw. veraltetes Management Framework was per Default auf unsichere TLS Standards setzt und deswegen keine sichere SSL Verbindung für den Download der EWS Library von Nuget.org zu Stande kommt, weil deren Server nunmal alte Standards nicht mehr anbieten.Das kannst du beheben indem du der Session sagst das sie min. TLS1.2 für SSL Verbindungen verwenden soll indem du folgende Zeile im Skript-Kopf platzierst.
[System.Net.ServicePointManager]::SecurityProtocol = 'Tls12'
Wie gesagt dein Client ist veraltet und nicht up to date, das sind nämlich genau die Fehler die kommen wenn das der Fall ist . Ich kann dir zwar jetzt alles auf den alten Kram umschreiben aber das ist ja eigentlich nicht Sinn der Sache.
D.h. z.B. alle Objekterstellungen auf New-Object umzustellen wie bspw. Zeile 52
D.h. z.B. alle Objekterstellungen auf New-Object umzustellen wie bspw. Zeile 52
$ews.Credentials = New-Object Microsoft.Exchange.WebServices.Data.OAuthCredentials $access_token.access_token
Hallo colinardo,
ich habe mich extra hier angemeldet um mich ganz herzlich für das Skript zu bedanken! Ich war schon länger auf der Suche nach sowas und das klappt wirklich hervorragend 😊🥳, also nochmal vielen vielen Dank du hast mein Wochenende gerettet!!!
Lieben Gruß von Andi
ich habe mich extra hier angemeldet um mich ganz herzlich für das Skript zu bedanken! Ich war schon länger auf der Suche nach sowas und das klappt wirklich hervorragend 😊🥳, also nochmal vielen vielen Dank du hast mein Wochenende gerettet!!!
Lieben Gruß von Andi
Immer gerne.
Jepp, not supported, die Import-Variante oben kann nur neue Termine erstellen.des weiteren ist damit nur ein Termin/Event pro ICS File möglich.
#update# Skript wurde oben aktualisiert, so dass dies nun unterstützt wird.
Grüße Uwe
Zitat von @CSEService:
Bei mir läuft es jetzt auch fast , bin dann mal auf die glorreiche Idee gekommen das nicht auf meinem alten W2003 Server zu testen
Autsch, wie ich vermutet hatte vollkommen veraltet 🙈.Bei mir läuft es jetzt auch fast , bin dann mal auf die glorreiche Idee gekommen das nicht auf meinem alten W2003 Server zu testen
Leider besteht aber noch ein kleine Problem, denke es ist ne Zuordnungssache wie so in jeder Schnittstelle:
Unsere ICS Dateien beinhalten Status Informationen wie CONFIRMED und CANCELED, also Erstellung des Termins bzw. Löschung des Termins
Liege ich da Richtig das dies im Script nicht berücksichtigt wird ?
Unsere ICS Dateien beinhalten Status Informationen wie CONFIRMED und CANCELED, also Erstellung des Termins bzw. Löschung des Termins
Liege ich da Richtig das dies im Script nicht berücksichtigt wird ?
#update# Skript wurde oben aktualisiert, so dass dies nun unterstützt wird.
Grüße Uwe
Serie: ICS Import Office 365
ICS Import Office 36519