С Новым годом! Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
0 / 0 / 0
Регистрация: 09.08.2021
Сообщений: 11

PowerShell запрос через Active Directory

09.08.2021, 16:47. Показов 3767. Ответов 7

Студворк — интернет-сервис помощи студентам
Здравствуйте. Как прикрутить к данному запросу в PowerShell через ActiveDirectory

1) Description - описание группы
2)Табельный номер сотрудников
3)Кто владелец группы у GroupName

$OU = "DC=regions,DC=tax,DC=nalog,DC=ru"
>> Import-Module ActiveDirectory
>>
>> Get-ADGroup -Filter * -SearchBase $OU -prop Members | Sort name |% { $group = $_
>>
>> $group.Members |% {
>> New-Object PSCustomObject -Property @{
>> 'GroupName' = $group.Name
>> 'Mamber' = $_
>> }
>> }
>>
>> } | Export-Csv "d:\GroupsMembership.csv" -enc UTF8 -del ';' -NoType
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.08.2021, 16:47
Ответы с готовыми решениями:

Поиск по имени в Powershell GUI в Active Directory
Добрый день уважаемые пользователи форума. Прошу помочь мне в следующем вопросе. Я пытаюсь создать приложение с графическим интерфейсом в...

Soap запрос через powershell
Добрый день, есть задача получать информацию с URl http://calc.motorwert.ru/soapsvc через SOAP запросы. Но у меня никак не выходит....

Выгрузка пользователей из Active Directory
Доброго дня, товарищи! Возникла задача: По списку ФИО получить LoginName. К примеру, список: Результирующая таблица: ...

7
0 / 0 / 0
Регистрация: 09.08.2021
Сообщений: 11
11.08.2021, 09:58  [ТС]
Вот чтобы в пустых полях были нужные значения

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$OU = "OU=,OU=,DC=,DC=,DC=,DC="
Import-Module ActiveDirectory
 
Get-ADGroup -Filter * -SearchBase $OU -prop Members | Sort name |% { $group = $_
 
     $group.Members |% {
        New-Object PSCustomObject -Property @{
            'GroupName' = $group.Name
            'Description' =
            'ManagedBy' = 
            'SamAccountName' = 
            'Users'    = $_
             }  
     }
 
  } | Export-Csv "d:\GroupsMembership.csv" -enc UTF8 -del ';' -NoType
0
2 / 1 / 1
Регистрация: 03.10.2020
Сообщений: 46
12.08.2021, 09:29
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
# выводим пользователей из указанной группы и из нескольких OU...
cls
$oui = @("OU=Users,OU=,DC=,DC=,DC=")  # через запятую можно указать несколько OU
$group='GroupName'    #- сюда пишем имя группы 
$users=(Get-ADGroupMember $group).samaccountname
foreach ($user in $users) {
    foreach ($ou in $oui) {
        Get-ADUser -Filter {samaccountname -eq $user} -SearchBase $ou -Properties name, distinguishedname|
        Select-Object @{n='GroupName';e={$group}},Name,SamAccountName, distinguishedname| Export-Csv "C:\Script\ou_users_group2.csv" -NoTypeInformation -Append -Encoding utf8 -Delimiter ";"
    }
}
Write-Host 'Завершено...' -ForegroundColor Blue
в Properties, в Select-Object - указываем нужные атрибуты
здесь можно указать, если хотим получить только включенные учетки:
Get-ADUser -Filter {(samaccountname -eq $user) -and (Enabled -ne $True)}
как то так...
0
0 / 0 / 0
Регистрация: 09.08.2021
Сообщений: 11
17.08.2021, 11:05  [ТС]
1)Как сюда добавить читаемый вид LastLogonTimeStamp при выгрузке в Excel
2)И как добавить выводимую инфу еще о компах (скажем имя и кто сидит за компом)
3)если можно, то чтобы вся инфа о юзерах выводилась на лист 1, инфа о группах на лист 2, инфа о компах на лист 3

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$csv = 'd:\1.csv'
$OU = "OU=,DC=,DC=,DC=,DC="
Set-Content -Path $csv -Value 'Имя_группы;Описание_группы;Кем_управляется_группа;Имя_пользователя_уникальное(CN);ФИО_пользователя;Табельный_номер;Описание_пользователя;Отдел;Кабинет;Телефон;Email(почта);lastLogonTimeStamp' -Encoding UTF8
 
foreach ($member in (Get-ADUser -SearchBase $OU -Filter * -Properties MemberOf,DistinguishedName,Name,SamAccountName,Description,Department,Office,OfficePhone,EmailAddress,lastLogonTimeStamp | ?{$_.MemberOf}))
{
 
foreach ($ADComputer in ($member.MemberOf | Get-ADComputer -Properties MemberOf,Name,Description,DistinguishedName ))
    {
    Add-Content -Path $csv -Value ($ADComputer.Name, $ADComputer.Description -join ';') -Encoding UTF8
    }
foreach ($ADgroup in ($member.MemberOf  | Get-ADGroup -Properties MemberOf,Name,Description,ManagedBy ))
    {
    Add-Content -Path $csv -Value ($ADgroup.Name,$ADgroup.Description,$ADgroup.ManagedBy,$member.DistinguishedName,$member.Name,$member.SamAccountName,$member.Description,$member.Department,$member.Office,$member.OfficePhone,$member.EmailAddress,$member.lastLogonTimeStamp -join ';') -Encoding UTF8
    }
}  
Write-Host "Запрос отработан" -foregroundcolor Green
0
2 / 1 / 1
Регистрация: 03.10.2020
Сообщений: 46
23.08.2021, 06:50
@{Name="lastLogonTimestamp"; Expression={[DateTime]::FromFileTime($_.lastLogonTimestamp)}} - вот так можно
0
0 / 0 / 0
Регистрация: 09.08.2021
Сообщений: 11
25.08.2021, 09:19  [ТС]
PowerShell
1
Get-ADComputer -SearchBase "OU=,DC=,DC=,DC=,DC=" -Filter * -Properties Name,userAccountControl,managedBy,distinguishedName,operatingSystem,operatingSystemServicePack,Location,Description,lastLogonTimeStamp | Select Name,userAccountControl,managedBy,distinguishedName,operatingSystem,operatingSystemServicePack,Location,Description,lastLogonTimeStamp @{Name="lastLogonTimestamp"; Expression={[DateTime]::FromFileTime($_.lastLogonTimestamp)}} | Export-CSV -Encoding UTF8 "d:\3.csv"
В данном случае выдает ошибку, что не удается найти позиционный параметр, принимающий аргумент System.Collections.Hashtable

Добавлено через 4 минуты
И еще, как все-таки прикрутить к запросу выше помимо выводимых пользователей и групп вывести туда же и компы по всем пользователям?
И как по отдельным листам Excel потом раскидать выводимые данные (через запрос)
0
2 / 1 / 1
Регистрация: 03.10.2020
Сообщений: 46
31.08.2021, 06:43
в select уберите last LogonTimeStamp оно лишнее.
вы его указали уже здесь,@{Name="lastLogonTimestamp"; Expression={[DateTime]::FromFileTime($_.lastLogonTimestamp)}}

Добавлено через 3 минуты
И еще, как все-таки прикрутить к запросу выше помимо выводимых пользователей и групп вывести туда же и компы по всем пользователям?
И как по отдельным листам Excel потом раскидать выводимые данные (через запрос)

Предполагаю Вы имеете ввиду так называемые "привязки" хостов. Logon To.

Userworkstations - атрибут отвечает за это. Некоторые пишут LogonWorkstations.
Если конечно эти поля атрибутов у вас не пустые.

P.S. - operatin gSystem, исправьте
0
0 / 0 / 0
Регистрация: 09.08.2021
Сообщений: 11
31.08.2021, 10:56  [ТС]
Попробовал добавить третий цикл foreach, ошибок не выдает, но ничего и не выгружает в файл...

Добавлено через 12 минут
Вот тут я добавил третий цикл Foreach, чтобы в одном запросе выводил сразу группы, юзеров и компы (нужные атрибуты потом допишу), раскидав все значения по полям Excel, что и требуется. Но с третьим циклом Foreach проблема, не могу понять как его докрутить, чтобы весь запрос выводился правильно.

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$csv = 'd:\1.csv'
$OU = "OU=,DC=,DC=,DC=,DC="
Set-Content -Path $csv -Value 'Имя_компа;описание_компа;кем_управляется_комп;имя_пользователя;описание_пользователя;кабинет' -Encoding UTF8
foreach ($member in (Get-ADGroup -SearchBase $OU -Filter * -Properties MemberOf,Name,Description | ?{$_.MemberOf}))
{
    foreach ($ADuser in ($member.MemberOf | Get-ADUser -Filter * -Properties MemberOf,Name,Description ))
    {
        {
        Add-Content -Path $csv -Value ($member.Name,$member.Description,$ADuser.Name,$ADuser.Description -join ';') -Encoding Default
        }
    }
    foreach ($ADcomputer in ($member.MemberOf | Get-ADComputer -Filter * -Properties MemberOf,Name,Description ))
    {
        {
        Add-Content -Path $csv -Value ($member.Name,$member.Description,$ADcomputer.Name -join ';') -Encoding Default
        }
    }
}
Write-Host "Запрос отработан" -foregroundcolor Green
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.08.2021, 10:56
Помогаю со студенческими работами здесь

Поиск менеджера сотрудника в Active Directory
Добрый вечер, В прошлый раз очень выручили, и вновь столкнулся с проблемой. Задача следующая. В каталоге есть набор пользователей, у...

Добавление пользователя в группу в Active Directory
Привет всем. Пишу скрипт привязки пользователей к группам в active directory. основные куски кода: $server_group =corp.tst.ru ...

Получение списка пользователей из Active Directory
Здравствуйте! Помогите, пожалуйста, написать скрипт на PowerShell который из AD-групп, в именах которых присутствует "Citrix",...

Удаление перевода строки в атрибуте Active Directory
Добрый день! Помогите пожалуйста решить такую проблему. Выгружаю данные по группам списка пользователей и в атрибуте info ($ADgroup.info) с...

LDAP запрос к active directory
Добрый день! У меня есть запрос к AD, что бы получить все учетки Select givenName,sn,mail,samaccountname,DisplayName,title from...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru