/// <summary> /// Open an alias by SID. /// </summary> /// <param name="sid">The sid for the alias.</param> /// <param name="desired_access">The desired access for the alias object.</param> /// <param name="throw_on_error">True to throw on error.</param> /// <returns>The SAM alias object.</returns> public NtResult <SamAlias> OpenAlias(Sid sid, SamAliasAccessRights desired_access, bool throw_on_error) { if (sid.SubAuthorities.Count != DomainId.SubAuthorities.Count + 1 || !sid.StartsWith(DomainId)) { return(NtStatus.STATUS_NO_SUCH_DOMAIN.CreateResultFromError <SamAlias>(throw_on_error)); } return(OpenAlias(sid.SubAuthorities.Last(), null, desired_access, throw_on_error)); }