2012-04-10 11 views
2

ich brauche ein Programm zu schreiben, das Auto auf einem Netzwerk-Windows- und UNIX-Maschinen in C# erkennt dann kopieren Sie einen Ordner von einem Windows-Verzeichnis auf dem Remote-Rechner gemeinsam genutzt und sammeln, wie viele Prozessoren auf der Maschine sind. Ich kenne keine C# -Funktionen, die beim Erkennen von Maschinen und ihren ips helfen würden. Ich habe keinen Zugriff auf Active Directory oder einen zentralen Server für alle Computer. Ich kann ein Perl-Programm erstellen, das auf den Client-Rechnern läuft. (Auch ich bin nicht sicher, wie Windows-Freigaben zugreifen, auf einem Unix-Maschinen) allgemeine Hinweise und Codebeispiele geschätzt würde dankCode automatische Erkennung Maschinen

+0

Dies ist wahrscheinlich das, was Sie suchen http://stackoverflow.com/questions/5116977/c-sharp-how-to-check-the-os-version-at-runtime-eg-windows-or- linux-ohne-usi – MilkyWayJoe

+0

@MilkyWayJoe, die den Mono Rahmen der Installation der Maschinen erfordern würde, die nicht mein Chef glücklich machen würde ... es ist nicht ganz das, was ich für dank bin auf der Suche sowieso :) –

Antwort

0

Sie können Nmap verwenden, um Netzwerkgeräte zu erkennen, es ist clientlos und mit dem Parameter -O teilt es Ihnen mit, ob auf dem Rechner ein Windows-Betriebssystem oder ein Linux-Betriebssystem läuft. Sie können dann SNMP oder WMI verwenden, um die Anzahl der CPUs abzurufen, obwohl dazu Maschinen erforderlich sind, auf denen SNMP oder WMI installiert ist. Bei einem Client, der auf dem Remote-Computer läuft, wäre alles viel einfacher, besonders wenn Sie Dateien kopieren müssen.

+0

dank für die nmap Vorschlag .. .Ich hatte nur eine Klasse in Netzwerken und wir haben diesen Aspekt nicht behandelt ... Ihr Recht, dass Sie einen Client benötigen, um das Teilen und Kopieren einzurichten –

+0

Gern geschehen. – raz3r

1

Sie haben zwei sehr unterschiedliche Fragen.


1. Erkennen, ob eine Maschine ein Windows- oder Unix-Maschine ist.

$^O werden Sie das in Perl.

$ perl -E'say $^O' 
linux 

>perl -E"say $^O" 
MSWin32 

2. Zugriff auf eine Remote-Freigabe von Windows-Datei von einer Maschine Unix.

Nun, es ist eine SMB Dateifreigabe, für den Anfang.

Alles, was Sie wirklich brauchen, ist ein SMB-Client. Ich fand schnell Filesys::SmbClient, ein Perl-Modul, das die Rechnung zu passen scheint.

Verwandte Themen