Использование поля ввода для возврата информации ActiveDirectory

#vb.net #visual-studio-2010 #active-directory

#vb.net #visual-studio-2010 #active-directory

Вопрос:

У меня есть следующий код, чтобы пользователь мог ввести свой домен до запуска программы. Результирующий текстовый файл не выводит пользователей..просто слово Schema…

ПРАВКА 1: обновлено, чтобы включить весь код. Теперь я могу запустить его, и он возвращает текстовый файл, в котором перечислены OU =_USERS OU =_GROUPS OU =_ETC И т.д. И т.п.

 Sub PrintUserNames()
    'Declare Command
    Dim de As New DirectoryEntry()
    'Nameint Place to Write file
    Dim userFile As String = "C:DomainUsers.txt"
    Dim fileExists As Boolean = File.Exists(userFile)

    'Use Input Box for domain entry
    Dim message, Title, defaultValue As String
    Dim myValue As Object
    message = "Enter your Domain Name"
    Title = "Domain Name Entry"
    defaultValue = "Enter Domain Name"
    myValue = InputBox(message, Title, defaultValue)
    'Get List of all users on Domain using WinNT
    'Replacement Command
    Dim ReplaceCommand1 As String = de.Path.Replace("***", myValue) = "WinNT://""***"""
    Using sw As New StreamWriter(File.Open(userFile, FileMode.OpenOrCreate))
        For Each d As DirectoryEntry In de.Children()
            sw.WriteLine(d.Name)
        Next
    End Using
  

Комментарии:

1. Отредактировано для отражения информации об объявлении

Ответ №1:

Вы заменяете свой заполнитель *** перед его (повторным) назначением.

 Dim ReplaceCommand1 As String = de.Path.Replace("***", myValue)
de.Path = "WinNT://***"
  

В зависимости от того, где вы создаете de , вы можете просто удалить строку, содержащую de.Path = "WinNT://***"

Комментарии:

1. Теперь экспортируется текстовый файл с информацией об подразделении? Отредактировано, чтобы включить весь код (после модификации)

2. @harper Какие значения / записи объявлений вы хотите экспортировать? Подразделения, которые вы указываете в своем обновленном сообщении, относятся к обычным рекламным записям верхнего уровня. Ваш For Each цикл перебирает эти дочерние элементы, но нет записей на более глубоком уровне.

3. Просто глядя на экспорт имен пользователей, я просто думаю, что у меня было много дел. Я вернулся к исходной точке и сделал это более простым способом.

Ответ №2:

Спасибо за совет Filburt. Я просто выбросил фактически созданную команду замены и просто использовал ее, как показано ниже.

 Dim de As New DirectoryEntry()
    Dim DomainName As Object
    'Use Input Box for domain entry if desired   
    Dim messageOK, messageCan, Title, defaultValue As String
    messageOK = "Enter Domain and Click OK
    Title = "Domain Name Entry"
    defaultValue = "Enter Domain Name"
    DomainName = InputBox(messageOK, Title, defaultValue)
    de.Path = "WinNT://***".Replace("***", DomainName)