Bonjour FG,
Vous pouvez essayer quelque chose du genre :
'============================ > Option Explicit
' Maximum username length
Private Const UNLEN = 256
Private Declare Function GetUserName _
Lib "advapi32.dll" _
Alias "GetUserNameA" _
(ByVal lpBuffer As String, _
nSize As Long) As Long
Private Sub Command1_Click()
Dim l_lSize As Long
Dim l_lReturnCode As Long
Dim l_sUserName As String
l_sUserName = ""
l_lSize = UNLEN + 1
l_sUserName = String$(l_lSize, _
0)
l_lReturnCode = GetUserName(l_sUserName, _
l_lSize)
If (l_lReturnCode <> 0) Then
l_sUserName = Left$(l_sUserName, _
InStr(l_sUserName, vbNullChar) - 1)
MsgBox l_sUserName
End If
End Sub
'============================ >
Cordialement
____________________________
Fabrice MALAINGRE
Architecte Logiciel - Chef de Projet
THEORIS - www.theoris.fr
Bonjour FG,
Vous pouvez essayer quelque chose du genre :
'============================ > Option Explicit
' Maximum username length
Private Const UNLEN = 256
Private Declare Function GetUserName _
Lib "advapi32.dll" _
Alias "GetUserNameA" _
(ByVal lpBuffer As String, _
nSize As Long) As Long
Private Sub Command1_Click()
Dim l_lSize As Long
Dim l_lReturnCode As Long
Dim l_sUserName As String
l_sUserName = ""
l_lSize = UNLEN + 1
l_sUserName = String$(l_lSize, _
0)
l_lReturnCode = GetUserName(l_sUserName, _
l_lSize)
If (l_lReturnCode <> 0) Then
l_sUserName = Left$(l_sUserName, _
InStr(l_sUserName, vbNullChar) - 1)
MsgBox l_sUserName
End If
End Sub
'============================ >
Cordialement
____________________________
Fabrice MALAINGRE
Architecte Logiciel - Chef de Projet
THEORIS - www.theoris.fr
Bonjour FG,
Vous pouvez essayer quelque chose du genre :
'============================ > Option Explicit
' Maximum username length
Private Const UNLEN = 256
Private Declare Function GetUserName _
Lib "advapi32.dll" _
Alias "GetUserNameA" _
(ByVal lpBuffer As String, _
nSize As Long) As Long
Private Sub Command1_Click()
Dim l_lSize As Long
Dim l_lReturnCode As Long
Dim l_sUserName As String
l_sUserName = ""
l_lSize = UNLEN + 1
l_sUserName = String$(l_lSize, _
0)
l_lReturnCode = GetUserName(l_sUserName, _
l_lSize)
If (l_lReturnCode <> 0) Then
l_sUserName = Left$(l_sUserName, _
InStr(l_sUserName, vbNullChar) - 1)
MsgBox l_sUserName
End If
End Sub
'============================ >
Cordialement
____________________________
Fabrice MALAINGRE
Architecte Logiciel - Chef de Projet
THEORIS - www.theoris.fr
> En fait je l'ai déjà essayé mais GetUserName
me renvoie le login NT et non pas le sID....
Du style on créé un utilisateur 'AB' qui a un ID 1.
si on supprime l'utilisateur 'AB' et qu'un autre utilisateur est créé avec
le meme code 'AB' (donc avec un ID:2), l'ID est forcément différent..
C'est cet unique ID que je recherche......
> En fait je l'ai déjà essayé mais GetUserName
me renvoie le login NT et non pas le sID....
Du style on créé un utilisateur 'AB' qui a un ID 1.
si on supprime l'utilisateur 'AB' et qu'un autre utilisateur est créé avec
le meme code 'AB' (donc avec un ID:2), l'ID est forcément différent..
C'est cet unique ID que je recherche......
> En fait je l'ai déjà essayé mais GetUserName
me renvoie le login NT et non pas le sID....
Du style on créé un utilisateur 'AB' qui a un ID 1.
si on supprime l'utilisateur 'AB' et qu'un autre utilisateur est créé avec
le meme code 'AB' (donc avec un ID:2), l'ID est forcément différent..
C'est cet unique ID que je recherche......
> En fait je l'ai déjà essayé mais GetUserName
> me renvoie le login NT et non pas le sID....
> Du style on créé un utilisateur 'AB' qui a un ID 1.
> si on supprime l'utilisateur 'AB' et qu'un autre utilisateur est créé
> le meme code 'AB' (donc avec un ID:2), l'ID est forcément différent..
> C'est cet unique ID que je recherche......
Au temps pour moi !!!!
Il y avait un peu plus de code à faire :-)
'============================================= > Option Explicit
' Maximum username length
Private Const UNLEN = 256
Private Declare Function GetUserName _
Lib "advapi32.dll" _
Alias "GetUserNameA" _
(ByVal lpBuffer As String, _
nSize As Long) As Long
Private Declare Function LookupAccountName _
Lib "advapi32.dll" _
Alias "LookupAccountNameA" _
(ByVal lpSystemName As String, _
ByVal lpAccountName As String, _
Sid As Byte, _
cbSid As Long, _
ByVal DomainName As String, _
cbDomainName As Long, _
peUse As Long) As Long
Private Sub Command1_Click()
Dim l_lSize As Long
Dim l_lReturnCode As Long
Dim l_sUserName As String
Dim l_sDomain As String
Dim l_sUserSID As String
l_sUserName = ""
l_lSize = UNLEN + 1
l_sUserName = String$(l_lSize, _
0)
l_lReturnCode = GetUserName(l_sUserName, _
l_lSize)
If (l_lReturnCode <> 0) Then
l_sUserName = Left$(l_sUserName, _
InStr(l_sUserName, vbNullChar) - 1)
l_sDomain = ""
l_sUserSID = GetSID(l_sUserName, l_sDomain)
MsgBox l_sUserName & " has SID = " & l_sUserSID & " in domain " &
l_sDomain
End If
End Sub
Public Function GetSID(ByRef p_sUserName As String, _
ByRef p_sDomainName As String) As String
Dim l_sSystemName As String
Dim l_sReturnValue As String
Dim l_lReturnCode As Long
Dim l_SidLength As Long
Dim l_lDomainNameLength As Long
Dim l_lSidType As Long
Dim l_pbSID() As Byte
Dim currentSidIndex As Long
l_sReturnValue = ""
l_sSystemName = vbNullString
p_sDomainName = vbNullString
l_lDomainNameLength = 0
l_lReturnCode = LookupAccountName(l_sSystemName, _
p_sUserName, _
0&, _
l_SidLength, _
p_sDomainName, _
l_lDomainNameLength, _
l_lSidType)
If ((l_lReturnCode = 0) And (l_SidLength > 0)) Then
p_sDomainName = Space$(l_lDomainNameLength)
ReDim l_pbSID(0 To l_SidLength - 1)
l_lReturnCode = LookupAccountName(l_sSystemName, _
p_sUserName, _
l_pbSID(0), _
l_SidLength, _
p_sDomainName, _
l_lDomainNameLength, _
l_lSidType)
If (l_lReturnCode > 0) Then
For currentSidIndex = 1 To l_SidLength
l_sReturnValue = l_sReturnValue & l_pbSID(currentSidIndex - 1)
Next currentSidIndex
If (l_lDomainNameLength > 0) Then
p_sDomainName = Left$(p_sDomainName, l_lDomainNameLength)
End If
End If
End If
GetSID = l_sReturnValue
End Function
'============================================= >
Cordialement
____________________________
Fabrice MALAINGRE
Architecte Logiciel - Chef de Projet
THEORIS - www.theoris.fr
> En fait je l'ai déjà essayé mais GetUserName
> me renvoie le login NT et non pas le sID....
> Du style on créé un utilisateur 'AB' qui a un ID 1.
> si on supprime l'utilisateur 'AB' et qu'un autre utilisateur est créé
> le meme code 'AB' (donc avec un ID:2), l'ID est forcément différent..
> C'est cet unique ID que je recherche......
Au temps pour moi !!!!
Il y avait un peu plus de code à faire :-)
'============================================= > Option Explicit
' Maximum username length
Private Const UNLEN = 256
Private Declare Function GetUserName _
Lib "advapi32.dll" _
Alias "GetUserNameA" _
(ByVal lpBuffer As String, _
nSize As Long) As Long
Private Declare Function LookupAccountName _
Lib "advapi32.dll" _
Alias "LookupAccountNameA" _
(ByVal lpSystemName As String, _
ByVal lpAccountName As String, _
Sid As Byte, _
cbSid As Long, _
ByVal DomainName As String, _
cbDomainName As Long, _
peUse As Long) As Long
Private Sub Command1_Click()
Dim l_lSize As Long
Dim l_lReturnCode As Long
Dim l_sUserName As String
Dim l_sDomain As String
Dim l_sUserSID As String
l_sUserName = ""
l_lSize = UNLEN + 1
l_sUserName = String$(l_lSize, _
0)
l_lReturnCode = GetUserName(l_sUserName, _
l_lSize)
If (l_lReturnCode <> 0) Then
l_sUserName = Left$(l_sUserName, _
InStr(l_sUserName, vbNullChar) - 1)
l_sDomain = ""
l_sUserSID = GetSID(l_sUserName, l_sDomain)
MsgBox l_sUserName & " has SID = " & l_sUserSID & " in domain " &
l_sDomain
End If
End Sub
Public Function GetSID(ByRef p_sUserName As String, _
ByRef p_sDomainName As String) As String
Dim l_sSystemName As String
Dim l_sReturnValue As String
Dim l_lReturnCode As Long
Dim l_SidLength As Long
Dim l_lDomainNameLength As Long
Dim l_lSidType As Long
Dim l_pbSID() As Byte
Dim currentSidIndex As Long
l_sReturnValue = ""
l_sSystemName = vbNullString
p_sDomainName = vbNullString
l_lDomainNameLength = 0
l_lReturnCode = LookupAccountName(l_sSystemName, _
p_sUserName, _
0&, _
l_SidLength, _
p_sDomainName, _
l_lDomainNameLength, _
l_lSidType)
If ((l_lReturnCode = 0) And (l_SidLength > 0)) Then
p_sDomainName = Space$(l_lDomainNameLength)
ReDim l_pbSID(0 To l_SidLength - 1)
l_lReturnCode = LookupAccountName(l_sSystemName, _
p_sUserName, _
l_pbSID(0), _
l_SidLength, _
p_sDomainName, _
l_lDomainNameLength, _
l_lSidType)
If (l_lReturnCode > 0) Then
For currentSidIndex = 1 To l_SidLength
l_sReturnValue = l_sReturnValue & l_pbSID(currentSidIndex - 1)
Next currentSidIndex
If (l_lDomainNameLength > 0) Then
p_sDomainName = Left$(p_sDomainName, l_lDomainNameLength)
End If
End If
End If
GetSID = l_sReturnValue
End Function
'============================================= >
Cordialement
____________________________
Fabrice MALAINGRE
Architecte Logiciel - Chef de Projet
THEORIS - www.theoris.fr
> En fait je l'ai déjà essayé mais GetUserName
> me renvoie le login NT et non pas le sID....
> Du style on créé un utilisateur 'AB' qui a un ID 1.
> si on supprime l'utilisateur 'AB' et qu'un autre utilisateur est créé
> le meme code 'AB' (donc avec un ID:2), l'ID est forcément différent..
> C'est cet unique ID que je recherche......
Au temps pour moi !!!!
Il y avait un peu plus de code à faire :-)
'============================================= > Option Explicit
' Maximum username length
Private Const UNLEN = 256
Private Declare Function GetUserName _
Lib "advapi32.dll" _
Alias "GetUserNameA" _
(ByVal lpBuffer As String, _
nSize As Long) As Long
Private Declare Function LookupAccountName _
Lib "advapi32.dll" _
Alias "LookupAccountNameA" _
(ByVal lpSystemName As String, _
ByVal lpAccountName As String, _
Sid As Byte, _
cbSid As Long, _
ByVal DomainName As String, _
cbDomainName As Long, _
peUse As Long) As Long
Private Sub Command1_Click()
Dim l_lSize As Long
Dim l_lReturnCode As Long
Dim l_sUserName As String
Dim l_sDomain As String
Dim l_sUserSID As String
l_sUserName = ""
l_lSize = UNLEN + 1
l_sUserName = String$(l_lSize, _
0)
l_lReturnCode = GetUserName(l_sUserName, _
l_lSize)
If (l_lReturnCode <> 0) Then
l_sUserName = Left$(l_sUserName, _
InStr(l_sUserName, vbNullChar) - 1)
l_sDomain = ""
l_sUserSID = GetSID(l_sUserName, l_sDomain)
MsgBox l_sUserName & " has SID = " & l_sUserSID & " in domain " &
l_sDomain
End If
End Sub
Public Function GetSID(ByRef p_sUserName As String, _
ByRef p_sDomainName As String) As String
Dim l_sSystemName As String
Dim l_sReturnValue As String
Dim l_lReturnCode As Long
Dim l_SidLength As Long
Dim l_lDomainNameLength As Long
Dim l_lSidType As Long
Dim l_pbSID() As Byte
Dim currentSidIndex As Long
l_sReturnValue = ""
l_sSystemName = vbNullString
p_sDomainName = vbNullString
l_lDomainNameLength = 0
l_lReturnCode = LookupAccountName(l_sSystemName, _
p_sUserName, _
0&, _
l_SidLength, _
p_sDomainName, _
l_lDomainNameLength, _
l_lSidType)
If ((l_lReturnCode = 0) And (l_SidLength > 0)) Then
p_sDomainName = Space$(l_lDomainNameLength)
ReDim l_pbSID(0 To l_SidLength - 1)
l_lReturnCode = LookupAccountName(l_sSystemName, _
p_sUserName, _
l_pbSID(0), _
l_SidLength, _
p_sDomainName, _
l_lDomainNameLength, _
l_lSidType)
If (l_lReturnCode > 0) Then
For currentSidIndex = 1 To l_SidLength
l_sReturnValue = l_sReturnValue & l_pbSID(currentSidIndex - 1)
Next currentSidIndex
If (l_lDomainNameLength > 0) Then
p_sDomainName = Left$(p_sDomainName, l_lDomainNameLength)
End If
End If
End If
GetSID = l_sReturnValue
End Function
'============================================= >
Cordialement
____________________________
Fabrice MALAINGRE
Architecte Logiciel - Chef de Projet
THEORIS - www.theoris.fr