Fehlerbehandlung für PowerShell Aufrufe
Autor: Tobias Harmes | 27. Januar 2013
Für die Anbindung eines Microsoft Exchange Server 2010 an SAP NetWeaver Identity Management (kurz SAP IdM) kann es durchaus erforderlich und nützlich sein PowerShell Scripte auszuführen um Actionen im Exchange Server zu starten. In diesem Artikel behandle ich die Anbindung eines SAP NetWeaver Identity Management 7.1 SP 5 via PowerShell Script an Microsoft Exchange Server 2010.
PowerShell Scripte ausführen
In SAP IdM gibt es verschiedene Möglichkeiten PowerShell Scripte auszuführen. Die SAP selbst bietet einen Connector für einen To Custom Pass bei dem das Script aufgerufen wird und Parameter an das Script übergeben werden können.
Die folgende Abbildung zeigt den Ausschnitt der “Destination” eines solchen Passes.
Eine weitere Möglichkeit ist das PowerShell Script über einen Shell execute Pass aufzurufen. Dies wird hier nur der Vollständigkeit halber erwähnt und nicht weiter ausgeführt.
Diese beiden Möglichkeiten funktionieren, bieten allerdings keinerlei Informationen darüber, ob das Script erfolgreich ausgeführt wurde oder nicht. Aus diesem Grund haben wir uns für dieses Problem eine Lösung überlegt.
SAP Identity Management
SAP Identity Management unterstützt Sie bei der zentralen Verwaltung von Benutzern, Berechtigungen und Genehmigungs-Workflows im Unternehmen.
In einem To Generic Pass wird das PowerShell Script als Argument an ein JavaScript übergeben und von dort aus ausgeführt. Zusätzlich wird der Pfad zur entsprechenden PowerShell Konsole übergeben um die benötigte Version selbst zu bestimmen.
Die nächste Abbildung zeigt beispielhaft einen To Generic Pass:
Einbindung der Java Klasse
Es wird eine eigenentwickelte Java Klasse eingebunden, die das Script aufnimmt und über einen Konsolenaufruf im Hintergrund ausführt. Über eine Java Funktion kann der Output-Stream der Konsole ausgelesen werden. Damit ist es möglich eine Rückmeldung über den Erfolg oder auch Misserfolg zu erhalten. Das Ergebnis wird aus dem Java-Programm ans JavaScript übergeben und von dort in den Job-Log des SAP IdM Identity Center geschrieben. Mit diesem Umweg ist es möglich eine Fehlerbehandlung bei PowerShell Scripten zu erhalten.
Das Ergebnis dieser Überlegungen und der Lösung ist in den folgenden beiden Abbildungen zu sehen. Zum aktuellen Zeitpunkt ist die Fehlerbehandlung nur sehr einfach und gibt als Rückmeldung den Status: “Success” oder “Error“.