I have a script which is I identify my OU and it searches the OU for AD groups for username, name, email address, AD group name and AD group description and exports this to CSV:
$ou = 'distinguishedName of my OU'
Get-ADGroup -Filter * -SearchBase $ou -Properties 'Description' | ForEach-Object {
$group = $_ # just for convenience..
$members = Get-ADGroupMember $_ | Where-Object { $_.objectClass -eq 'user' }
foreach($member in $members) {
$user = Get-ADUser $member -Properties EmailAddress
[pscustomobject]@{
SamAccountName = $user.SamAccountName
Name = $user.Name
EmailAddress = $user.EmailAddress
GroupName = $group.Name
Description = $group.Description
}
}
} | Export-csv C:\Users\Me\Desktop\MyFile.csv -NoTypeInformation
Big thanks to @Theo for this script above!
What I would like to do is to pull off the expiration date of the users also and the managers name of the users.
I have tried to do this via altering script like this :
SamAccountName = $user.SamAccountName
Name = $user.Name
ExpiryDate = $user.accountExpires
EmailAddress = $user.EmailAddress
GroupName = $group.Name
Description = $group.Description
This showed the field as blank in the CSV.
Also tried this:
$user = Get-ADUser $member -Properties EmailAddress, AccountExpirationDate
[pscustomobject]@{
SamAccountName = $user.SamAccountName
Name = $user.Name
AccountExpirationDate = $user.AccountExpirationDate
EmailAddress = $user.EmailAddress
GroupName = $group.Name
Description = $group.Description
I get this error message:
Get-ADUser : A positional parameter cannot be found that accepts argument '
SamAccountName = $user.SamAccountName
Name = $user.Name
EmailAddress = $user.EmailAddress
ExpiryDate = $user.AccountExpirationDate
GroupName = $group.Name
Description = $group.Description
'.
At C:\Users\ME\File.ps1:6 char:17
+ $user = Get-ADUser $member -Properties EmailAddress, AccountExpirationDa ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Get-ADUser], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.ActiveDirectory.Management.Commands.GetADUser
Get-ADUser : A positional parameter cannot be found that accepts argument '
SamAccountName = $user.SamAccountName
Name = $user.Name
EmailAddress = $user.EmailAddress
AccountExpirationDate = $user.AccountExpirationDate
GroupName = $group.Name
Description = $group.Description
I haven't tried to pull off the manager name only but I have seen in Attribute Editor there is an Attribute called "manager" but this contains the name of the manager the OU where his account is located and the domain name. I would like just the managers name please.
Would the manager code be like this:
SamAccountName = $user.SamAccountName
Name = $user.Name
Manager = $user.manager
EmailAddress = $user.EmailAddress
GroupName = $group.Name
Description = $group.Description
How would I go about getting the name only of the manager and not the rest of the details.