ich habe in unserer Umgebung ein Phänomen, was ich mir nicht erklären kann.
Ich habe ein Powershellscript, welches im AD aktive Benutzer auslesen und zählen soll. Das funktioniert auch tadellos in der Powershell und auch der check_mk_agent.exe scheint es richtig wieder zu geben:
Mein Script schreibt jetzt alles Mögliche in ein Textfile zum Debuggen. Alle Werte und mittels whoami der Userkontext wird in ein Textfile geschrieben.
Ich habe einen Service-Account (nennen wir ihn mal “sa_c”) erstellt. Dieser führt jetzt den CheckMK dienst aus. Laut meinem Log ist es auch der User, unter dessen Kontext das ps1 ausgeführt wird.
Wenn ich mich als der User am DC anmelde, wo das Skript als lokaler check liegt und es manuell ausführe, wirft es mir die richtigen Zahlen zurück.
Wenn das Skript aber vom Agent unter dem GLEICHEN Userkontext ausgeführt wird, zählt er nicht mehr richtig.
Wenn ich die Powershell “als Administrator” ausführe und dann das Skript lade, komme ich auf die gleichen Werte wie CheckMK.
Es ist also Get-ADuser, welches verschiedene Ergebnisse liefert…
EDIT:
Das war die Lösung. Wie auch hier beschrieben.
Ich tappte beim Schreiben und Testen des Skripts die ganze Zeit im dunklen.
Check_MK hat es die ganze Zeit einfach richtig gemacht und das ps1 im Administratorkontext ausgeführt. Dann zieht auch der Filter nach “enabled -eq $true”…
Die Powershell Scripte laufen im CheckMK normal als “Local System” Context. Der ist meist “ähnlich” dem lokalen Admin kann aber auch unterschiedlich sein im Ergebnis.
This topic was automatically closed 365 days after the last reply. New replies are no longer allowed. Contact an admin if you think this should be re-opened.