SQL mit AD-Powershell
Hallo Leute,
ich habe ein etwas komplexeres Anliegen, was sich eher an die Experten für Powershell bzw. SQL richtet. Wir haben verschiedene interne Newsfeeds als Mailverteiler und wollen den Benutzern die Möglichkeit geben, selbstständig die jeweils relevanten Newsfeeds zu abbonnieren bzw. auch abzuwählen. Da wir bereits eine eigene Datenbank einsetzen, wollen wir das Frontend für den Benutzer dort einsetzen. Er trifft in der Datenbank eine Auswahl der gewünschten Feeds und klickt auf einen Button. Im Hintergrund ruft SQL eine Powershell mit AD-Modul auf und führt darin die Aktion aus.
Jetzt soll natürlich die Änderung direkt erfolgen, sobald sie gemacht wurde, bzw. alle 5 Minuten werden die anlaufenden Befehle gesammelt und dann als Stapel verarbeitet. Problematisch ist nur, das jedes mal beim Starten der Powershell das AD-Modul importiert wird. Da ich so die Datenbank total ausbremse, ist das keine Lösung für mich.
Idealerweise soll beispielsweise die AD-Powershell ständig laufen und über irgendeinen Weg die Befehle vom SQL ausführen. Mein Ansatz war, das über eine "normale" Powershell ohne Module zu lösen, die eventuell mit Get-Process und Invoke-Command das ausführt. Aber mittlerweile habe ich die Vermutung dass es doch nicht so klappen wird. Das große Problem aus meiner Sicht ist das Importieren des AD-Moduls beim Aufruf der Powershell. Ist das ein Teufelskreis den ich nur mit Kompromissen durchbrechen kann, oder gibt es noch einen anderen Weg, der auch das gleiche bewirkt? Letztendlich soll durch einen Trigger in der Datenbank die Änderung in der AD bewirkt werden. Es handelt sich auch nur um bestehende AD-User und Gruppen.
Ich hoffe dass ich mein Anliegen verständlich machen konnte.
Grüße
BleppSatter
ich habe ein etwas komplexeres Anliegen, was sich eher an die Experten für Powershell bzw. SQL richtet. Wir haben verschiedene interne Newsfeeds als Mailverteiler und wollen den Benutzern die Möglichkeit geben, selbstständig die jeweils relevanten Newsfeeds zu abbonnieren bzw. auch abzuwählen. Da wir bereits eine eigene Datenbank einsetzen, wollen wir das Frontend für den Benutzer dort einsetzen. Er trifft in der Datenbank eine Auswahl der gewünschten Feeds und klickt auf einen Button. Im Hintergrund ruft SQL eine Powershell mit AD-Modul auf und führt darin die Aktion aus.
Jetzt soll natürlich die Änderung direkt erfolgen, sobald sie gemacht wurde, bzw. alle 5 Minuten werden die anlaufenden Befehle gesammelt und dann als Stapel verarbeitet. Problematisch ist nur, das jedes mal beim Starten der Powershell das AD-Modul importiert wird. Da ich so die Datenbank total ausbremse, ist das keine Lösung für mich.
Idealerweise soll beispielsweise die AD-Powershell ständig laufen und über irgendeinen Weg die Befehle vom SQL ausführen. Mein Ansatz war, das über eine "normale" Powershell ohne Module zu lösen, die eventuell mit Get-Process und Invoke-Command das ausführt. Aber mittlerweile habe ich die Vermutung dass es doch nicht so klappen wird. Das große Problem aus meiner Sicht ist das Importieren des AD-Moduls beim Aufruf der Powershell. Ist das ein Teufelskreis den ich nur mit Kompromissen durchbrechen kann, oder gibt es noch einen anderen Weg, der auch das gleiche bewirkt? Letztendlich soll durch einen Trigger in der Datenbank die Änderung in der AD bewirkt werden. Es handelt sich auch nur um bestehende AD-User und Gruppen.
Ich hoffe dass ich mein Anliegen verständlich machen konnte.
Grüße
BleppSatter
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 393359
Url: https://administrator.de/contentid/393359
Ausgedruckt am: 22.11.2024 um 10:11 Uhr
4 Kommentare
Neuester Kommentar
Würde es gleich im Trigger mit .NET und c# ins AD schreiben ohne den hier unnötigen Powershell-Overhead, denn auf das AD kann das .NET schon von Haus aus ohne die Powershell-Zwischenschicht zugreifen.
Btw. in der Powershell brauchst du nicht wirklich das AD-Modul , das kannst du alles auch über die dafür zur Verfügung stehenden .NET Klassen wie [ADSI] und [adsisearcher] etc. abfackeln. Das AD Modul ist nur für die Vereinfachung der Arbeit da, aber wenn man weiß wie das AD und deren Abfragen funktioniert braucht man es nicht wirklich. Alles was du mit dem Modul machen kannst kannst du auch ohne Modul mit den reinen .NET Klassen erreichen. Wenn du trotzdem nicht davon lassen willst dann importiere nur die CMDLets die du auch tatsächlich nutzt
https://stackoverflow.com/questions/9170659/optimizing-powershell-module ...
Gruß A.
Btw. in der Powershell brauchst du nicht wirklich das AD-Modul , das kannst du alles auch über die dafür zur Verfügung stehenden .NET Klassen wie [ADSI] und [adsisearcher] etc. abfackeln. Das AD Modul ist nur für die Vereinfachung der Arbeit da, aber wenn man weiß wie das AD und deren Abfragen funktioniert braucht man es nicht wirklich. Alles was du mit dem Modul machen kannst kannst du auch ohne Modul mit den reinen .NET Klassen erreichen. Wenn du trotzdem nicht davon lassen willst dann importiere nur die CMDLets die du auch tatsächlich nutzt
https://stackoverflow.com/questions/9170659/optimizing-powershell-module ...
Gruß A.