Signatur mit givenname aus Active Directory LDAP Topic is solved

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

User avatar
Heloo1982
Posts: 30
Joined: 12 Jan 2017, 07:39

Signatur mit givenname aus Active Directory LDAP

12 Jan 2017, 09:21

Hallo zusammen,
vorweg gesagt, ich bin AHK Neuling und auch kein Programmierer. Ich möchte ein Script mit einem Hotstring programmieren, wo ein Datumsstempel mit dem vollen Namen aus dem AD givenname geschrieben wird.
Hier ein Beispiel mit dem Usernamen:

Code: Select all

:*:ddd::
FormatTime, CurrentDateTime,, dd.MM.yy
Send %CurrentDateTime% %A_Username%
Return
Ziel:
Mehrere Personen können das gleiche Script mit dem gleichen Hotstring verwenden und es wird immer der korrekte Name gesendet.

Ich habe mittlerweile ziemlich fleißig recherchiert, konnte jedoch keine Möglichkeit finden, Daten aus dem Active Directory einzubinden. Ich weiß, dass PhraseExpress diese Möglichkeit bietet, also muss es meiner Meinung theoretisch mit AHK ebenfalls möglich sein. Auf folgendes bin ich gestoßen:

Der Kollege hat das gleiche Thema, ich sehe jedoch keine Lösung:
https://autohotkey.com/boards/viewtopic.php?t=6347

Das hier habe ich nicht ganz verstanden:
https://autohotkey.com/board/topic/8208 ... directory/

.....und und und, vieles jedoch in VBA, da bin ich leider komplett raus. :crazy:
Alternativ kann mir vllt jemand sagen, wie ich im Code eine Übersetzung von Username zu vollständigem Namen hinterlege?

Ich bin für jede Hilfe dankbar, die mich ein Stück weiter bringt. Vielen Dank im Voraus. :thumbup:
User avatar
jNizM
Posts: 3183
Joined: 30 Sep 2013, 01:33
Contact:

Re: Signatur mit givenname aus Active Directory LDAP

12 Jan 2017, 09:31

z.B.

Code: Select all

GetADSystemInfo()
{
    ADInfo := {}
    try objSysInfo := ComObjCreate("ADSystemInfo")
    try objUser    := ComObjGet("LDAP://" objSysInfo.UserName)
    try ADInfo.FirstName := objUser.FirstName
    try ADInfo.LastName  := objUser.LastName
    return ADInfo
}

GetUser := GetADSystemInfo()

MsgBox % GetUser.LastName ", " GetUser.FirstName
[AHK] v2.0.5 | [WIN] 11 Pro (Version 22H2) | [GitHub] Profile
User avatar
Heloo1982
Posts: 30
Joined: 12 Jan 2017, 07:39

Re: Signatur mit givenname aus Active Directory LDAP

12 Jan 2017, 09:42

Vielen Dank für die schnelle Hilfe, ich schließe dich in mein Nachtgebet mit ein :superhappy:

Fertig sieht es dann so aus und funktioniert :beer:

Code: Select all

:*:ddd::
FormatTime, CurrentDateTime,, dd.MM.yy
Send %CurrentDateTime%{Space}

GetADSystemInfo()
{
    ADInfo := {}
    try objSysInfo := ComObjCreate("ADSystemInfo")
    try objUser    := ComObjGet("LDAP://" objSysInfo.UserName)
    try ADInfo.FirstName := objUser.FirstName
    try ADInfo.LastName  := objUser.LastName
    return ADInfo
}

GetUser := GetADSystemInfo()

Send % GetUser.FirstName " " GetUser.LastName
Return
Frage ist damit gelöst.
User avatar
jNizM
Posts: 3183
Joined: 30 Sep 2013, 01:33
Contact:

Re: Signatur mit givenname aus Active Directory LDAP  Topic is solved

12 Jan 2017, 09:42

So wäre das eleganter:

Code: Select all

; GLOBALE EINSTELLUNGEN =========================================================================================================

global GetUser := GetADSystemInfo()

; HOTKEYS =======================================================================================================================

:*:ddd::
    FormatTime, CurrentDateTime,, dd.MM.yy
    SendInput % CurrentDateTime " " GetUser.FirstName " " GetUser.LastName
return

; FUNKTIONEN ====================================================================================================================

GetADSystemInfo()
{
    ADInfo := {}
    try objSysInfo := ComObjCreate("ADSystemInfo")
    try objUser    := ComObjGet("LDAP://" objSysInfo.UserName)
    try ADInfo.FirstName := objUser.FirstName
    try ADInfo.LastName  := objUser.LastName
    return ADInfo
}

; ===============================================================================================================================
[AHK] v2.0.5 | [WIN] 11 Pro (Version 22H2) | [GitHub] Profile
User avatar
Heloo1982
Posts: 30
Joined: 12 Jan 2017, 07:39

Re: Signatur mit givenname aus Active Directory LDAP

12 Jan 2017, 09:54

Jedenfalls schöner, einfacher zu lesen und ich kann die Variablen in anderen Hotstrings öfters verwenden. Danke nochmals, habe ich in meinem Script entsprechend angepasst.
User avatar
Heloo1982
Posts: 30
Joined: 12 Jan 2017, 07:39

