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; }