public void TestSites()
        {
            using (Forest forest = Forest.GetForest(ActiveDirectoryContext))
            {
                using (ActiveDirectorySite site = forest.Sites[0])
                    using (ActiveDirectorySite s = ActiveDirectorySite.FindByName(ActiveDirectoryContext, site.Name))
                    {
                        Assert.Equal(site.Name, s.Name);
                        Assert.True(s.Domains.Contains(forest.RootDomain));
                        Assert.NotNull(s.AdjacentSites);
                        Assert.NotNull(s.BridgeheadServers);
                        Assert.NotNull(s.PreferredRpcBridgeheadServers);
                        Assert.NotNull(s.PreferredSmtpBridgeheadServers);
                        Assert.NotNull(s.Subnets);

                        Assert.True(s.SiteLinks.Count > 0);
                        using (ActiveDirectorySiteLink adsl = s.SiteLinks[0])
                        {
                            Assert.True(s.SiteLinks.Contains(adsl));
                            Assert.Equal(0, s.SiteLinks.IndexOf(adsl));
                            Assert.True(adsl.Sites.Contains(s));
                            Assert.True(adsl.Cost >= 0);
                            Assert.True(adsl.TransportType == ActiveDirectoryTransportType.Rpc || adsl.TransportType == ActiveDirectoryTransportType.Smtp);
                        }

                        Assert.True(s.Servers.Contains(s.InterSiteTopologyGenerator));

                        using (DirectoryServer ds = s.Servers[0])
                        {
                            Assert.NotNull(ds.InboundConnections);
                            Assert.NotNull(ds.OutboundConnections);
                            Assert.True(ds.IPAddress.IndexOf('.') >= 0);
                            Assert.Equal(s.Name, ds.SiteName);

                            Assert.True(ds.Partitions.Count > 0);
                            string firstPartition = ds.Partitions[0];
                            Assert.True(ds.Partitions.Contains(firstPartition));
                            Assert.Equal(0, ds.Partitions.IndexOf(firstPartition));

                            string [] partitions = new string[0];
                            Assert.Throws <ArgumentException>(() => ds.Partitions.CopyTo(partitions, 0));
                            Assert.Throws <ArgumentNullException>(() => ds.Partitions.CopyTo(null, 0));
                            Assert.Throws <ArgumentOutOfRangeException>(() => ds.Partitions.CopyTo(partitions, -1));

                            partitions = new string[ds.Partitions.Count];
                            ds.Partitions.CopyTo(partitions, 0);
                            Assert.True(partitions.Contains(firstPartition));
                        }
                    }
            }
        }
	public int IndexOf(ActiveDirectorySiteLink link) {}
	public bool Contains(ActiveDirectorySiteLink link) {}
	public void CopyTo(ActiveDirectorySiteLink[] array, int index) {}
	// Methods
	public int Add(ActiveDirectorySiteLink link) {}
	public void AddRange(ActiveDirectorySiteLink[] links) {}
	public void Insert(int index, ActiveDirectorySiteLink link) {}
	public void Remove(ActiveDirectorySiteLink link) {}
Example #9
0
 // Methods
 public int Add(ActiveDirectorySiteLink link)
 {
 }
Example #10
0
 public void Remove(ActiveDirectorySiteLink link)
 {
 }
Example #11
0
 public void Insert(int index, ActiveDirectorySiteLink link)
 {
 }
Example #12
0
 public int IndexOf(ActiveDirectorySiteLink link)
 {
 }
Example #13
0
 public bool Contains(ActiveDirectorySiteLink link)
 {
 }
 public void CopyTo(ActiveDirectorySiteLink[] links, int index)
 {
 }
