Inhaltsverzeichnis
# Replace these usernames with the ones you want to check
$usernames = "username1","username2","username3"
$usersInfo = foreach ($username in $usernames) {
$user = Get-ADUser -Filter { SamAccountName -eq $username } -Properties LastLogonDate
if ($user -ne $null) {
[PSCustomObject]@{
Username = $username
ExistsInAD = "Yes"
LastLogonDate = $user.LastLogonDate
}
} else {
[PSCustomObject]@{
Username = $username
ExistsInAD = "No"
LastLogonDate = $null
}
}
}
$usersInfo | Sort-Object LastLogonDate | Format-Table -Property Username, ExistsInAD, LastLogonDate -AutoSize
# Importiere das Active Directory Modul
Import-Module ActiveDirectory
# Liste der Benutzer, für die die LastLogon-Informationen abgerufen werden sollen
$userList = @("Benutzer1", "Benutzer2", "Benutzer3") # Hier die gewünschten Benutzernamen eintragen
# Hole alle Domain Controller
$domainControllers = Get-ADDomainController -Filter *
# Erstelle eine Liste für die Ergebnisse
$results = @()
# Schleife über die Liste der Benutzer
foreach ($user in $userList) {
$latestLogon = 0
$userObject = Get-ADUser -Identity $user
# Schleife über alle Domain Controller und hole das LastLogon-Datum
foreach ($dc in $domainControllers) {
$dcLogon = Get-ADUser -Server $dc.HostName -Identity $user -Properties LastLogon
if ($dcLogon.LastLogon -gt $latestLogon) {
$latestLogon = $dcLogon.LastLogon
}
}
# Konvertiere den aktuellsten LastLogon-Wert in ein lesbares Datumsformat
if ($latestLogon -ne 0) {
$lastLogonDate = [DateTime]::FromFileTime($latestLogon)
} else {
$lastLogonDate = "N/A"
}
# Erstelle ein Objekt mit dem Benutzer und dem LastLogon-Datum
$userResult = [PSCustomObject]@{
BenutzerName = $userObject.SamAccountName
LastLogonDatum = $lastLogonDate
}
# Füge das Ergebnis der Liste hinzu
$results += $userResult
}
# Gib die Ergebnisse in einer Tabelle aus
$results | Format-Table -AutoSize
# Optional: Ergebnisse in eine CSV-Datei exportieren
#$results | Export-Csv -Path "C:\Pfad\Zu\LastLogonErgebnisse.csv" -NoTypeInformation
# Ersetze 'GroupName' durch den Namen der Gruppe, deren Mitglieder du anzeigen möchtest
$groupName = 'GroupName'
# Abrufen der Mitglieder der Gruppe
$members = Get-ADGroupMember -Identity $groupName
# Anzeigen der Mitglieder
foreach ($member in $members) {
Write-Host $member.Name
}
# Importieren des Active Directory-Moduls
Import-Module ActiveDirectory
# Geben Sie den Benutzernamen an, für den Sie die Gruppenmitgliedschaft anzeigen möchten
$benutzername = "IhrBenutzername"
# Abrufen des Benutzers und Anzeigen der Gruppenmitgliedschaft
(Get-ADUser -Identity $benutzername -Properties MemberOf).MemberOf | Get-ADGroup | Select-Object Name
Info: Domain Controller ist erforderlich! (Siehe 5.1)
# Import the Active Directory module
Import-Module ActiveDirectory
# Specify the universal group name
$universalGroupName = "YourUniversalGroupName"
# Get members of the universal group
$groupMembers = Get-ADGroupMember -Identity $universalGroupName -Server "YourDomainController" -Recursive
# Display the members
foreach ($member in $groupMembers) {
Write-Host "Member: $($member.Name)"
}
# Variablen für die Benutzer festlegen
$User1 = "Benutzer1" # Ersetze dies durch den SAMAccountName des ersten Benutzers
$User2 = "Benutzer2" # Ersetze dies durch den SAMAccountName des zweiten Benutzers
# Funktion, um Gruppenmitgliedschaften zu holen
function Get-ADUserGroups {
param (
[string]$UserName
)
# Holen der Gruppen, in denen der Benutzer Mitglied ist
$Groups = Get-ADUser -Identity $UserName -Properties MemberOf | Select-Object -ExpandProperty MemberOf
# Rückgabe der Gruppen nur mit dem CN-Teil des DistinguishedName
return $Groups | ForEach-Object { $_ -replace '^CN=([^,]+).+$', '$1' }
}
# Gruppen der beiden Benutzer holen
$GroupsUser1 = Get-ADUserGroups -UserName $User1
$GroupsUser2 = Get-ADUserGroups -UserName $User2
# Gemeinsame Gruppen (Schnittmenge)
$CommonGroups = $GroupsUser1 | Where-Object { $GroupsUser2 -contains $_ }
# Gruppen nur in $User1 (Differenz)
$OnlyInUser1 = $GroupsUser1 | Where-Object { $GroupsUser2 -notcontains $_ }
# Gruppen nur in $User2 (Differenz)
$OnlyInUser2 = $GroupsUser2 | Where-Object { $GroupsUser1 -notcontains $_ }
# Ausgabe formatieren
Write-Output "Gemeinsame Gruppen:"
$CommonGroups | ForEach-Object { Write-Output " - $_" }
Write-Output "`nGruppen nur in ${User1}:"
if ($OnlyInUser1) {
$OnlyInUser1 | ForEach-Object { Write-Output " - $_" }
} else {
Write-Output " Keine"
}
Write-Output "`nGruppen nur in ${User2}:"
if ($OnlyInUser2) {
$OnlyInUser2 | ForEach-Object { Write-Output " - $_" }
} else {
Write-Output " Keine"
}
# AD-Gruppenname
$groupName = "IhrGruppenname"
# Benutzernamen, die zur Gruppe hinzugefügt werden sollen (als Array)
$usernames = @("Benutzer1", "Benutzer2", "Benutzer3")
# AD-Gruppe abrufen
$group = Get-ADGroup -Filter {Name -eq $groupName}
# Überprüfen, ob die Gruppe gefunden wurde
if ($group -eq $null) {
Write-Host "Die Gruppe '$groupName' wurde nicht gefunden."
} else {
# Benutzer zur Gruppe hinzufügen
foreach ($username in $usernames) {
# Benutzer abrufen
$user = Get-ADUser -Filter {SamAccountName -eq $username}
# Überprüfen, ob der Benutzer gefunden wurde
if ($user -eq $null) {
Write-Host "Benutzer '$username' wurde nicht gefunden."
} else {
# Benutzer zur Gruppe hinzufügen
Add-ADGroupMember -Identity $group -Members $user
Write-Host "Benutzer '$username' wurde zur Gruppe '$groupName' hinzugefügt."
}
}
}
# Active Directory-Gruppenname
$groupName = "IhrGruppenname"
# Array von Benutzern, die aus der Gruppe entfernt werden sollen
$usersToRemove = @("Benutzer1", "Benutzer2", "Benutzer3")
# Überprüfen, ob die Gruppe vorhanden ist
if (Get-ADGroup -Filter {Name -eq $groupName}) {
# Benutzer aus der Gruppe entfernen
foreach ($user in $usersToRemove) {
Remove-ADGroupMember -Identity $groupName -Members $user -Confirm:$false
Write-Host "Benutzer $($user) wurde aus der Gruppe $($groupName) entfernt."
}
} else {
Write-Host "Die Gruppe $($groupName) wurde nicht gefunden."
}
# Setzen Sie die Namen der Quell- und Zielgruppen
$quelleGruppenname = "QuellGruppe"
$zielGruppenname = "ZielGruppe"
# Holen Sie die Mitglieder der Quellgruppe
$quelleGruppeMitglieder = Get-ADGroupMember -Identity $quelleGruppenname
# Fügen Sie jedes Mitglied zur Zielgruppe hinzu und listen Sie es auf
foreach ($mitglied in $quelleGruppeMitglieder) {
Add-ADGroupMember -Identity $zielGruppenname -Members $mitglied
Write-Host "Mitglied $($mitglied.Name) wurde zur Zielgruppe hinzugefügt."
}
Write-Host "Mitglieder wurden zur Zielgruppe hinzugefügt."
Dabei kann ausgewählt werden ob "Add" oder "Remove".
# -------------------------------------------
# Einstellungen
# -------------------------------------------
# Benutzer (sAMAccountName)
$username = "Benutzer1"
# AD-Gruppennamen (SamAccountName oder Name) als Array
$groupNames = @("GruppeA", "GruppeB", "GruppeC")
# Aktion: "Add" zum Hinzufügen, "Remove" zum Entfernen
$action = "Add" # oder "Remove"
# -------------------------------------------
# Script
# -------------------------------------------
# AD-Modul laden
if (-not (Get-Module -ListAvailable ActiveDirectory)) {
Write-Host "ActiveDirectory-Modul fehlt (RSAT installieren)." -ForegroundColor Red
return
}
Import-Module ActiveDirectory
# Benutzer abrufen
$user = Get-ADUser -Filter "SamAccountName -eq '$username'" -Properties memberOf
# Überprüfen, ob der Benutzer gefunden wurde
if ($null -eq $user) {
Write-Host "Benutzer '$username' wurde nicht gefunden." -ForegroundColor Red
return
}
foreach ($groupName in $groupNames) {
# AD-Gruppe abrufen (per SamAccountName oder Name)
$group = Get-ADGroup -Filter "SamAccountName -eq '$groupName' -or Name -eq '$groupName'" -ErrorAction SilentlyContinue
if ($null -eq $group) {
Write-Host "Die Gruppe '$groupName' wurde nicht gefunden." -ForegroundColor Yellow
continue
}
# Mitgliedschaft prüfen (direkt)
$isMember = $user.MemberOf -contains $group.DistinguishedName
if ($action -eq "Add") {
if ($isMember) {
Write-Host "Übersprungen: '$username' ist bereits Mitglied in '$($group.SamAccountName)'." -ForegroundColor DarkYellow
} else {
Add-ADGroupMember -Identity $group -Members $user -ErrorAction Stop
Write-Host "Hinzugefügt: '$username' → '$($group.SamAccountName)'." -ForegroundColor Green
}
}
elseif ($action -eq "Remove") {
if (-not $isMember) {
Write-Host "Übersprungen: '$username' ist kein Mitglied in '$($group.SamAccountName)'." -ForegroundColor DarkYellow
} else {
Remove-ADGroupMember -Identity $group -Members $user -Confirm:$false -ErrorAction Stop
Write-Host "Entfernt: '$username' aus '$($group.SamAccountName)'." -ForegroundColor Green
}
}
else {
Write-Host "Unbekannte Aktion: $action (erlaubt: Add/Remove)" -ForegroundColor Red
break
}
}
Info: User müssen in der selben Domain sein!
$cname = Read-Host "Computername"
$msg = Read-Host "Nachricht"
msg * /server:$cname "$msg"
# Import the Active Directory module
Import-Module ActiveDirectory
# Get a list of domain controllers for the current domain
$domainControllers = Get-ADDomainController -Filter *
# Display the domain controllers
foreach ($dc in $domainControllers) {
Write-Host "Domain Controller: $($dc.HostName)"
}