Hallo liebe Community!
Ich muss von einem PC die GUID auslesen.
Habe auch schon hier im Forum und bei Google, codeproject usw gesucht,
aber habe nicht wirklich etwas gefunden, was mich der Lösung meines
Problems näher bringt.
Ich habe gelesen, dass die GUID aus der MAC-Adresse der Netzwerkkarte gebildet
wird und woanders dass es nie eine eindeutige GUID gibt.
Dann wieder von einer SID.
Ich hoffe ihr könnt mir ein wenig helfen. Am liebsten wären mir Quellen.
Vllt. hat der ein oder andere einen guten Tipp.
Danke schonmal im Voraus!
Gruß Trekki
Ein Rechner nicht _eine _GUID. GUID sind "zufällig" generierte, eindeutige Werte. Davon kannst du dir auch mehrere generieren lassen. Da die MAC-Adressen von Netzwerkadaptern auch eindeutig sind (bzw. sein sollten) hat man u.a. daraus GUIDs abgeleitet. Das ist aber nur _ein _Verfahren. Was ist z.B. mit Rechnern ohne Netzwerkadapter?
Es gibt eine Klasse GUID in .NET, die generiert die entsprechende Werte. Wie die genau zustande kommen ist im Prinzip völlig Wurscht.
Danke für deine Antwort!
Also im Großen und ganzen geht es darum, dass die Rechner vom Netzwerk booten
sollen und darüber Windows 7 installieren sollen.
Dafür brauchen wir die GUID des Rechners. Die stecken alle in einer Domäne drin.
Hallo Trekki1990,
also ihr wollt eine installation per PXE und TFTP deployen? Hmm habe das schon ein paar mal gemacht aber habe nie ne GUID gebraucht.. Höchstens die MAC Adresse um sie im DHCP einzutragen..^^
Viele Grüße
Kaji
Entschuldigung wegen der ungenauen Antwort ^^
Also im Active Directory stehen ja die ganzen Rechner.
Jeder Rechner hat eine eindeutige "Computer-ID" eben die GUID.
Die muss ich auslesen, an jedem Rechner.
Also kleines Tool mit einer kleinen TextBox wo es auf Knopfdruck erscheint.
So wollt ich es Programmieren.
Habe schon im Netz noch eine Weile rumgesucht.
Habe dieses Codeschnipsel gefunden.
Ist zwar nur für Netzwerkadapter aber, da sehe ich wenigstens,
wie ich an Win32 komme. Es muss doch einen Weg geben,
da jetzt die GUID zu finden. Anstatt DeviceID sowas wie GUID.
Habe mich mit WMI noch nicht so großartig beschäftigt.
private void Form1_Load(object sender, EventArgs e)
{
string query = "SELECT * FROM Win32_NetworkAdapter WHERE NetConnectionID IS NOT null";
ManagementObjectSearcher sucher = new ManagementObjectSearcher(query);
string s = "";
foreach (ManagementObject m in sucher.Get())
{
// NetConnectionID Name der Karte wie in der Systemsteuerung
// DeviceID ID HardwareID wie in der Registry
s += m["NetConnectionID"] +
" ID " + m["DeviceID"] +
" MAC " + m["MACAddress"] + "\n";
}
MessageBox.Show(s);
}
Kaji danke.
Das kommt der Sache schon sehr sehr nah.
Ich gehe grade die Einträge der Win32 Klasse durch....
Ich glaube unter Win32_Baseboard finde ich die Information die ich suche
Gruß Trekki
Edit: OK, war es doch nicht, ich suche weiter.....
Habe jetzt fast alles durch und bin am Verzweifeln.
Muss ich wohl doch die MAC-Adresse eintragen.
Bin jetzt bei bei folgenden Erkenntnissen angelangt:
Mhh jetzt weiß ich genug um eine Systeminformationsabfragetool zu schreiben... ^^
Welch Ironie.