"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

[PowerShell] get-active-useraccounts

mr.nice. 01.04.2022 - 16:27 3077 0 Thread rating
Posts

mr.nice.

endlich fertig
Avatar
Registered: Jun 2004
Location: Wien
Posts: 6312
Hallo hochgeschätzte AnwenderInnen objektorientierter Skriptsprachen, hier findet ihr ein Skript welches ich gelegentlich im Einsatz habe um zu dokumentieren, wie viele aktive Benutzerkonten es in Abteilung 1, 2 und 3 gibt und wann sie sich zuletzt angemeldet haben. Nachdem Accounts die der Gruppe "ServiceAccounts" angehören in dieser Liste nicht aufscheinen sollen, werden sie herausgefiltert.

Es ist im Prinzip keine große Hexerei, ich setzte das ActiveDirectory Modul voraus, importiere es, erstelle ein leeres Array, lese aus den drei Organisationseinheiten die benötigten Eigenschaften der aktiven Benutzerkonten ein, arbeite diese per for-each Schleife ab, verbinde die Daten und bringe sie in Form, fülle damit das Array, wende den Filter an und gebe die Resultate nach Nachnamen sortiert in eine CSV-Datei aus.

Code:
#Requires –Modules ActiveDirectory
Import-Module ActiveDirectory
$results = @()
$users = Get-ADUser -Properties MemberOf, SurName, GivenName, LastLogonDate -Filter {(Enabled -eq $true)} -SearchBase "OU=Abteilung1,DC=domain,DC=at"
$users += Get-ADUser -Properties MemberOf, SurName, GivenName, LastLogonDate -Filter {(Enabled -eq $true)} -SearchBase "OU=Abteilung2,DC=domain,DC=at"
$users += Get-ADUser -Properties MemberOf, SurName, GivenName, LastLogonDate -Filter {(Enabled -eq $true)} -SearchBase "OU=Abteilung3,DC=domain,DC=at"

foreach ($user in $users) {
    $Groups = $user.MemberOf -join ';'
    $SurName = $user.SurName -join ';'
    $GivenName = $user.GivenName -join ';'
    $LastLogonDate = $user.LastLogonDate -join ';'
    $results += New-Object psObject -Property @{'Groups'= $Groups;'SurName'=$user.SurName;'GivenName'=$user.GivenName;'LastLogonDate'=$user.LastLogonDate;}
    }
$results | Where-Object { $_.Groups -notmatch 'ServiceAccounts' } | select-object SurName, GivenName, LastLogonDate | Sort-Object SurName |  Export-Csv C:\temp\ActiveAccounts.csv -Delimiter ";" -Encoding UTF8 -NoTypeInformation
Bearbeitet von mr.nice. am 01.04.2022, 17:39
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz