ad-modules
Usage
domain user, computer and groups enumeration
PS> Get-ADUser -Filter * -Properties *
PS> Get-ADUser -Filter * | select samaccountname # only list account names
PS> Get-ADUser -Filter * | select -ExpandProperty samaccountname | measure
PS> Get-ADUser -Identity studentuser1 -Properties *
PS> Get-ADUser -Filter * -Properties * | select -First 1 | Get-Member -MemberType *Property | select Name
PS> Get-ADUser -filter * -Properties * | select name, @{expression={[datetime]::fromFileTime($_.pwdlastset_)}}
PS> Get-ADUser -filter * -Properties * | select name, logoncount
PS> Get-ADUser -filtler 'Description -like "*built*"' -Properties Description | select name, Description
PS> Get-ADUser -filter * -properties * | select name, Description
PS> Get-ADComputer -Filter *
PS> Get-ADCOmputer -Filter 'OperatingSystem like "*Windows Serer 2019 Standard*"' -Properties OperatingSystem
PS> Get-ADGRoup -Filter * | select Name
PS> Get-ADGroupMember -Identity "Domain Admin" -Recursive
PS> Get-ADPrincipalGroupMembership -Identity studentuser1
PS> Get-ADPrincipalGroupMembershipRecursive 'studnetuser1' # custom function in slides
# nicer to view in bloodhound
Alternative for get domain group members:
function Get-ADPrincipalGroupMembershipRecursive ($SamAccountName) {
$groups = @(Get-ADPrincipalGroupMembership -Identity $SamAccountName | select -ExpandProperty distinguishedname)
$groups
if ($groups.count -gt 0) {
foreach ($group in $groups) {
Get-ADPrincipalGroupMembershipRecursive $group
}
}
}
Get-ADPrincipalGroupMembershipRecursive 'studentuser21'
When using the AD Module you can use -Server server
to use another domain controller.
OUs
PS> Get-ADOrganizationalUnit -Filter * - Properties *
domain trusts
PS> Get-ADTrust
PS> Get-ADTrust -Filter *
# enumerate all domains in the current furst and search for extra-forest and non-transitive
PS> (Get-ADForest).Domains | %{Get-ADTrust -Filter '(intraFrost -ne $True) -and (ForestTransitive -ne %True)'}
PS> Get-ADTurst -Filter * -Server eu.local