Re: Signatur mit givenname aus Active Directory LDAP

21 Jun 2019, 01:50

Hallo nochmal,
das o.g. Skript arbeitet jetzt seit mehreren Jahren zuverlässig, jetzt kommt es bei einer Kollegin vor, dass kein Ergebnis zurückgeliefert wird.
(hier ein Beispiel von einem Testskript, bei mir und allen anderen Kollegen sind alle Felder gefüllt.)

Code: Select all

; GLOBALE EINSTELLUNGEN =========================================================================================================

global GetUser := GetADSystemInfo()

; HOTKEYS =======================================================================================================================

esc::
    msgbox % "FirstName:`t " GetUser.FirstName " `nLastName`t " GetUser.LastName " `nGivenName:`t " GetUser.GivenName " `nMail:`t`t " GetUser.Mail " `nDepartment:`t " GetUser.Department " `nTelefon:`t`t " GetUser.telephoneNumber " `nSN:`t`t " GetUser.sn " `nUserPrincipalName:" GetUser.UserPrincipalName

return

; FUNKTIONEN ====================================================================================================================

GetADSystemInfo()
{
    ADInfo := {}
    try objSysInfo 				:= ComObjCreate("ADSystemInfo")
    try objUser    				:= ComObjGet("LDAP://" objSysInfo.UserName)
    try ADInfo.FirstName 		:= objUser.FirstName
    try ADInfo.LastName  		:= objUser.LastName
	try ADInfo.GivenName  		:= objUser.GivenName
	try ADInfo.mail  			:= objUser.Mail
	try ADInfo.Department  		:= objUser.Department
	try ADInfo.Name  			:= objUser.Name
	try ADInfo.telephoneNumber  := objUser.telephoneNumber
	try ADInfo.sn  				:= objUser.sn
	try ADInfo.UserPrincipalName   	:= objUser.UserPrincipalName
    return ADInfo
}
Test KW.PNG
Test KW.PNG (2.02 KiB) Viewed 2366 times
Hier brauche ich nochmal Hilfe, ich schätze, dass der Abfrageparameter einfach keinen Match findet. Allerdings bekomme ich es nicht hin, mir den Anzeigen zu lassen. Gibt es ein kleines Script, wo ich mir den "objSysInfo.UserName" anzeigen lassen kann?

Das war mein letzter Versuch, leider kommt kein Ergbnis zurück:

Code: Select all

; GLOBALE EINSTELLUNGEN =========================================================================================================

global GetUser := GetADSystemInfo()

; HOTKEYS =======================================================================================================================

esc::
    msgbox % GetUser.Abfragename

return

; FUNKTIONEN ====================================================================================================================

GetADSystemInfo()
{
    ADInfo := {}
    try objSysInfo 				:= ComObjCreate("ADSystemInfo")
    try objUser    				:= ComObjGet("LDAP://" objSysInfo.UserName)
	try objSysInfo.UserName		:= objUser.Abfragename
    return ADInfo
}
Ich freue mich üebr jede Hilfe, lt. meiner IT liegt kein Fehler im AD vor.

Gruß
Heloo
just me
Posts: 9442
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Signatur mit givenname aus Active Directory LDAP

21 Jun 2019, 02:36

Moin,

entferne einfach mal in der GetADSystemInfo() Funktion die Try Anweisungen. Du bekommst dann im Fehlerfall eine Fehlermeldung. Ich vermute, dass der Fehler in den ComObj... Anweisungen auftritt.
User avatar
Heloo1982
Posts: 30
Joined: 12 Jan 2017, 07:39

Re: Signatur mit givenname aus Active Directory LDAP

21 Jun 2019, 06:52

Moin, das schein schon mal die richtige Spur zu sein.

Code: Select all

; GLOBALE EINSTELLUNGEN =========================================================================================================

global GetUser := GetADSystemInfo()

; HOTKEYS =======================================================================================================================

esc::
    msgbox % "FirstName:`t " GetUser.FirstName " `nLastName`t " GetUser.LastName

return

; FUNKTIONEN ====================================================================================================================

GetADSystemInfo()
{
    ADInfo := {}
	objSysInfo 				:= ComObjCreate("ADSystemInfo")
	objUser    				:= ComObjGet("LDAP://" objSysInfo.UserName)
	ADInfo.FirstName 		:= objUser.FirstName
    ADInfo.LastName  		:= objUser.LastName
    return ADInfo
}
Bei mir wird es wieder richtig ausgeführt:
Test AD2.PNG
Test AD2.PNG (4.96 KiB) Viewed 2327 times
Bei meiner Kollegin kommt die erwartete Fehlermeldung:
Test AD1.PNG
Test AD1.PNG (4.36 KiB) Viewed 2327 times
Wie kann ich das lösen?

Danke und Gruß.
User avatar
Heloo1982
Posts: 30
Joined: 12 Jan 2017, 07:39

Re: Signatur mit givenname aus Active Directory LDAP

24 Jul 2019, 01:44

Hat jetzt ein wenig länger gedauert, aber vielen Dank für den Tipp, der Fehler kam tatsächlich durch Sonderzeichen in den AD-Gruppen.

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 16 guests