|
nbsp; As USER_INFO_0 Dim lngEntry As Long strServerName = StrConv("", vbUnicode) Do lngWin32apiResultCode = NetUserEnum(strServerName, 0, 0, lngBufPtr, lngMaxLen, lngEntriesRead, lngTotalEntries, lngResumeHandle) If (lngWin32apiResultCode = NERR_Success) Or (lngWin32apiResultCode = ERROR_MORE_DATA) Then For lngEntry = 0 To lngEntriesRead - 1 RtlMoveMemory udtUserInfo0, ByVal lngBufPtr + Len(udtUserInfo0) * lngEntry, Len(udtUserInfo0) cboUsers.AddItem PointerToString(udtUserInfo0.usri0_name) Next End If If lngBufPtr <> 0 Then NetApiBufferFree lngBufPtr End If Loop Until lngEntriesRead = lngTotalEntries End Sub列举本地组
Sub EnumLocalGroups(lstLocalGroups As ListBox) Dim lngWin32apiResultCode As Long Dim strServerName As String Dim lngBufPtr As Long Dim lngEntriesRead As Long Dim lngTotalEntries As Long Dim lngResumeHandle As Long Dim udtLGInfo0 As LOCALGROUP_INFO_0 Dim lngEntry As Long lstLocalGroups.Clear strServerName = StrConv("", vbUnicode) Do lngWin32apiResultCode = NetLocalGroupEnum(strServerName, 0, lngBufPtr, MAX_PREFERRED_LENGTH, lngEntriesRead, lngTotalEntries, lngResumeHandle) If (lngWin32apiResultCode = NERR_Success) Or (lngWin32apiResultCode = ERROR_MORE_DATA) Then For lngEntry = 0 To lngEntriesRead - 1 RtlMoveMemory udtLGInfo0, ByVal lngBufPtr + Len(udtLGInfo0) * lngEntry, Len(udtLGInfo0) lstLocalGroups.AddItem PointerToString(udtLGInfo0.lgrpi0_name) Next End If If lngBufPtr <> 0 Then NetApiBufferFree lngBufPtr End If Loop While lngWin32apiResultCode = ERROR_MORE_DATA End Sub 用户所在组
Sub EnumUserLocalGroups(lstUserLocalGroups As ListBox, lstLocalGroups As ListBox, cmbUser As ComboBox) Dim lngWin32apiResultCode As Long Dim strServerName As String Dim strUserName As String Dim lngBufPtr As Long Dim lngEntriesRead As Long Dim lngTotalEntries As Long Dim lngResumeHandle As Long Dim udtLGInfo0 As LOCALGROUP_USER_INFO_0 Dim lngEntry As Long Dim strLocalGroup As String Dim lngListCounter As Long lstUserLocalGroups.Clear strServerName = StrConv("", vbUnicode) strUserName = StrConv(cmbUser.Text, vbUnicode) Do lngWin32apiResultCode = NetUserGetLocalGroups(strServerName, strUserName, 0, LG_INCLUDE_INDIRECT, lngBufPtr, MAX_PREFERRED_LENGTH, lngEntriesRead, lngTotalEntries) If (lngWin32apiResultCode = NERR_Success) Or (lngWin32apiResultCode = ERROR_MORE_DATA) Then For lngEntry = 0 To lngEntriesRead - 1 RtlMoveMemory udtLGInfo0, ByVal lngBufPtr + Len(udtLGInfo0) * lngEntry, Len(udtLGInfo0) strLocalGroup = PointerToString(udtLGInfo0.lgrui0_name) lstUserLocalGroups.AddItem strLocalGroup ''''With lstLocalGroups ''''For lngListCounter = 0 To .ListCount - 1 ''''If strLocalGroup = .List(lngListCounter) Then ''''.RemoveItem (lngListCounter) ''''End If ''''Next ''''End With Next End If If lngBufPtr <> 0 Then NetApiBufferFree lngBufPtr End If Loop Until lngEntriesRead = lngTotalEntries End Sub 删除用户 Function DelUser(ByVal SName As String, ByVal UName As String) As Long Dim UNArray() As Byte, SNArray() As Byte UNArray = UName & vbNullChar SNArray = SName & vbNullChar DelUser = NetUserDel(SNArray(0), UNArray(0)) End Function
上一页 [1] [2] 没有相关教程
|