Website-Icon Frankys Web

Quick & Dirty: Active Directory Gruppe auf Mitglieder überwachen

Der folgende Fall ist sicherlich nicht ganz alltäglich: Es ging darum eine Active Directory Gruppe auf bestimmte Mitglieder hin zu überwachen. Nur ganz bestimmte Benutzerkonten sollten in dieser Gruppe vorhanden sein, alle zusätzlichen oder entfernten Mitglieder sollten gemeldet werden.

Auf die Schnelle habe ich dazu ein kleines PowerShell Script erstellt, in welchem die Benutzer angegeben werden, die in der Active Directory Gruppe sein sollen. Abweichungen von der konfigurierten Liste, werden per Mail gemeldet. Falls jemand ähnliches gebrauchen kann, hier ist mein Ansatz:

$ADGroup = "MyADGroup"
$AllowedMembers = @(
    'User1'
    'User2'
    'User3'
	)
$SmtpServer = "smtp.frankysweb.local"
$From = "GroupWarning@frankysweb.de"
$To = "frank@frankysweb.de"
$Subject = "Warning"

#import AD-Module
 Import-Module ActiveDirectory
	
#fetch Groupmember from AD
 $ADGroupMembers = Get-ADGroup $ADGroup | Get-ADGroupMember -Recursive | select SamAccountName,name

#compare groupmembers with allowedmembers
 $Difference = Compare-Object -ReferenceObject $ADGroupMembers.SamAccountName -DifferenceObject $AllowedMembers
  if ($Difference)
   {
    #User allowed, but not member of the group
     $NotGroupMember = ($Difference | where {$_.SideIndicator -eq "=>"}).InputObject
  
    #User is member of the group, but not allowed
     $NotAllowedMember = ($Difference | where {$_.SideIndicator -eq "<="}).InputObject
  
    #Build mail
     $Mail = "
			 User is not allowed to be member of the group $ADGroup :
			 $NotAllowedMember

			 User is allowed to be member of the group $ADGroup, but isn't member:
			 $NotGroupMember
			 "
	
	#Send mail
	 Send-MailMessage -SmtpServer $SmtpServer -From $From -To $To -Body $Mail -BodyAsHtml -Subject $Subject
 }

Das Script wurde dann einfach jede Stunde als Aufgabe gestartet. Vielleicht kann ja jemand damit etwas anfangen und es für sich nutzen / abwandeln. Ein vernünftiges Auditing lässt sich damit selbstverständlich nicht ersetzen, hier geht es einfach nur um eine kurze Mail, wenn die Mitglieder einer Gruppe nicht mehr passen. So in etwa sieht dann die Mail aus:

Die mobile Version verlassen