Wie finde ich heraus, welche Computer der Domänencontroller in Windows programmatisch ist?

stimmen
89

Ich bin auf der Suche nach einem Weg, um zu bestimmen, was die Name / IP-Adresse des Domänencontroller für eine bestimmte Domäne ist, dass ein Client-Computer angeschlossen ist.

In unserem Unternehmen haben wir viele kleine kleine Netzwerke, die wir zum Testen verwenden und die meisten von ihnen haben ihre eigenen kleinen Domänen. Als Beispiel wird eine der Domänen „TESTLAB“ genannt. Ich habe eine Windows XP-Workstation, die ein Mitglied der TESTLAB Domäne ist und ich versuche, den Namen des Domänencontrollers, um herauszufinden, so dass ich gehen kann und schauen, um zu sehen, welche Benutzer für die Domäne definiert wurden. In unserem Labor gibt es eine Mischung aus Windows Server 2000 und Windows Server 2003 (und in Wirklichkeit wahrscheinlich ein paar NT 4 Server), so wäre es schön, eine Lösung zu finden, die für beide funktionieren würden.

Suchen Sie im Internet, es sieht aus wie es verschiedene Dienstprogramme sind, wie Windows Power Shell oder nltest, aber diese alle verlangen, dass Sie herunterladen und andere Dienstprogramme installieren. Ich habe gehofft, einen Weg zu finden, die Domänencontroller zu finden, ohne zusätzlich etwas installieren zu müssen.

EDIT Wenn ich ein Programm zu finden , den Domänencontroller oder die Benutzer in der aktuellen Domäne, wie würde ich mich über das Tun , das schreiben wollte?

Veröffentlicht am 09/12/2008 um 21:03
quelle vom benutzer
In anderen Sprachen...                            


7 antworten

stimmen
239

Mit der einfachsten Programmiersprache: DOS Batch

echo %LOGONSERVER%
Beantwortet am 09/12/2008 um 21:55
quelle vom benutzer

stimmen
12

In cmd auf Windows, geben Sie den folgenden commande:

nltest /dclist:{domainname}

Es listet alle Domänencontroller in bestimmten Domäne

Beantwortet am 01/10/2015 um 10:16
quelle vom benutzer

stimmen
12

. In C # / .NET 3.5 Sie könnten ein kleines Programm zu tun, schreiben:

using (PrincipalContext context = new PrincipalContext(ContextType.Domain))
{
    string controller = context.ConnectedServer;
    Console.WriteLine( "Domain Controller:" + controller );
} 

Dies listet alle Benutzer in der aktuellen Domäne:

using (PrincipalContext context = new PrincipalContext(ContextType.Domain))
{
    using (UserPrincipal searchPrincipal = new UserPrincipal(context))
    {
       using (PrincipalSearcher searcher = new PrincipalSearcher(searchPrincipal))
       {
           foreach (UserPrincipal principal in searcher.FindAll())
           {
               Console.WriteLine( principal.SamAccountName);
           }
       }
    }
}
Beantwortet am 09/12/2008 um 21:30
quelle vom benutzer

stimmen
7

Von der Kommandozeile abfragen, um die logonserver- env ​​Variable.

C:> SET L

Logonserver = '\' \ DCNAME

Beantwortet am 23/02/2015 um 21:55
quelle vom benutzer

stimmen
6

Führen Sie gpresultan einer Windows - Eingabeaufforderung. Hier finden Sie eine Fülle von Informationen über die aktuelle Domain, aktueller Benutzer, Benutzer und Computer - Sicherheitsgruppen, Gruppenrichtliniennamen, Active Directory Distinguished Namen, erhalten und so weiter.

Beantwortet am 04/01/2013 um 03:46
quelle vom benutzer

stimmen
0

in Powershell: $ env: logonserver-

Beantwortet am 06/03/2018 um 09:30
quelle vom benutzer

stimmen
0

Um die Informationen abzurufen , wenn die DomainControllerexistiert in einer Domäne , in der das Gerät nicht gehört, müssen Sie etwas mehr.

  DirectoryContext domainContext =  new DirectoryContext(DirectoryContextType.Domain, "targetDomainName", "validUserInDomain", "validUserPassword");

  var domain = System.DirectoryServices.ActiveDirectory.Domain.GetDomain(domainContext);
  var controller = domain.FindDomainController();
Beantwortet am 13/11/2012 um 14:30
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more