按特定顺序将Get-ADUser属性导出到CSV

时间:2019-09-25 19:26:28

标签: powershell hashtable export-to-csv

这里是半新手。我正在尝试使用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

尽管下面的代码相当快地工作(对于1758个用户来说是4秒),但这似乎有点麻烦,我相信还有更有效的方法。我已经研究了哈希表,但即使如此,只要加倍努力即可。

1 个答案:

答案 0 :(得分:1)

如果我们要遵循Lee_Dailey's的建议,则可以将要过滤的属性存储到数组变量中。然后将该变量传递到-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