protected function getDomainSid($isRoot)
{
if (!$isRoot && $this->domainSid) {
return $this->domainSid;
} elseif ($isRoot && $this->rootDomainSid) {
return $this->rootDomainSid;
}
$baseDn = $isRoot ? 'rootDomainNamingContext' : 'defaultNamingContext';
$domainSid = (new LdapQueryBuilder($this->connection))->setBaseDn($this->connection->getRootDse()->get($baseDn))->select('objectSid')->where(['objectClass' => 'domain'])->andWhere(['objectClass' => 'domainDns'])->setSizeLimit(1)->getLdapQuery()->getSingleScalarResult();
$sid = new SID($domainSid);
if ($isRoot) {
$this->rootDomainSid = $sid;
} else {
$this->domainSid = $sid;
}
return $sid;
}