Example #15
0
        static void Main()
        {
            try
            {
                string targetName = "fabrikam.com";

                string subnetName1 = "154.55.0.0/16";
                string subnetName2 = "154.56.0.0/16";

                string siteName        = "myNewSite";
                string siteLinkName    = "DEFAULTIPSITELINK";
                string defaultSiteName = "Default-First-Site-Name";

                DirectoryContext domainContext = new DirectoryContext(
                    DirectoryContextType.Domain,
                    targetName);

                DirectoryContext forestContext = new DirectoryContext(
                    DirectoryContextType.Forest,
                    targetName);

                Forest forest = Forest.GetForest(forestContext);

                // create new site
                ActiveDirectorySite site = new ActiveDirectorySite(forestContext,
                                                                   siteName);
                site.Options = ActiveDirectorySiteOptions.GroupMembershipCachingEnabled;
                site.Save();
                Console.WriteLine("\nSite \"{0}\" is created successfully", site);

                // create new subnets
                ActiveDirectorySubnet subnet1 = new ActiveDirectorySubnet(forestContext,
                                                                          subnetName1);
                subnet1.Location = "Bellevue";
                subnet1.Site     = site;
                subnet1.Save();
                Console.WriteLine("\nSubnet \"{0}\" is created successfully", subnet1);

                ActiveDirectorySubnet subnet2 = new ActiveDirectorySubnet(forestContext,
                                                                          subnetName2,
                                                                          siteName);
                subnet2.Location = "Redmond";
                subnet2.Save();
                Console.WriteLine("\nSubnet \"{0}\" is created successfully", subnet2);

                Console.WriteLine("\nSite \"{0}\" contains subnet:", site.Name);
                foreach (ActiveDirectorySubnet subnet in site.Subnets)
                {
                    Console.WriteLine("\tSubnet \"{0}\", location is {1}",
                                      subnet.Name,
                                      subnet.Location);
                }

                // add new site to an existing site link
                ActiveDirectorySiteLink link = ActiveDirectorySiteLink.FindByName(
                    forestContext,
                    siteLinkName);

                Console.WriteLine("\nAdd site \"{0}\" to site link \"{1}\"", site.Name,
                                  link.Name);

                link.Sites.Add(site);
                link.Save();
                Console.WriteLine("\nSiteLink \"{0}\" has site: ", link);
                foreach (ActiveDirectorySite s in link.Sites)
                {
                    Console.WriteLine("\tSite \"{0}\"", s);
                }

                // delete site and subnets
                site.Delete();
                subnet1.Delete();
                subnet2.Delete();
                Console.WriteLine("\nSite and subnets are deleted successfully\n");

                // existing site management

                // preferred RPC bridgehead server
                ActiveDirectorySite defaultSite = ActiveDirectorySite.FindByName(
                    forestContext,
                    defaultSiteName);

                Console.WriteLine("\nExisting PreferredRpcBridgeheadServers is:");
                foreach (DirectoryServer s in defaultSite.PreferredRpcBridgeheadServers)
                {
                    Console.WriteLine("\tServer {0}", s.Name);
                }

                Console.WriteLine("\nAdd PreferredRpcBridgeheadServers");
                DomainControllerCollection col = Domain.GetDomain(domainContext).
                                                 FindAllDomainControllers(defaultSiteName);

                foreach (DirectoryServer s in col)
                {
                    defaultSite.PreferredRpcBridgeheadServers.Add(s);
                }

                defaultSite.Save();
                Console.WriteLine("\nAfter updating, PreferredRpcBridgeheadServers is:");
                foreach (DirectoryServer s in defaultSite.PreferredRpcBridgeheadServers)
                {
                    Console.WriteLine("\tServer {0}", s.Name);
                }

                defaultSite.PreferredRpcBridgeheadServers.Clear();
                defaultSite.Save();
                Console.WriteLine("\nAfter Clear call, PreferredRpcBridgeheadServers is:");
                foreach (DirectoryServer s in defaultSite.PreferredRpcBridgeheadServers)
                {
                    Console.WriteLine("\tServer {0}", s.Name);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("\r\nUnexpected exception occured:\r\n\t" +
                                  e.GetType().Name + ":" + e.Message);
            }
        }