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

Вывод данных о пароле Active Directory

17.08.2021, 11:14. Показов 3515. Ответов 13

Студворк — интернет-сервис помощи студентам
Приветики ребят. Подскажите пожалуйста как мне вывести 3 даты: Когда пользователь менял пароль, когда пользователь может изменить пароль, когда будет просрочен пароль. Я нашел эти даты в команде net user roma /domain. Но вывести я могу только 2 даты с помощью команды Get-ADuser -identity roma -Properties msDS-UserPasswordExpiryTimeComputed, PasswordLastSet | Select-object @{Name="ExpirationDate";Expression={[Datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}},Passw ordLastSet.
В эту команду у меня не получается добавить еще и пункт PasswordChangeAble. Подскажите пожалуйста как можно вывести 3 даты.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.08.2021, 11:14
Ответы с готовыми решениями:

Active directory вывод пользователей и другое
Здравствуйте. Недавно устроился на работу. До меня там очень много чего намудрили. Сервера стоят на Windows. Значит вот в чем дело. Все...

Выгрузка данных из Active Directory Windows Server 2008 R2
Добрый день! Затупила система и после перезагрузки не встают драйвера сетевых карты. Карты рабочие (проверял путем накатывания новой ОС)....

Вывод данных из Active Directory
Помогите разобраться, необходимо вывести данные пользователей по всему региону, независимо от числа подразделений: Структура домена: ...

13
 Аватар для alhaos
1929 / 545 / 154
Регистрация: 20.02.2019
Сообщений: 2,663
Записей в блоге: 65
17.08.2021, 11:53
Я точно не знаю, но думаю Get-ADuser возвращает набор свойств который зависит от настроек в домене.

PowerShell
1
Get-ADuser -identity *** | Get-Member -Type Properties
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
TypeName: Microsoft.ActiveDirectory.Management.ADUser
 
Name              MemberType Definition
----              ---------- ----------
DistinguishedName Property   System.String DistinguishedName {get;set;}
Enabled           Property   System.Boolean Enabled {get;set;}
GivenName         Property   System.String GivenName {get;set;}
Name              Property   System.String Name {get;}
ObjectClass       Property   System.String ObjectClass {get;set;}
ObjectGUID        Property   System.Nullable`1[[System.Guid, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyTo...
SamAccountName    Property   System.String SamAccountName {get;set;}
SID               Property   System.Security.Principal.SecurityIdentifier SID {get;set;}
Surname           Property   System.String Surname {get;set;}
UserPrincipalName Property   System.String UserPrincipalName {get;set;}
возможно текстовый вывод net user roma /domain. можно разобрать регулярками
0
0 / 0 / 0
Регистрация: 25.09.2020
Сообщений: 7
17.08.2021, 11:54  [ТС]
А что такое регулярки?)
0
5960 / 4536 / 1094
Регистрация: 29.08.2013
Сообщений: 28,145
Записей в блоге: 3
17.08.2021, 12:19
Цитата Сообщение от snaiper1731 Посмотреть сообщение
регулярки
regexp
0
 Аватар для alhaos
1929 / 545 / 154
Регистрация: 20.02.2019
Сообщений: 2,663
Записей в блоге: 65
17.08.2021, 12:27
запостите вывод, глянем, может что придумаем.
0
0 / 0 / 0
Регистрация: 25.09.2020
Сообщений: 7
17.08.2021, 12:38  [ТС]
Вот так выводит net user roma /domain. Замазал данные чтобы не прилетело по шапке)
Миниатюры
Вывод данных о пароле Active Directory  
0
0 / 0 / 0
Регистрация: 25.09.2020
Сообщений: 7
17.08.2021, 12:42  [ТС]
Get-ADuser -identity roma -Properties msDS-UserPasswordExpiryTimeComputed, PasswordLastSet | Select-object @{Name="ExpirationDate";Expression={[Datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}},Passw ordLastSet.
Миниатюры
Вывод данных о пароле Active Directory  
0
0 / 0 / 0
Регистрация: 25.09.2020
Сообщений: 7
17.08.2021, 12:48  [ТС]
Вот так если добавить PasswordChangeAble. Простите что в 3 сообщения отправляю.
Миниатюры
Вывод данных о пароле Active Directory  
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
17.08.2021, 13:47
PowerShell
1
2
3
4
5
6
7
8
9
$nu = net user 'roma'
 
$ct = $nu|% {
  $Line = $_ -Split '\s{2,}',2
  $Line[0]+','+$Line[1]
}
$csvFile = $ct|ConvertFrom-CSV
 
($csvFile|? 'Имя пользователя' -eq 'Требуется пароль').'roma'
0
 Аватар для alhaos
1929 / 545 / 154
Регистрация: 20.02.2019
Сообщений: 2,663
Записей в блоге: 65
17.08.2021, 13:53
текстом пожалуйста
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
17.08.2021, 14:25
у меня после кода п9
такой вывод
Кликните здесь для просмотра всего текста

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Имя пользователя                   ...
----------------                   -----
Полное имя                         ... ...
Комментарий                        
Комментарий пользователя           
Код страны или региона             000 (Стандартный системный)
Учетная запись активна             Yes
Учетная запись просрочена          Никогда
Последний пароль задан             04.03.2021 23:13:46
Действие пароля завершается        Никогда
Пароль допускает изменение         04.03.2021 23:13:46
Требуется пароль                   Yes
Пользователь может изменить пароль Yes
Разрешенные рабочие станции        Все
Сценарий входа                     
Конфигурация пользователя          
Основной каталог                   
Последний вход                     Никогда
Разрешенные часы входа             Все
Членство в локальных группах       *Администраторы 
                                   *Пользователи 
Членство в глобальных группах      *Отсутствует 
Команда выполнена успешно.

такая картинка
Кликните здесь для просмотра всего текста
0
 Аватар для alhaos
1929 / 545 / 154
Регистрация: 20.02.2019
Сообщений: 2,663
Записей в блоге: 65
17.08.2021, 14:55
С кодировкой в консоли думаю надо будет с бубном поплясать


PowerShell
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
$output = @"
Имя пользователя                   ...
----------------                   -----
Полное имя                         ... ...
Комментарий                        
Комментарий пользователя           
Код страны или региона             000 (Стандартный системный)
Учетная запись активна             Yes
Учетная запись просрочена          Никогда
Последний пароль задан             04.03.2021 23:13:46
Действие пароля завершается        Никогда
Пароль допускает изменение         04.03.2021 23:13:46
Требуется пароль                   Yes
Пользователь может изменить пароль Yes
Разрешенные рабочие станции        Все
Сценарий входа                     
Конфигурация пользователя          
Основной каталог                   
Последний вход                     Никогда
Разрешенные часы входа             Все
Членство в локальных группах       *Администраторы 
                                   *Пользователи 
Членство в глобальных группах      *Отсутствует 
Команда выполнена успешно.
"@
 
$result = @{}
$output.Split("`r`n").ForEach{
    switch -Regex ($_) {
        ("Последний пароль задан\s+(.*)") {
            $stringDt = ($_ -split "\s{3,}")[-1]
            [datetime]$dt = [datetime]::new(0)
            if ([DateTime]::TryParseExact(
                    $stringDt, "dd.MM.yyyy HH:mm:ss",
                    [System.Globalization.CultureInfo]::InvariantCulture,
                    [System.Globalization.DateTimeStyles]::None,
                    [ref]$dt)) 
            {
                $result.Add("lastSet", $dt) 
            }else{
                $result.Add("lastSet", 'x3') 
            }
        }
        ("Действие пароля завершается\s+(.*)") {
            $stringDt = ($_ -split "\s{3,}")[-1]
            [datetime]$dt = [datetime]::new(0)
            Write-Debug $stringDt
            if ([DateTime]::TryParseExact(
                    $stringDt, "dd.MM.yyyy HH:mm:ss",
                    [System.Globalization.CultureInfo]::InvariantCulture,
                    [System.Globalization.DateTimeStyles]::None,
                    [ref]$dt)) 
            {
                $result.Add("passwordExpired", $dt) 
            }else{
                $result.Add("passwordExpired", 'x3') 
            }
        }
        ("Пароль допускает изменение\s+(.*)") {
            $stringDt = ($_ -split "\s{3,}")[-1]
            [datetime]$dt = [datetime]::new(0)
            Write-Debug $stringDt
            if ([DateTime]::TryParseExact(
                    $stringDt, "dd.MM.yyyy HH:mm:ss",
                    [System.Globalization.CultureInfo]::InvariantCulture,
                    [System.Globalization.DateTimeStyles]::None,
                    [ref]$dt)) 
            {
                $result.Add("PasswordCanBeChanged", $dt) 
            }else{
                $result.Add("PasswordCanBeChanged", 'x3') 
            }
        }
    }
}
 
$result
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
17.08.2021, 17:43
Лучший ответ Сообщение было отмечено snaiper1731 как решение

Решение

alhaos, зачем так сложно, я же показал в п9 как можно вывести нужные строки
только у меня локаль русская, пусть ТС запускает код и выводит по примеру выбирая и подставляя строки относительно своей локали. Или уж проще тогда было через временный файл работать чем такого монстра изобретать для вывода 3-х строк из 20-ти.

Добавлено через 13 минут
вот весь код
PowerShell
1
2
3
4
5
6
7
8
9
10
11
$nu = net user 'roma'
 
$ct = $nu|% {
  $Line = $_ -Split '\s{2,}',2
  $Line[0]+','+$Line[1]
}
$csvFile = $ct|ConvertFrom-CSV
 
($csvFile|? 'Имя пользователя' -eq 'Последний пароль задан').'roma'
($csvFile|? 'Имя пользователя' -eq 'Пароль допускает изменение').'roma'
($csvFile|? 'Имя пользователя' -eq 'Учетная запись просрочена').'roma'
0
 Аватар для alhaos
1929 / 545 / 154
Регистрация: 20.02.2019
Сообщений: 2,663
Записей в блоге: 65
17.08.2021, 19:40
alpap, это ради отказоустойчивости
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.08.2021, 19:40
Помогаю со студенческими работами здесь

Вывод информации об Active Directory
Нужно вывести всю информацию о ActiveDirectory, используя WinApi. Прошу помощи!

Получение данных AD (active directory)
Всем привет. В общем есть инфа в AD ФИО, почта, тел должность. можно как то её с помощью Access и VBA отображать для тел справочника фирмы?

Выгрузка данных из Active Directory в базу данных Access
Здравствуйте. Прошу помогите, мне нужно написать модули в Access, для выгрузки данных из Active Directory (инф. о пользователях...

Вывод информации о компьютерах подключенных к доменной сети Active Directory
Здравствуйте. Было получено задание по созданию некоего приложения на C#, которое выводило бы информацию о компьютерах подключенных к...

Проблема с вытяжкой данных из Active Directory
Есть Active Directory (win'2000), IIS 5.0 под 2000 сервером, php - самая последняя для win'32, и есть программка (скачал) такого...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru