Get-ADGroupMember für Universal Organisations-Admins
Hallo zusammen,
ich lese die AD Gruppe Domain-Admins per Skript aus und schicke es an unser Monitoring Tool, sodass bei ungewolltem hinzufügen eines Benutzerkontos in die Gruppe z.b. bei einem Angriff wir es innerhalb 60sek (Abfrageintervall) mitbekommen.
Jetzt wollte ich es auch noch für die Gruppe Organisations-Admins machen ... diese steht aber auf Universal anstatt Global (Nicht nur Domain Intern sondern mit allen Sub-Domains).
Gibt es hierzu einen Befehl um PowerShell beizubringen um die Gruppe zu finden?
Das ist der bestehende Code zur DA Gruppe:
Danke und VG
ich lese die AD Gruppe Domain-Admins per Skript aus und schicke es an unser Monitoring Tool, sodass bei ungewolltem hinzufügen eines Benutzerkontos in die Gruppe z.b. bei einem Angriff wir es innerhalb 60sek (Abfrageintervall) mitbekommen.
Jetzt wollte ich es auch noch für die Gruppe Organisations-Admins machen ... diese steht aber auf Universal anstatt Global (Nicht nur Domain Intern sondern mit allen Sub-Domains).
Gibt es hierzu einen Befehl um PowerShell beizubringen um die Gruppe zu finden?
Das ist der bestehende Code zur DA Gruppe:
#Anzahl User in Gruppe
$objGroupmembers = Get-ADGroupmember -Identity Domain-Admins
$objGroupmembers.Count
Write-Host $objGroupmembers.Count: Domain-Admins
Danke und VG
Please also mark the comments that contributed to the solution of the article
Content-ID: 73827738596
Url: https://administrator.de/contentid/73827738596
Printed on: October 16, 2024 at 01:10 o'clock
10 Comments
Latest comment
Hi.
Das Überwachen dieser Gruppen ist nahezu nutzlos.
Als Angreifer lege ich mir keinen Domänenadmin an, da dies auffällt.
Als Angreifer handele ich entweder als bereits vorhandener Domänenadmin (Identität übernommen) oder als Systemkonto auf einem der DCs. Oder ich delegiere einem unauffälligen Nutzer alle Rechte im AD/Fileserver.
Das Monitoring ist auf diese Weise überflüssig. Du solltest das Nutzen hoher Rechte überwachen und andere Ereignisse, die du verhindern willst.
Das Überwachen dieser Gruppen ist nahezu nutzlos.
Als Angreifer lege ich mir keinen Domänenadmin an, da dies auffällt.
Als Angreifer handele ich entweder als bereits vorhandener Domänenadmin (Identität übernommen) oder als Systemkonto auf einem der DCs. Oder ich delegiere einem unauffälligen Nutzer alle Rechte im AD/Fileserver.
Das Monitoring ist auf diese Weise überflüssig. Du solltest das Nutzen hoher Rechte überwachen und andere Ereignisse, die du verhindern willst.
$objGroupmembers = Get-ADGroupmember -Identity Domain-Admins
By the way ist das auch fehlerbehaftet, denn das löst eventuell weitere enthaltene Gruppen nicht auf deren Member auf, wenn sich also jemand einer untergeordneten Gruppe hinzufügt die in den Domain-Admins enthalten ist bekommst du das damit nicht mit, wenn dann müsste das so lauten:(Deutsches Spracheinstellung)
$objGroupmembers = Get-ADGroupMember -Identity Domänen-Admins -Recursive
Muss da im Skript eine Zeile noch rein das er auf den gesamtem Forest abzielt?
Nein. Welchen DC fragst du denn? Einen global Catalog? Hast du überhaupt entsprechende Berechtigungen? Mal explizit einen DC angeben?Get-ADGroupMember Organisations-Admins -Server xyz.domain.de -Recursive
Possibly:
https://learn.microsoft.com/en-us/troubleshoot/windows-server/identity/g ...
https://www.reddit.com/r/PowerShell/comments/6pocuu/getadgroupmember_iss ...
Würde da mal per GUI rein schauen was Sache ist und ob es dort noch Leichen oder unaufgelöste SIDs aus Remote-Domains gibt.
Oder die Abfrage mal testweise so machen.
https://learn.microsoft.com/en-us/troubleshoot/windows-server/identity/g ...
https://www.reddit.com/r/PowerShell/comments/6pocuu/getadgroupmember_iss ...
Würde da mal per GUI rein schauen was Sache ist und ob es dort noch Leichen oder unaufgelöste SIDs aus Remote-Domains gibt.
Oder die Abfrage mal testweise so machen.
(Get-ADGroup Organisations-Admins -Properties Members).Members
Zitat von @WaloscheffHellau:
#Anzahl User in Gruppe
Write-Host (Get-ADGroup “Organisations-Admins” -Properties *).Member.Count:Organisations-Admins
Das ist er
#Anzahl User in Gruppe
Write-Host (Get-ADGroup “Organisations-Admins” -Properties *).Member.Count:Organisations-Admins
Das ist er
Aber auch hier gilt genauso wies schon oben gesagt: Wenn darin weitere Gruppen verschachtelt sind wird das so nichts mit einer effektiven Überwachung du bekommst es dann einfach nicht mit.
Auch hier müsstest du rekursiv arbeiten , wie bspw. so
function Get-ADGroupMemberRecursive {
param([string]$principal)
if ((Get-ADObject $principal).objectClass -eq 'group'){
foreach($member in (Get-ADGroup -Identity $principal -Property Members).Members){
Get-ADGroupMemberRecursive $member
}
}else{
$principal
}
}
Get-ADGroupMemberRecursive (Get-ADGroup Organisations-Admins).DistinguishedName