Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
2 / 2 / 0
Регистрация: 18.12.2018
Сообщений: 392

Поиск/отбор записей в ActiveDirectory

18.12.2019, 16:34. Показов 1777. Ответов 8

Студворк — интернет-сервис помощи студентам
Доброго дня!
Есть следующий код:

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        'определеям залогиневшегося юзера и домен
        lblDomain.Text = System.Net.NetworkInformation.IPGlobalProperties.GetIPGlobalProperties().DomainName
        lblUser.Text = "Logon: " & GetCurrent.Name
End Sub
 Try
 
            Dim computerHostName As String = ToolStripTextBox1.Text
            Dim domainName As String = lblDomain.Text
            Dim dirCtx As New DirectoryContext(DirectoryContextType.Domain, domainName)
            Using usersDomain As Domain = Domain.GetDomain(dirCtx)
                Using adsearcher As New DirectorySearcher(usersDomain.GetDirectoryEntry())
 
                    adsearcher.Filter = "(&(objectClass=computer)(department=*" + computerHostName + "*))"
 
                    adsearcher.SearchScope = SearchScope.Subtree
 
                    Dim searchResults As SearchResultCollection = adsearcher.FindAll()
 
                    For Each searchResult As SearchResult In searchResults
 
                        Try
                            dn7 = searchResult.Properties("cn")(0)
                        Catch ex As Exception
                            dn7 = " "
                        End Try
 
                        Try
                            dn8 = searchResult.Properties("department")(0)
                        Catch ex As Exception
                            dn8 = " "
                        End Try
 
                         Try
                            dn9 = searchResult.Properties("whenCreated")(0)
                        Catch ex As Exception
                            dn9 = " "
                        End Try
 
                        DataGridView1.Rows.Add(dn7, dn8, dn9)
                     
                        dn7 = Nothing
                        dn8 = Nothing
dn9 = Nothing
 
                    Next searchResult
 
                End Using
            End Using
        Catch ex As Exception
 
        End Try
он работает и делает отбор по отделу, введенному в ToolStripTextBox1.
Как мне можно переделать код, если скажем в datagridview1 в первом столбце будет список отделов, и при нажатии на кнопку
уже выводилась остальная информация
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.12.2019, 16:34
Ответы с готовыми решениями:

Отбор записей в listview
Доброго дня всем! Как можно найти значение во 2 столбце listview и вывести в label значение 4 столбца найденой строки? более подробно: ...

Отбор записей в combobox
Доброго всем дня! На форме имеется combobox со списком(список заполняется в коде) ComboBox1.Items.Add("720 Format: .mp4") ...

Отбор записей в listview
Всем привет еще раз) Еще один вопрос- не знаю, как реализовать. В Listview1 есть 3 колонки Фирма Размер mizuno 43 ...

8
Лень — мое второе и
 Аватар для Orlangur
3228 / 2416 / 687
Регистрация: 28.11.2014
Сообщений: 3,601
Записей в блоге: 3
18.12.2019, 16:40
_Alf_,
Цитата Сообщение от _Alf_ Посмотреть сообщение
и при нажатии на кнопку
уже выводилась остальная информация
какая?
0
2 / 2 / 0
Регистрация: 18.12.2018
Сообщений: 392
18.12.2019, 16:45  [ТС]
Orlangur1991, в первом столбце занесен руками department
при нажатии на кнопку вывести:
dn7 = searchResult.Properties("cn")(0)
dn9 = searchResult.Properties("whenCreated")(0 )

Добавлено через 2 минуты
то есть каким то макаром надо вот эту переменную Dim computerHostName As String = ToolStripTextBox1.Text поменять на первый столбец datagridview
0
Лень — мое второе и
 Аватар для Orlangur
3228 / 2416 / 687
Регистрация: 28.11.2014
Сообщений: 3,601
Записей в блоге: 3
18.12.2019, 17:00
_Alf_, интересное название переменной для отдела
ну значение из первого столбца можно получить так
VB.NET
1
 DataGridView1.Item(0, rowindex).Value
0
2 / 2 / 0
Регистрация: 18.12.2018
Сообщений: 392
18.12.2019, 17:03  [ТС]
Orlangur1991,
Цитата Сообщение от Orlangur1991 Посмотреть сообщение
_Alf_, интересное название переменной для отдела
код правил. переменную не переименовывал.
так как сделать? Помогите пожалуйста.
Заранее большое спасибо.
0
Лень — мое второе и
 Аватар для Orlangur
3228 / 2416 / 687
Регистрация: 28.11.2014
Сообщений: 3,601
Записей в блоге: 3
18.12.2019, 17:07
_Alf_, так а че сделать то, я так и не понял
есть dgv, в ней заполнен только первый столбец названиями отделов и необходимо остальные столлбцы заполнить данными cn и whenCreated, так?
0
2 / 2 / 0
Регистрация: 18.12.2018
Сообщений: 392
18.12.2019, 17:12  [ТС]
Orlangur1991, да
0
Лень — мое второе и
 Аватар для Orlangur
3228 / 2416 / 687
Регистрация: 28.11.2014
Сообщений: 3,601
Записей в блоге: 3
18.12.2019, 19:58
Лучший ответ Сообщение было отмечено _Alf_ как решение

Решение

_Alf_, ну как вариант создать класс department, что будет содержать поля cn и whenCreated и сделать функцию, что будет получать нужные значения, типа так
VB.NET
1
2
3
4
5
  For i = 0 To DataGridView1.Rows.Count - 1
            Dim result As Department = GetDepartmentData(DataGridView1.Item(0, i).Value)
            DataGridView1.Item(1, i).Value = result.CN
            DataGridView1.Item(2, i).Value = result.WhenCreated
        Next
Сама функция
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Function GetDepartmentData(ByVal Department As String) As Department
        Try
            Dim Result As New Department
            Dim domainName As String = lblDomain.Text
            Dim dirCtx As New DirectoryContext(DirectoryContextType.Domain, domainName)
            Using usersDomain As Domain = Domain.GetDomain(dirCtx)
                Using adsearcher As New DirectorySearcher(usersDomain.GetDirectoryEntry())
                    adsearcher.Filter = "(&(objectClass=computer)(department=*" & Department & "*))"
                    adsearcher.SearchScope = SearchScope.Subtree
                    Dim searchResults As SearchResultCollection = adsearcher.FindAll()
                    For Each searchResult As SearchResult In searchResults
                        Try
                            Result.CN = searchResult.Properties("cn")(0)
                        Catch ex As Exception
                            Result.CN = " "
                        End Try
                        Try
                            Result.WhenCreated = searchResult.Properties("whenCreated")(0)
                        Catch ex As Exception
                            Result.WhenCreated = " "
                        End Try
                    Next searchResult
                End Using
            End Using
            Return Result
        Catch ex As Exception
            Return New Department With {.CN = "", .WhenCreated = ""}
        End Try
    End Function
и сам класс
VB.NET
1
2
3
4
Public Class Department
    Public Property CN As String
    Public Property WhenCreated As String
End Class
Домена под рукой нет, проверить не могу
2
2 / 2 / 0
Регистрация: 18.12.2018
Сообщений: 392
19.12.2019, 09:04  [ТС]
Orlangur1991, спасибо большое) все работает!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.12.2019, 09:04
Помогаю со студенческими работами здесь

Отбор записей из текстового файла в listview
Всем привет! На форме - combobox, listview. ТАк же есть некий текстовый файл с данными формата: Зима|Декабрь|Январь|Февраль ...

Отбор записей из текстового файла в combobx е
Доброго дня, всем привет. Заинтересовался темой: https://www.cyberforum.ru/vb-net/thread2184367.html Решил создать новую, и не задавать...

Progress bar и поиск в ActiveDirectory
Уважаемые форумчане. Прошу помощи, есть форма с button и listbox-ом. По нажатии на кнопку, происходит поиск компьютеров в active directory....

Поиск пользователя в ActiveDirectory по значению параметра
Столкнулся с такой проблемой, не могу найти пользователя по его подразделению (параметр Department) или по расположению (параметр...

Отбор записей BETWEEN
Напишите запрос, который может вывести всех покупателей, чьи города начинаются с буквы, попадающей в диапазон от C до R. SELECT * FROM...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru