2016-07-14 2 views
1

У меня есть команды PowerShell, с помощью которых я могу получить свойства для всех пользователей в AD.Как получить свойства AD для списка общих учетных записей Windows?

Import-Module ActiveDirectory 
$attributes = 'SamAccountName', 'Name', 'Mail', 'PasswordLastSet', 'Enabled', 
       'PasswordNeverExpires', 'PasswordExpired' 
Get-ADUser -Filter * -Properties $attributes | select $attributes 

Если я хочу свойства для одного конкретного пользователя, я могу использовать ниже, например, в командной строке:

net user /domain testuser 

Но, как я могу получить свойства AD для заданного списка пользователей?

Итак, пока я попытался ниже, но не смог достичь еще, как она возвращается только для одного пользователя (не знает, как петля):

Import-Module ActiveDirectory 
cd AD: 
$Users = gc "C:\AD\accounts.txt" 
Get-ADUser -Filter '*' -Properties DisplayName, Office | 
    ? { $Users -contains $_.SamAccountName } | 
    select DisplayName, Office | 
    Export-Csv -Path "C:\AD\output\UserProp_14072016.csv" -NoTypeInformation 

Я ищу пароль последнего набора, активную или неактивную , владелец этой учетной записи.

Не могли бы вы помочь?

+0

Что вы имеете в виду под «активным/неактивным» и «хозяина»? –

+0

Active означает, что учетная запись жива (учетная запись пользователя по-прежнему действительна и используется) .. и Owner означает, что это лицо, которое является менеджером этой общей учетной записи. –

+1

Недвижимость, которую вы ищете, это 'Enabled' и' Manager'. Обратите внимание, что 'Диспетчер' является отличительным именем менеджера. Вам необходимо решить эту проблему, если вам нужна учетная запись или отображаемое имя этой учетной записи. –

ответ

2

Техника Я использую для получения произвольного списка пользователей AD является построение фильтра LDAP Ored из текстового списка:

$Users = gc "C:\AD\accounts.txt" 

$User_filter = $Users -replace '^','(SamAccountName=' -replace '$',')' 
$Filter = "(|$User_filter)" 

Get-ADUser -LDAPFilter $Filter -Properties DisplayName,Office 
+0

Привет @mjolinor, как я могу добавить свойства, такие как IsActive и владелец учетной записи в случае общих счетов? –

+0

Вам придется объяснить, что запрос немного лучше. Это не внутренние свойства объекта AD. Вам придется добавить их самостоятельно. Существует несколько способов добавления свойств к объекту, и на этот вопрос, вероятно, будет лучше отвечать как отдельный вопрос. – mjolinor

+0

Спасибо большое @mjolinor! –

1

Вы можете попробовать следующее:

Import-Module ActiveDirectory 
$Users = "Get-Content C:\AD\Accounts.txt" 
Get-ADUser -Filter '*' -Properties DisplayName,Office,PasswordLastSet,LastLogonDate | 
? {$Users -contains $_.SamAccountName} | 
Select DisplayName,Office,PasswordLastSet,LastLogonDate | 
Export-CSV -Path "C:\AD\output\UserProp_14072016.csv" -NoTypeInformation 

Я m не известно о конкретном свойстве «Active», но вы можете добавить «LastLogonDate» к свойствам, чтобы определить, когда последний аккаунт был зарегистрирован.

Кроме того, я не уверен, что вы ищете, когда вы просите «Владельца» учетной записи.

Кстати, для получения списка всех доступных свойств, вы можете сделать следующее:

Get-ADUser <username> -Properties * 

Вы можете быть в состоянии найти то, что вы ищете в списке.

Надеюсь, что это поможет.

+0

Спасибо большое, Роберт, я его проверяю –

1

Получить последний вход в порядке убывания

Import-Module ActiveDirectory 
    Get-ADUser -filter * -properties Displayname, LastLogonDate, SamAccountName, office, PasswordLastSet | select-object Displayname, LastLogonDate,office, SamAccountName, PasswordExpired, PasswordLastSet | Sort LastLogonTime -Descending | Export-csv c:\users.csv -NoTypeInformation 
Смежные вопросы