Laden...

Abfragen des "send-as"-Rechtes (Outlook Vertreterregelung) im Active Directory

Erstellt von Glindo vor 10 Jahren Letzter Beitrag vor 10 Jahren 1.617 Views
G
Glindo Themenstarter:in
3 Beiträge seit 2014
vor 10 Jahren
Abfragen des "send-as"-Rechtes (Outlook Vertreterregelung) im Active Directory

Hallo,

Ich bin momentan an einem Projekt, wo ich versuchen soll die verschiedenen Gruppen in unserem Active Directory auszulesen. Das Auslesen der Gruppenmitglieder usw. stellt kein Problem dar. Problematisch für mich wird es nun, wenn ich wissen möchte welche Gruppenmitglieder das "Senden als"-Recht haben. Hintergrund ist, dass diese Benutzer farbig markiert werden sollen.
Ich habe die Exchangegruppenobjekte als DirectoryEntry vorliegen. Ich vermute, dass man über die ObjectSecurity-Eigenschaft auf diese Dinge zugreifen kann, jedoch fehlt mir dafür ein Methodik, wie dies zu machen ist.

Kann mir jemand eine Schrittfolge oder Beispielcode geben, wie ich von dem Gruppenobjekt zu dem Benutzername der jeniger komme, die das Recht Send-as haben?

Mit freundlichen Grüßen

Chris

16.842 Beiträge seit 2008
vor 10 Jahren

Ich mach zwar viel mit dem AD aber was ist das SendAs-Recht?

G
Glindo Themenstarter:in
3 Beiträge seit 2014
vor 10 Jahren

Das ist zum Beispiel, dass Max Mustermann (Max.Mastermann@example.de) im Namen des Mailverteilers Alle****@example.de Mails versenden kann.

16.842 Beiträge seit 2008
vor 10 Jahren

Das solltest Du erwähnen weil sonst kein Mensch erraten kann, dass Du Outlook meinst.

Send-As is wohl ein erweitertes Recht der Distribution Group.
Über diese bekommst Du die Security Identifier der Gruppe / der User (=Member), die das dürfen.
Und über die Security Identifier bekommst Du die SamAccountName.

Beachte [Hinweis] Wie poste ich richtig? Punkt 4 zum Thema CodeBeispiele.

1.696 Beiträge seit 2006
vor 10 Jahren

Ich vermute, dass man über die ObjectSecurity-Eigenschaft auf diese Dinge zugreifen kann, jedoch fehlt mir dafür ein Methodik, wie dies zu machen ist.

ja, etwa so (aus der Hand getippt, daher keine Garantie über Lauffähigkeit)


ActiveDirectorySecurity objADS = yourObject.ObjectSecurity;
foreach (ActiveDirectoryAccessRule objAR in objADS.GetAccessRules(true, true, typeof(yourNTAccount)))
{ ... }

Grüße

Ich bin verantwortlich für das, was ich sage, nicht für das, was du verstehst.

**:::

G
Glindo Themenstarter:in
3 Beiträge seit 2014
vor 10 Jahren

Entschuldige bitte Abt.

Ich hab jetzt einmal den Vorschlag von vbprogger aufgenommen und mir folgendes gedacht:

                
List<string> liste = new List<string>();
                if (RadioButton2.Checked)
                {
                    //erg entspricht dem DirectoryEntry
                    ActiveDirectorySecurity ADS1 = erg.ObjectSecurity;
                    byte[] a = (byte[])erg.Properties["objectSid"].Value;
                    SecurityIdentifier SID_erg = new SecurityIdentifier(a, 0);
                    foreach (ActiveDirectoryAccessRule objAR in ADS1.GetAccessRules(true, false, SID_erg.GetType()))
                    {
                        if (objAR.ActiveDirectoryRights.ToString().Contains("ExtendedRight"))
                        {
                            IdentityReference x = objAR.IdentityReference;
                            //SecurityIdentifier b = new SecurityIdentifier(x.Value);
                            DirectoryEntry alle = new DirectoryEntry("LDAP://.......");
                            DirectorySearcher sear = new DirectorySearcher(alle, "(objectSid=" + x.Value + ")");
                            foreach (SearchResult result in sear.FindAll())
                            {
                                liste.Add(result.Properties["name"][0].ToString());
                            }
                        }
                    }
                }

Jedoch stellt sich für mich immer noch die Frage, wie ich weiß, ob dieses ExtendedRight auch dem Senden-Als-Recht entspricht.

16.842 Beiträge seit 2008
vor 10 Jahren