Запросы к Active Directory

Я работаю "сценаристом", что является благословением и проклятием... Мне было поручено создать сценарий:

можно ли создать сценарий для извлечения всех пользователей, имеющих прокси-адрес
то нет xyz.org адрес электронной почты из Active Directory.

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

используя этот:

%SystemRoot%SYSTEM32rundll32.exe dsquery,OpenQueryWindow  

дает мне легкий инструмент поиска, который показывает основы того, что я хочу... единственная проблема в том, что у него нет функции поиска" like "или" contains".
enter image description here

Мне нужен такой же поиск... но с возможностью отфильтровывать прокси-адреса, которые не содержат "xyz.org".

3
задан mich732
23.01.2023 21:08 Количество просмотров материала 2952
Распечатать страницу

4 ответа

ваш вопрос звучит как задание для PowerShell.

Если у вас не установлен PowerShell, возьмите его здесь. Windows 7 и Server 2008 R2 уже установили PowerShell.

скачать команды Quest PowerShell для Active Directory. Это расширение предоставляет удобные команды для написания сценариев всех видов рекламных операций.

теперь для вашего запроса:

Примечание: Вы можете сохранить этот запрос намного проще, но я буду растягиваться это немного для лучшего понимания.

# Get all Users and save it to a variable. 
#-SizeLimit 0 returns ALL users, otherwise only 1000 are returned.
# -IncludedProperties proxyaddresses makes sure the proxyaddresses are included

$allusers = Get-QADUser -SizeLimit 0 -IncludedProperties proxyaddresses

# Filter Users without a xyz.org email address and save them to a variable

$filteredusers = $allusers | where {!($_.proxyaddresses -like "*@xyz.org") -and $_.proxyaddresses}

# Sort and output the list

$filteredusers | sort Displayname | format-table Displayname, proxyaddresses -auto


# Other interesting fieldnames you could use with format-table
# GivenName, sn, mail, SamAccountName and many more
# 
# To get a list of all possible field names use: 
# $filteredusers[0] | format-list *
# This will return all fields of the first user saved in $filteredusers
2
отвечен mich732 2023-01-25 04:56

этот бесплатный инструмент отчетности объявление может помочь, как вы можете создать список для импорта в приложение электронной таблицы для более уточнения-я использую его на работе для управления нашими системами:

информация об объявлении-Active Directory Reporting Tool

гибкий инструмент отчетности Active Directory с более чем 140 встроенных отчетов, а также возможность создавать свои собственные. Благодаря большей гибкости по сравнению с другими инструментами отчетов Active Directory и современному удобному интерфейсу ad Info позволяет легко запрашивать необходимую информацию в домене Active Directory. Используйте один из 140+ запросов, поставляемых вместе с приложением, или используйте конструктор пользовательских запросов для создания собственного запроса на основе выбранных атрибутов.

http://www.cjwdev.co.uk/Software/ADReportingTool/Info.html

1
отвечен Linker3000 2023-01-25 07:13

использование vbscript:

    Set objRoot = GetObject("LDAP://RootDSE") 
    strDNC = objRoot.Get("DefaultNamingContext") 

    Const ADS_SCOPE_SUBTREE = 2

    Set objConnection = CreateObject("ADODB.Connection")
    Set objCommand = CreateObject("ADODB.Command")
    objConnection.Provider = "ADsDSOObject"
    objConnection.Open "Active Directory Provider"
    Set objCommand.ActiveConnection = objConnection

    objCommand.Properties("Page Size") = 1000
    objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE 

    objCommand.CommandText = "SELECT givenNames,sn,telephoneNunmber FROM '" & strDNC & "' WHERE objectCategory='user'" & § " And mail != '*@xyz.org'"
    Set objRecordSet = objCommand.Execute
    strResults = ""
    While Not objRecordSet.EOF
        If strResults = "" Then
            strResults = objRecordSet("givenNames") & "," & objRecordSet("sn") & "," & objRecordSet("telephoneNumber")
        Else
            strResults = strResults & VbCrLf & objRecordSet("givenNames") & "," & objRecordSet("sn") & "," & objRecordSet("telephoneNumber")
        End If
    Wend
    objRecordSet.Close

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFSO.CreateTextFile("Results.csv", True)
    objFile.Write strResults
    objFile.Close

    MsgBox "Finished. See Results.csv"
0
отвечен sanyam jain 2023-01-25 09:30

у меня были хорошие результаты, используя инструмент "AdFind". По крайней мере, в настройках рекламы моей организации "proxyAddresses" возвращаются как один из стандартных атрибутов, а затем могут быть легко вставлены в файл CSV для последующей обработки или просто обрезаны, чтобы узнать что-то, что не соответствует xyz.org.....

adfind -nodn -default -f "(&(name=ljwobker))" name proxyaddresses

возвращает все записи с моим именем (вы можете подстановочный знак это или удалить его для "все", а затем выводит" имя "и" proxyaddresses " атрибуты для этого пользователь. Этот запрос возвращает:

[ljwobker:/home/ljwobker]$ adfind -nodn -default -f "(&(name=ljwobker))" name proxyaddresses

AdFind V01.49.00.00cpp Joe Richards (joe@joeware.net) February 2015

Using server: server.xyz.org:389
Directory: Windows Server 2008 R2
Base DN: DC=xyz,DC=org

>name: ljwobker
>name: ljwobker
>proxyAddresses: x400:C=us;A= ;P=XYZ Org;O=Exchange;S=Wobker;G=Lawrence;
>proxyAddresses: X400:C=us;A= ;P=XYZ Org;O=Exchange;S=Wobker;G=LJ;
>proxyAddresses: SIP:ljwobker@xyz.org
>proxyAddresses: smtp:ljwobker@exch.xyz.org
>proxyAddresses: SMTP:ljwobker@xyz.org

Так если я grep -v вне xyz.org адреса, у меня остались только X400... который, строго говоря, соответствует вашим критериям для "не xyz.org" proxyAddress, но, по всей вероятности, вы также захотите отфильтровать и оставить себе только то, что на самом деле является прокси-адресом из другой организации. (Я предполагаю, что это ваша фактическая цель, но фильтрующая часть должна быть достаточно простой...)

0
отвечен ljwobker 2023-01-25 11:47

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх