Hallo Zusammen,
ich habe untenstehendes Script um zu prüfen ob ein User in zb in der AD Gruppe Maschine1_admin ist und wenn dies der Fall ist wird, nach Authentifizierung an der AD, das gewünschte Programm gestartet.
Das funktioniert auch super solange ich nur die Mitgliedschaft einer Gruppe abfrage.
Ich würde gerne aber mehrere AD-Gruppen Abfragen da zB alle Administratoren und Wartungs-User ein Programm starten dürfen (im bsp Explorer.exe)
Ich verstehe die Syntax für das Abfragen der beiden Gruppen nicht.
Jemand eine Idee wie ich 2 oder mehrere Gruppen Abfragen könnte?
Zeilen 11 und 30
C
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=..\Program Files (x86)\AutoIt3\_ICOS\924.ico
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <file.au3>
#include <AD.au3>
#include <GuiConstants.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
_AD_ErrorNotify(2)
;eine gruppe abfragen
;Global $hUserName, $hPassword, $sUserName, $sPassword, $sGroup1 = "Maschine1_admin"
;zwei gruppen
Global $hUserName, $hPassword, $sUserName, $sPassword, $sGroup1 = "Maschine1_admin", $sGroup2 = "Maschine1_Wartung"
$gui = GUICreate("Authenticate", 120, 170)
GUICtrlCreateLabel("Username:", 10, 10, 50, 20)
$hUserName = GUICtrlCreateInput("", 10, 35, 100, 20)
GUICtrlCreateLabel("Password:", 10, 70, 50, 20)
$hPassword = GUICtrlCreateInput("", 10, 95, 100, 20, $ES_PASSWORD)
$go = GUICtrlCreateButton("OK", 10, 130, 50, 25, $BS_DEFPUSHBUTTON)
$cancel = GUICtrlCreateButton("Cancel", 60, 130, 50, 25)
GUISetState()
While 1
$msg = GUIGetMsg()
Switch $msg
Case $go
$sUserName = GUICtrlRead($hUserName)
$sPassword = GUICtrlRead($hPassword)
_AD_Open($sUserName, $sPassword)
If @error Then
MsgBox(64, "Fehler", "User oder Passwort falsch!")
Exit
;eine gruppe
;ElseIf _AD_IsMemberOf($sGroup1, $sUserName, True) <> 1 Then
;zwei gruppen
ElseIf _AD_IsMemberOf($sGroup1, $sUserName, True) or _AD_IsMemberOf($sGroup2, $sUserName, True) <> 1 Then
MsgBox(64, "Error", "User ist nicht in berechtigten Gruppen")
AD_Close()
Exit
EndIf
_AD_Close()
; Output Username to a log file with date and time
_FileWriteLog(@Scriptdir & "\Username.log", GUICtrlRead($hUserName))
ShellExecute("explorer.exe")
Exit
case $cancel, $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
GUIDelete($gui)
Alles anzeigen