Hallo zusammen,
ich versuche verzweifelt ein ADS Attribut auszulesen, das funktioniert eigentlich mit jedem anderen Attribut ausser mit einem "securecomputingCom2000-SafeWord-UserID" das Minuszeichen "-" enthält. Nach dem ersten Minuszeichen wird offenbar das Attribut nicht mehr "erkannt" und auch anders dargestellt. Als Sring habe ich auch schon mal deklariert, leider ohne Erfolg.
[autoit]
#include <GUIConstants.au3>
#include <Misc.au3>
Const $ADS_NAME_INITTYPE_GC = 3
Const $ADS_NAME_TYPE_NT4 = 3
Const $ADS_NAME_TYPE_1779 = 1
Dim $cmd2, $cmd3, $txt2, $txt3
$frm1 = GUICreate("SafeWordToken Changer", 421, 160, 512, 317)
$filemenu = GuiCtrlCreateMenu ("Datei")
$exititem = GuiCtrlCreateMenuitem ("Beenden",$filemenu)
$helpmenu = GuiCtrlCreateMenu ("?")
$aboutitem = GuiCtrlCreateMenuitem ("Über",$helpmenu)
$txt1 = GUICtrlCreateInput("", 144, 24, 161, 21)
$lbl1 = GUICtrlCreateLabel("Login Name:", 24, 24, 91, 20)
GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
$cmd1 = GUICtrlCreateButton("Suchen", 312, 24, 73, 25, 0)
$cmd2 = GUICtrlCreateButton("Ändern", 312, 64, 75, 25, 0)
GUICtrlSetState(-1,$GUI_Hide)
$lbl4 = GUICtrlCreateLabel("©2008 Werner Heuschreiber", 264, 120, 141, 17)
GUISetState(@SW_SHOW)
While 1
$msg = GuiGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
Exit
Case $msg = $cmd1
[/autoit][autoit][/autoit][autoit]$oMyError = ObjEvent("AutoIt.Error", "ComError")
$objRootDSE = ObjGet("LDAP://RootDSE")
$username = GUICtrlRead($txt1)
If @error Then
MsgBox(0, 'Fehler', 'Username: ' & $username & ' existiert nicht, oder die Domäne ' & @LogonDomain & ' ist nicht verfügbar!')
Else
; DNS domain name.
$objTrans = ObjCreate("NameTranslate")
$objTrans.Init ($ADS_NAME_INITTYPE_GC, "")
$objTrans.Set ($ADS_NAME_TYPE_1779, @LogonDomain)
$objTrans.Set ($ADS_NAME_TYPE_NT4, @LogonDomain & "\" & $username)
$strUserDN = $objTrans.Get ($ADS_NAME_TYPE_1779)
$UserObj = ObjGet("LDAP://" & $strUserDN)
If @error Then
MsgBox(0, 'Fehler', 'Username: ' & $username & ' existiert nicht, oder die Domäne ' & @LogonDomain & ' ist nicht verfügbar!')
Else
$Token = $UserObj.securecomputingCom2000-SafeWord-UserID
$txt2 = GUICtrlCreateInput($Token, 144, 64, 161, 21)
$lbl2 = GUICtrlCreateLabel("SafeWordToken:", 24, 64, 120, 20)
GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
GUICtrlSetState(10, $GUI_SHOW)
EndIf
EndIf
$UserObj = ""
$oMyError = ObjEvent("AutoIt.Error", "")
;COM Error function
Func ComError()
If IsObj($oMyError) Then
$HexNumber = Hex($oMyError.number,
SetError($HexNumber)
Else
SetError(1)
EndIf
Return 0
EndFunc ;==>ComError
Case $msg = $cmd2
$NewToken = GUICtrlRead( $txt2 )
$UserObj = ObjGet("LDAP://" & $strUserDN)
$UserObj.securecomputingCom2000-SafeWord-UserID = $NewToken
$UserObj.SetInfo
Case $msg = $exititem
Exit
Case $msg = $aboutitem
[/autoit][autoit][/autoit][autoit]EndSelect
WEnd
Hat vielleich irendjemand eine Idee?
Grüsse schmuh