4.3 - Trusts
Trusts
A trust is a relationship between two domains or forests that allows users from one domain or forest to access resources in another. Trusts can be either automatic (such as parent-child trusts within the same forest) or manually established (such as external or forest trusts).
Trusted Domain Objects (TDOs) are used to represent these trust relationships within a domain.
Trust Direction
One-Way Trust: A unidirectional relationship where users in the trusted domain can access resources in the trusting domain, but not the other way around.
Two-Way Trust: A bidirectional relationship where users from both domains can access resources in each other's domains.
Trust Transitivity
Transitive Trusts: These can be extended to establish trust with additional domains. All default intra-forest trusts (such as tree-root and parent-child) are two-way transitive trusts.
Non-Transitive Trusts: These trusts cannot be extended to other domains. They can either be one-way or two-way. Non-transitive trusts are typically created between two domains in different forests (known as external trusts).
Default (Automatic) Trusts
Parent-Child Trust: Created automatically when a new domain is added under an existing domain in the namespace hierarchy. Example:
dollarcorp.moneycorp.local
is a child domain ofmoneycorp.local
. Always two-way and transitive.Tree-Root Trust: Created automatically when a new domain tree is added to a forest. Always two-way and transitive.
External Trusts
Established between two domains in different forests when the forests themselves do not have a trust relationship.
Can be one-way or two-way.
Always non-transitive.
Forest Trusts
Created between the root domains of two forests.
Cannot be automatically extended to additional forests (i.e., no implicit transitive trust with a third forest).
Can be either one-way or two-way, and are transitive within the connected forests.
Domain Trust Enumeration
To enumerate domain trusts:
# List all domain trusts for the current domain
Get-DomainTrust
# List trusts for a specific domain
Get-DomainTrust -Domain us.dollarcorp.moneycorp.local
# Using Active Directory module
Get-ADTrust
Get-ADTrust -Identity us.dollarcorp.moneycorp.local
Forest Enumeration
To map information about the forest:
# Get details about the current forest
Get-Forest
Get-Forest -Forest eurocorp.local
# Using Active Directory module
Get-ADForest
Get-ADForest -Identity eurocorp.local
Retrieve all domains in the current forest:
Get-ForestDomain
Get-ForestDomain -Forest eurocorp.local
(Get-ADForest).Domains
Retrieve all global catalogs for the forest:
Get-ForestGlobalCatalog
Get-ForestGlobalCatalog -Forest eurocorp.local
Get-ADForest | Select-Object -ExpandProperty GlobalCatalogs
Map forest trust relationships (if any exist):
Get-ForestTrust
Get-ForestTrust -Forest eurocorp.local
# Alternative using Active Directory module
Get-ADTrust -Filter 'msDS-TrustForestTrustInfo -ne "$null"'
Labs
Last updated