Свойства Get-ADUser в определенном порядке для экспорта в CSV - PullRequest
0 голосов
/ 25 сентября 2019

Полу-новичок здесь.Я пытаюсь использовать Get-ADUser для отображения информации о пользователе в определенном порядке.Похоже, что список свойств Get-ADUser имеет порядок по умолчанию, который не является интуитивно понятным для наших нужд.Пока что у меня есть:

$Users = Get-ADUser -Filter * -SearchBase $treeview.SelectedNode.Name -Properties Name, CN, SamAccountName, DisplayName, sn, GivenName, Initials, `
OtherName, mail, EmailAddress, EmployeeNumber, Company, StreetAddress, POBox, City, State, PostalCode, Country, Department, HomePhone, `
telephoneNumber, OfficePhone, MobilePhone, Fax, info, physicalDeliveryOfficeName, Title, Office, EmployeeID, Description, DistinguishedName, `
CanonicalName, AccountExpirationDate, Created, Enabled, HomeDirectory, HomeDrive, HomePage, LastLogonDate, LockedOut, logonCount, Manager, `
Modified, msNPAllowDialin, ObjectClass, objectSid, PasswordLastSet, UserPrincipalName, whenChanged | 
Select-Object Name, CN, SamAccountName, `
DisplayName, sn, GivenName, Initials, OtherName, mail, EmailAddress, EmployeeNumber, Company, StreetAddress, POBox, City, State, PostalCode, `
Country, Department, HomePhone, telephoneNumber, OfficePhone, MobilePhone, Fax, info, physicalDeliveryOfficeName, Title, Office, EmployeeID, `
Description, DistinguishedName, CanonicalName, AccountExpirationDate, Created, Enabled, HomeDirectory, HomeDrive, HomePage, LastLogonDate, `
LockedOut, logonCount, Manager, Modified, msNPAllowDialin, ObjectClass, objectSid, PasswordLastSet, UserPrincipalName, whenChanged `
| Export-Csv -NoTypeInformation -Path $LogFile

Хотя приведенный ниже код работает довольно быстро (4 секунды для 1758 пользователей), это кажется немного затянуто, и я уверен, что есть более эффективные методы.Я изучил хеш-таблицы, но даже это вдвое больше, чем вдвое больше усилий.

1 Ответ

1 голос
/ 25 сентября 2019

Если мы будем следовать совету Lee_Dailey , вы можете сохранить свойства, которые вы хотите отфильтровать, в переменную массива.Затем передайте эту переменную в параметры -Property / -Properties.

$properties = "DisplayName","sn","GivenName","Initials","OtherName","mail","EmailAddress","EmployeeNumber","Company","StreetAddress","POBox","City","State","PostalCode","Country","Department","HomePhone","telephoneNumber","OfficePhone","MobilePhone","Fax","info","physicalDeliveryOfficeName","Title","Office","EmployeeID","Description","DistinguishedName","CanonicalName","AccountExpirationDate","Created","Enabled","HomeDirectory","HomeDrive","HomePage","LastLogonDate","LockedOut","logonCount","Manager","Modified","msNPAllowDialin","ObjectClass","objectSid","PasswordLastSet","UserPrincipalName","whenChanged"

$Users = Get-ADUser -Filter * -SearchBase $treeview.SelectedNode.Name -Properties $properties |
    Select-Object -Property $properties
...