Author Posts

May 5, 2016 at 6:31 am

Is it possible to expand a property in a hash table and pass that to a PSObject?

I'm looking to expand the MemberOf property in an AD Audit report (see bottom example).

get-aduser grant.harrington -Properties * | select @{n='memberof';e={$_.memberof -join '; '}} | ft -Wrap
get-aduser grant.harrington -Properties * | select -ExpandProperty MemberOf
        $GetUser = Get-ADUser -SearchBase $MyOU -filter $varName -Properties * #-Credential $DomainCredential
            foreach ($GU in $GetUser)
                {
                
                $ObjAccountReviewResults =[ordered]@{
                    "Full Name"=$GU.CN
                    "First Name"=$GU.GivenName
                    "Initials"=$GU.Initials
                    "Last Name"=$GU.Surname
                    "Display Name"=$GU.DisplayName
                    "Description"=$GU.Description
                    "Office"=$GU.Office
                    "Office Phone"=$GU.OfficePhone
                    "E-Mail Address"=$GU.EmailAddress
                    "REE Web Page"=$GU.wWWHomePage
                    "Login Name"=$GU.UserPrincipalName
                    "SamAccountName"=$GU.SamAccountName
                   "Password Never Expires Setting: " =  $GU.PasswordNeverExpires
                    "Home Drive Letter"=$GU.HomeDrive
                    "Home Directory"=$GU.HomeDirectory
                    "Information"=$GU.info
                    "Title"=$GU.Title
                    "Department (RU)"=$GU.Department
                    "Manager (Supervisor)"=$GU.Manager
                    "Member Of"=$GU.MemberOf
                    "Member Of2" =  -ExpandProperty $GU.MemberOf
                    "Member Of3" = "@{n='$GU.memberof';e={$GU.memberof -join '; '}}"
                    "Distinguished Name" = $GU.DistinguishedName
                    "Account enabled (T/F)"=$GU.Enabled
                    "Created"=$GU.Created
                    "Last Login"=$GU.LastLogonDate
                    "PasswordLastSet"=$GU.PasswordLastSet
                    "Last Bad Password Attempt"=$GU.LastBadPasswordAttempt
                    "Security ID"=$GU.SID
                    "CustomAttribute"=$GU.extensionAttribute1
                    } #end ObjAccountReviewResults

            $ObjAccountReview = New-Object -TypeName PSObject -Property $ObjAccountReviewResults
            Write-Output $ObjAccountReview

May 5, 2016 at 6:39 am

try this line

"Member Of" = $GU.MemberOf -join ';'

May 5, 2016 at 6:41 am

That was easy. 🙂

Thank you, that produced the results I was looking for.