2009-07-21 7 views
1

Wo ich arbeite verwenden wir eine Software namens Dameware, um Computer in unserer Domäne aus der Ferne zu verwalten. Über Dameware können wir eine Liste aller Computer erhalten, die online sind und aktuell mit der Domäne verbunden sind.Abfrage für Computer in einer Domäne, die online sind

Wir sind dabei, eine neue Desktop-Management-Software einzuführen, die uns diese Funktion nicht bietet. Wir müssen den Namen eines Computers kennen, wenn wir uns mit ihm verbinden wollen.

Ich weiß, wie man eine Liste der Computer erhält, die zu der Domäne gehören, aber auch Computer zurückgibt, die online sein können oder nicht. Wie gebe ich eine Liste von Computern zurück, die derzeit verbunden sind (dh sie haben eine aktive Netzwerkverbindung) mit der Domäne? Ich habe darüber nachgedacht, eine Liste von Computern zurückzugeben, die zu der Domäne gehören, und dann jedes einzelne anpingen, aber ich denke, das wäre langsam und eine komplette Verschwendung von Ressourcen.

Ich würde eine .NET-Lösung bevorzugen, aber VB-Skript wird auch funktionieren. Ich könnte am Ende eine GUI dafür erstellen, die ich an Mitglieder unseres IT-Teams verteilen würde.

Antwort

0

Können Sie auf jedem Computer eine Monitor-App installieren, die einen Herzschlag an eine zentrale Datenbank sendet? Dann könnten Sie von der DB abfragen, weitere Statistiken verfolgen, etc., indem Sie eine kleine App auf jedem Computer haben.

Auf diese Weise verteilen Sie die Kosten für die Aufbewahrung des Status von Ihrem Überwachungstool an jede Maschine, erhalten die Möglichkeit, die Historie zu verfolgen (welche Maschinen zu welcher Zeit stillgelegt waren usw.) und vereinfachen das Überwachungs-Tool für eine schnelle Ausführung Abfrage auf der DB statt Ping auf jedem Rechner

Auch hatte ich Probleme mit einigen Maschinen nicht auf Pings reagieren je nach ihren Firewall-Einstellungen (danke Windows XP mit Firewall eingeschaltet).

Schließlich ist das gute daran, dass Sie auch Ihre Benutzeroberfläche ersetzen können, um zu verwenden, was auch immer Sie wollten (C#, Webseite, etc ...).

+0

Ich lese bezweifle das Netzwerk-Admin etwas installieren wollen wird, dass jeder Computer überwachen und an eine zentrale Stelle melden. Ich denke nur an viel Kopf und Kopfschmerz für ihn. Das ist definitiv eine gute Lösung. Danke für die Eingabe. –

0

Wie finden Sie alle Computer mit NetServerEnum?
Wie auch immer, ich schlage vor, dass Sie sich nicht darum kümmern, welche Maschine online ist, da diese sich ändern kann, wenn der Benutzer/die Anwendung versucht, auf dieser Maschine zu agieren.

1

Nun Ping kann tatsächlich funktionieren.

Ich arbeite an Scapy-Bibliothek, die eine Python-Bibliothek ist, um TCP/IP-Pakete zu erstellen. Ich habe ein Subnetz wie 192.168.1.0/24 gepingt. Ich habe viele Arten von Pings ausprobiert - ARP, ICMP, TCP.UDP. Die Ergebnisse waren schockierend -

  • TCP- und UDP-Ping lebenslange nehmen zu Rückkehr aller Antworten
  • ICMP nimmt auch weniger Zeit, aber immer noch Ich hatte für 40s warten oder mehr
  • ARP-Pings waren das beste. Es dauerte nicht mehr als 2-3 Sekunden, um die Antwort zurückzugeben. Sie können dies versuchen und sagen Sie mir , was Ihre Erfahrungen sind

Sie sollten die Ping class of .NET für so tun verwenden.

Sie sollten auch prüfen this question on Stack Overflow


ARP-Bibliothek für .NET

Ab jetzt habe ich keine Ahnung, ob .NET eine Abstraktion von ARP gibt, aber es kann sein, über iphlpapi.dll

verwendet Diese DLL hat eine Funktion namens SendARP eine Signatur mit

int SendARP (int DestIP, int SrcIP, Byte [] pMacAddr, Refuint PhyAddrLen);

Sie sollten this page for more example überprüfen und auch über iphlpapi.dll

Verwandte Themen