Here's a solution using PrincipalContextand ComputerPrincipalin the namespaceSystem.DirectoryServices.AccountManagement
string machineOU;
using (var context = new PrincipalContext(ContextType.Domain))
using (var comp = ComputerPrincipal.FindByIdentity(context, Environment.MachineName))
{
machineOU = String.Join(",", comp.DistinguishedName.Split(',')
.SkipWhile(s => !s.StartsWith("OU="))
.ToArray());
}
Linq , OU=..., ., OU.
System.DirectoryServices.AccountManagement ( ) .
PrincipalContext - , , . (PrincipalType.Machine), Active Directory (PrincipalType.Domain) Active Directory (PrincipalType.ApplicationDirectory).
new PrincipalContext(ContextType.Domain) PrincipalContext, Active Directory.
, FindBy...() ( UserPrincipal, ComputerPrincipal GroupPrincipal), AD, .