farradjs
Messages postés73Date d'inscriptionlundi 17 novembre 2003StatutMembreDernière intervention16 mars 2009 26 janv. 2007 à 15:42
merci pour m avoir repondu, mais la source je connait la source que vous m avez montrer mais comment lister les ordinateurs des autres domaines (sous vb.net)
ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 201626 31 janv. 2007 à 14:37
salut,
quelque chose comme :
Private Const MAX_PREFERRED_LENGTH As Integer = -1
Private Const ERROR_MORE_DATA As Integer = 234
Private Const SV_TYPE_WORKSTATION As Integer = &H1
Private Const NERR_Success As Integer = 0
Private Structure SERVER_INFO_100
Public sv100_platform_id As Integer
<MarshalAs(UnmanagedType.LPWStr)> _
Public sv100_name As String
End Structure
Private Structure WKSTA_USER_INFO_1
<MarshalAs(UnmanagedType.LPWStr)> _
Public wkui1_username As String
<MarshalAs(UnmanagedType.LPWStr)> _
Public wkui1_logon_domain As String
<MarshalAs(UnmanagedType.LPWStr)> _
Public wkui1_oth_domains As String
<MarshalAs(UnmanagedType.LPWStr)> _
Public wkui1_logon_server As String
End Structure
Private Declare Unicode Function NetApiBufferFree Lib "netapi32" ( _
ByVal Buffer As IntPtr _
) As Integer
Private Declare Unicode Function NetServerEnum Lib "netapi32" ( _
ByVal servername As IntPtr, _
ByVal level As Integer, _
ByRef bufptr As IntPtr, _
ByVal prefmaxlen As Integer, _
ByRef entriesread As Integer, _
ByRef totalentries As Integer, _
ByVal servertype As Integer, _
ByVal domain As String, _
ByVal resume_handle As Integer _
) As Integer
Private Function GetWorkstations(byval domain as string) As ArrayList
Dim res As ArrayList = New ArrayList()
Dim buff, ptr As IntPtr
Dim entriesread, totalentries As Integer
Dim i, ret As Integer
Dim entry As SERVER_INFO_100 = Nothing
ret = NetServerEnum(IntPtr.Zero, 100, buff, MAX_PREFERRED_LENGTH, entriesread, totalentries, SV_TYPE_WORKSTATION, domain, 0)
If ret = NERR_Success Then
ptr = buff
For i = 0 To entriesread - 1
Marshal.PtrToStructure(ptr, entry)
res.Add(entry)
ptr = New IntPtr(ptr.ToInt32() + Marshal.SizeOf(entry))
Next
NetApiBufferFree(buff)
End If