Home > Net >  Powershell script : read and insert value from txt file (on 30 entry)
Powershell script : read and insert value from txt file (on 30 entry)

Time:07-27

Sorry, i'm noob for powershell, but want to automate the following:

Got a powershell script: import-module ActiveDirectory $username = Read-Host 'Please enter Username!' Get-ADPrincipalGroupMembership $username | Get-ADGroup -Properties * | select name, description

When run script i enter the username and it give me a list which group the user is member of.

I had a big 50-100 list user list which obtained with Get-aduser -filter * -properties Name | select-object Name | out-file -filepath .\userlist.txt command and saved to a text file. Is there any way to read every user 1 by 1 and auto fill the username field, then save the output to a text file? when finished with the 1st, script rerun and read the next value.

Is that possible?

Thank you

CodePudding user response:

Here's a few snippets to help you put together what you need.

Get all users from a file containing only usernames

[string[]]$allUsers = Get-Content -Path '.\FileWithUsernames.txt'

Get all active users from AD

[string[]]$allUsers = Get-AdUser -Filter "enabled -eq 'True'" | Select-Object -ExpandProperty 'SAMAccountName'

Loop through users getting the users' group info / doing something with it

foreach ($user in $allUsers) {
    Get-AdUser -Identity $user -Properties 'memberof' | 
        Select-Object -ExpandProperty 'memberof' |
        ForEach-Object {
            ([PSCustomObject]@{ Username=$user; GroupDN = $_})
        } |
        Export-Csv -Path '.\AllActiveUsersGroups.csv' -Append -Delimiter ',' -Encoding 'Utf8' #-NoTypeInformation #only include the -notypeinfomrmation parameter if using PS rather than PWSH)
}
  • Related