Jag har ett litet projekt på gång. Jag tänker modifiera en färdig TFTP server i C# och ändra så att olika datorer får olika filer.
Ni får rätta mig om jag har fel men det är såhär jag tänker mig att det funkar med TFTP och PXE-boot.
En dator som PXE-bootar tar först kontakt med en DHCP och får en ip-adress. Den får sedan reda på vilken server (TFTP) den ska kontakta och vilken fil som den ska ladda ner.
Jag vill att TFTP-servern ska kontakta SQL-Servern (SQL Server 2008), och utifrån datorns mac-adress ge datorn filerna som gäller för just den datorn.
Om det finns enklare sätt att göra detta rakt av i windows så gör jag gärna det istället för att programmera.
Att tänka på är att om det finns en router mellan clienten och tftp servern så kommer inte clientens macadress att synas utan tftp servern ser routerns macadress.
Sedan i första läget så hämtar (vad jag vet) clienten bara en utpekad fil/image/program som sedan körs. Därefter kan det programmet hämta resten via något lämpligt protokoll.
Fundering, det finns netboot pxe som du kan köra ifrån t.ex usb, diskett, hårddisk etc. Det borde du kunna köra via inbyggda tftp-servern. Den pxen kan sedan hämta image ifrån t.ex en webbserver. Gissningsvis kan man kanske skicka med parametrar, t.ex mac-adress, där. Sedan är det upp till scriptet på servern att skicka tillbaka rätt image. Som bonus så kan du knacka i valfritt språk, använda vältestad tftp-server, klara burkar utan inbyggd pxe på nätverkskortet och köra tillförlitligt över routrar :)
Citerar från sidan: "http://${next-server}/boot.php?mac=${net0/mac}", där det som står inom ${ och } är att betrakta som "variabler" som trycks in under körning. Etherboot i sig går att köra på en rad olika sätt, och när det väl körs så kan den göra en rad olika saker :)
Om jag har förstått det helt rätt så Etherboot enbart ett klientprogram och inget på serversidan, utan kan vara precis som i ditt exempel med php-filen som anropades.
Tänkte dock försöka köra ASP.NET då det inte kräver några tredjepartsprogram på serversidan.
Har inte möjlighet till att köra Etherboot från medie på klienterna utan det får laddas in över nätverket.
Vad ska det vara för format på filerna som man skickar ut till klienterna mha PXE? Funkar det med någon sorts image?
Ska försöka sätta upp någon TFTP server nu i Windows 2003, hittade lite inställningar för det under DHCP.
Jepp, etherboot är ett rent klientprogram. Det går i sin tur att modifera det lite om man vill, t.ex. lägga in olika images ifrån början för offline-bootning, sätta upp för access till nätverket via WLAN osv.
ASP.NET gillar jag, knackar själv främst C# (även om jag precis börjat knacka php också), det passar nog bra till det här. Förslagsvis gör du en generic handler (*.ashx) som innehåller bara det mest nödvändiga för att spotta ut saker och ha total kontroll.
Jepp, jag tänkte något i stil med att etherboot skulle laddas via nätverket (om de klarar det, men det antar jag att de gör med tanke på frågeställningen), vilket ger fördelen att du enkelt kan konfigurera om gPXE (dvs. etherboot) utan att behöva uppdatera några klienter. Se http://www.etherboot.org/wiki/pxechaining
Jepp, det som skickas ut ska vara en image. Vad är det för operativsystem det handlar om?
Det är nu till att börja med WindowsXP som ska ut. Blir alltså "Ghosts" som ska skickas ut, som dock har sysprep och sysprep.inf på sig. Kanske går att få Etherboot att kopiera filer över nätverket?
Ah, hm.. Jag tror att den inbyggda i Windows kör så att den skickar ut en image som är kapabel att köra nätverk + sambaprotokollet, sedan mountar den en delad mapp på servern och drar igång ett setupprogram därifrån. Det setupprogrammet sköter sedan själv om att kopiera filer osv, är inte så insatt i detaljerna där..
Ska det vara olika sysprep.inf för olika datorer? Eller helt olika images?
>>Ska det vara olika sysprep.inf för olika datorer? Eller helt olika images?
Precis, tanken är att alla datorer som ska ha Windows XP ska köras från samma image, men att sysprep.inf ska vara olika för olika datorer, så att man kan få olika datornamn, och olika drivisar.
De idéer jag är inne på just nu är:
a) Lyckas "skapa" en "diskettstation" eller en "cd-läsare" som levererar valfri fil, injectar sig själv i bios innan start av windowsinstallationen. Inga parameterar behöver skickas till windows installationsprogram. Krånglig, om en möjlig, väg att gå..?
b) Se om det går att boota installationen ifrån ms-dos. Skapa en nätverksenablad boot-diskett/cd för ms-dos. Titta på http://nu2.nu/bootcd/#cdromsi Funderar på om du kan modifiera lite och få en bootbar image som du kan skicka ut, och att du sedan lägger över uppgiften att få mac-adress=>sysprep.inf på dos: dos kan sedan mounta rätt utdelade mappar med net use och dra igång installationsprogrammet för windows med rätt parametrar..?
Jag har ett separat program som ska generera inf-filerna. Jag behöver bara trycka ut de till rätt datorer.
1. Datorn startas
2. Datorn pxe-bootar.
3. Etherboot laddas in.
4. Etherboot laddar hem lite filer som ska kopiera över ghosten, samt hämtar sysprep.inf som matchar den datorn.
Menade du i ditt tidigare inlägg att man kan göra en asp.net sida som returnerar filer som matchar den datorn.
Så om Etherboot försöker gå in på index.aspx?mac={macadress} så kollar index.aspx efter en post i databasen över vart konfigurationsfilerna för {macadress} ligger och returnerar dessa till datorn
Nja, det är inte så enkelt. Du måste nog starta dos först, och därifrån ladda hem sysprep.inf/leta rätt på sökvägen dit, sedan massa upp mappen med installationsprogrammet med net use, och sedan starta det med valfria parametrar
145 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17