testi
Goto Top

Unattended Problem

Seltsamer Dateiname...

Hi,

seit langem schon installiere ich meine Rechner unattended mit WinXP Pro/SP2. Das
funktioniert bestens. Jetzt möchte ich nicht ständig den Rechnernamen in der Unattend.txt
ändern müssen, d.h. ich will eine udb-Datei verwenden.

Diese sieht so aus:

[UniqueIds]
gigabyte=UserData

[gigabyte:UserData]
ComputerName=gigabyte

In der unattend.txt steht jetzt ersatzweise (habe hier nur das wichtigste gepostet):

[UserData]
ComputerName= *

Die Installation wird so gestartet:

instxp gigabyte

Wobei die instxp.bat folgende Inhalte hat und in einer Netzwerkfreigabe liegt:

set ComputerName=%1
z:\winxp\i386\winnt /s:z:\winxp\i386 /u:z:\unattend.txt /udf:%ComputerName%,unattend.udb


Das Problem ist nun folgendes:

1. Ich starte die Installation per instxp gigabyte
2. Das Setup beginnt mit dem lesen der dosnet.inf
3. Das Setup beginnt die ersten Dateien zu kopieren (ntldr,...) wobei die
Dateinamen unten rechts angezeigt werden.

Dabei taucht dann nach kurzer Zeit ein seltsamer Dateiname auf, die Datei existiert natürlich nicht, die Installation bleibt hier stehen:

https://kilobyte.dyndns.info/screenshot.bmp

Rufe ich die Unattended installation ohne den /udf Parameter auf funktioniert alles bestens.
Natürlich muß ich dann wieder den Rechnernamen in die unattend.txt eintragen.

Hat jemand eine Idee wie ich mit /udf installieren kann?

Content-Key: 8882

Url: https://administrator.de/contentid/8882

Printed on: April 26, 2024 at 02:04 o'clock

Member: fritzo
fritzo Apr 23, 2005 at 15:51:44 (UTC)
Goto Top
Hi,

ändere mal in der instxp.bat die Zeile: set ComputerName=%1 in folgendes:
set ComputerName=%%1

Du mußt %-Variablen in Batches mit einem weiteren "%" maskieren.

Grüße,
fritzo

[edit: vergiß das, ich hab noch keinen Kaffee getrunken heute, sorry Grüße,
fritzo]
Member: fritzo
fritzo Apr 23, 2005 at 15:54:14 (UTC)
Goto Top
Ansonsten:

/udf:ID[,UDF_file]

Indicates an identifier that Setup uses to specify how a Uniqueness Database File (UDF) modifies an answer file. The UDF file overrides values in the answer file, and the identifier determines which values in the UDF file are used. For example, /udf:Roaming_user,Our_company.udf overrides settings specified for the identifier Roaming_user in the Our_company.udf file. If you do not specify a UDF file, Setup prompts you to insert a disk that contains the file $Unique$.udf.


Versuch es mal ohne die "%"

set ComputerName=%1
z:\winxp\i386\winnt /s:z:\winxp\i386 /u:z:\unattend.txt /udf:ComputerName,unattend.udb

Grüße,
fritzo
Member: fritzo
fritzo Apr 23, 2005 at 16:12:15 (UTC)
Goto Top
Wenn ich es mir recht ansehe, wird es wahrscheinlich so nicht funktionieren, da die UDB doch auch nur Werte enthält, die statisch sind und Du hier keine Parameter wie "Rechnername ist %1" also Deine Eingabe reinpumpen kannst....

Du müßtest also entweder für jeden Rechner ein eigenes udb-File anlegen oder einen Weg finden, diese Variable per Script durch den eingegebenen Wert zu ersetzen. Wenn Du das machst, kannst Du aber gleich auch die unattended.txt ändern und hier den Rechnernamen ändern. Oder sehe ich das falsch?

Grüße,
fritzo
Member: hanswurst
hanswurst May 27, 2005 at 16:52:05 (UTC)
Goto Top
Hi,

seit langem schon installiere ich meine
Rechner unattended mit WinXP Pro/SP2. Das
funktioniert bestens. Jetzt möchte ich
nicht ständig den Rechnernamen in der
Unattend.txt
ändern müssen, d.h. ich will eine
udb-Datei verwenden.

Diese sieht so aus:

[UniqueIds]
gigabyte=UserData

[gigabyte:UserData]
ComputerName=gigabyte

In der unattend.txt steht jetzt ersatzweise
(habe hier nur das wichtigste gepostet):

[UserData]
ComputerName= *

Die Installation wird so gestartet:

instxp gigabyte

Wobei die instxp.bat folgende Inhalte hat
und in einer Netzwerkfreigabe liegt:

set ComputerName=%1
z:\winxp\i386\winnt /s:z:\winxp\i386
/u:z:\unattend.txt
/udf:%ComputerName%,unattend.udb


Das Problem ist nun folgendes:

1. Ich starte die Installation per instxp
gigabyte
2. Das Setup beginnt mit dem lesen der
dosnet.inf
3. Das Setup beginnt die ersten Dateien zu
kopieren (ntldr,...) wobei die
Dateinamen unten rechts angezeigt
werden.

Dabei taucht dann nach kurzer Zeit ein
seltsamer Dateiname auf, die Datei existiert
natürlich nicht, die Installation bleibt
hier stehen:

https://kilobyte.dyndns.info/screenshot.bmp

Rufe ich die Unattended installation ohne
den /udf Parameter auf funktioniert alles
bestens.
Natürlich muß ich dann wieder den
Rechnernamen in die unattend.txt eintragen.

Hat jemand eine Idee wie ich mit /udf
installieren kann?



Hi,

ich habe dir eine Batch-Datei hinterlegt (weiter unten), wenn du sie zwischen
den Markierungen "- - - A N F A N G - - -" und "- - - E N D E - - -"
ausschneidest und als "instxp.bat" speicherst müsste es funktionieren.
(Wenn ich mich nicht irgend wo vertan habe face-plain. Ich nutze die Datei in fast
dergleichen Form unter W2K, ich habe sie nur etwas angepasst.)


Jetzt aber zur Erklärung

1. Du musst zuerst in der "UNATTEND.TXT" die Einträge die du durch die
"UBD-Datei" / "UDF-Datei" ersetzen möchtest remarken mit ";" oder
gleich entfernen

in deiner "UNATTEND.TXT" entweder
[UserData]
;ComputerName= *

oder

[UserData]

ohne den Eintrag "ComputerName="

2. Um die Batch-Datei zu starten brachst du noch die Datei "xmsdsk.exe"
gibt es hier: http://www.simtel.net/product.php?url_fb_product_page=4825
ist FREEWARE einfach die "furd19_i.zip" laden und
(bei dir nach Z:\xms-ems) entpacken.
Mit "xmsdsk.exe" wird ein RAM-Drive eingerichtet von dem man den
Laufwerksbuchstaben selbst bestimmen kann in der Batch "R:".


Die "UNATTEND.UDB / UNATTEND.UDF" wird im RAM-Drive erstellt und von dort auch
gelesen, das besondere daran ist das sie jedes Mal neu erstellt wird und damit
kann man von der Kommandozeile immer einen neuen ComputerNamen eingeben.


Die "UNATTEND.UDB / UNATTEND.UDF" kann bis zu 8 Variablen erweitert werden, weil
"*.BAT" oder "*.CMD" nur Variablen von %1-%9 annehmen %0 ist für den Dateinamen
selber reserviert.

z.B.: (max. 8 Einträge)

[UniqueIDs]
ComputerXXX = UserData,params.MS_TCPIP.Adapter1,...

[ComputerXXX:UserData]
ComputerName = %ComputerName%

[ComputerXXX:params.MS_TCPIP.Adapter1]
IPAddress = %IPAddress%

[ComputerXXX:...]
... = ...


Nu kannst du dein Setup mit "INSTXP.BAT GIGABYTE" aufrufen und der RechnerName
wird auf "GIGABYTE" gesetzt.


(Die Batch-Datei sieh leider nicht mehr so toll aus weil "Leerzeichen" und
"Tabs" nicht mit übernommen werden, laut der Vorschau.)


- - - A N F A N G - - -

@echo OFF

rem DateiName: instxp.bat


PATH Z:\;Z:\winxp\;Z:\winxp\i386;X:\XMS-EMS;R:\


set SetupFiles=Z:\winxp\i386
set AnswerFile=Z:\unattend.txt
set XMSFile=Z:\xms-ems
set ComputerName=%1


if "%ComputerName%" == "" goto ERROR:


rem ### Starten einer 2 MB grossen RAM-Disk als Laufwerk R: ohne Best?tigung ###
%XMSFile%\xmsdsk.exe 2048 R: /y

if not errorlevel 18 goto NO_RAMDRIVE:

rem INFO ZU ERRORLEVEL VON "xmsdsk.exe":
rem
rem Syntax: LW=[ERRORLEVEL]
rem [NICHT EINGERICHTET]=0, A=1, B=2, C=3, D=4, E=5, F=6,
rem G=7, H=8, I=9, J=10, K=11, L=12,
rem M=13, N=14, O=15, P=16, Q=17, R=18,
rem S=19, T=20, U=21, V=22, W=23, X=24,
rem Y=25, Z=26


set UdbFile=R:\unattend.udb
set temp=R:\
set tmp=R:\


echo. >%UdbFile%
echo [UniqueIDs] >>%UdbFile%
echo ComputerXXX = UserData >>%UdbFile%
echo. >>%UdbFile%
echo [ComputerXXX:UserData] >>%UdbFile%
echo ComputerName = %ComputerName% >>%UdbFile%
echo. >>%UdbFile%


%SetupFiles%\winnt /s:%SetupFiles% /u:%AnswerFile% /udf:ComputerXXX,%UdbFile%
goto EXIT:


:ERROR
cls
echo.
echo.
echo.
echo FEHLER: "Computer-Name" wurde nicht eingetragen.
echo.
echo.
echo.
echo instxp [Computer-Name] : eingeben und dann ENTER dr�cken
echo.
echo ^
echo º
echo Leerzeichen
echo.
goto EXIT:


:NO_RAMDRIVE
cls
echo.
echo.
echo.
echo Beim Starten des Computers ist ein Fehler aufgetreten.
echo Es konnte kein RAM-Laufwerk erstellt werden, da nicht
echo gen�gend Erweiterungsspeicher (mind. 2 MB) verf�gbar ist.
echo Oder weil nicht der richtige Laufwerks-Buchstabe
echo vergeben werden konnte.
echo.
pause
cls
echo.
echo.
echo.
echo Der Start-Vorgang wird beendet.
echo.
pause
goto EXIT:


:EXIT

- - - E N D E - - -


MFG
HASWURST
Member: al3ian
al3ian Jul 01, 2005 at 17:14:49 (UTC)
Goto Top
hallo alle zusammen,
ich mache gerade Unattended Installation und der sollte man vom server booten,
und es läuft alles ok bis das computername eintragen von kommandozeile zu lesen
und das macht mir ein kopfschmertzen.
ich habe mir die script zwischen anfang und ende kopiert und bei mir angepasst
aber es ging nicht.

also bei mir ist das so
die sind wichtigsten zeilen


@echo OFF

PATH x:\;x:\xpinst\;x:\xpinst\xpcd\i386;X:\XMS-EMS;R:\

set SetupFiles=x:\xpinst\xpcd\i386
set AnswerFile=x:\winnt.sif
set XMSFile=x:\xms-ems
set ComputerName=%1

if "%ComputerName%" == "" goto ERROR:

rem ### Starten einer 2 MB grossen RAM-Disk als Laufwerk R: ohne Best?tigung ###
%XMSFile%\xmsdsk.exe 2048 R: /y

if not errorlevel 18 goto NO_RAMDRIVE:

set UdbFile=R:\unattend.udb
set temp=R:\
set tmp=R:\

echo. >%UdbFile%
echo [UniqueIDs] >>%UdbFile%
echo ComputerXXX = UserData >>%UdbFile%
echo. >>%UdbFile%
echo [ComputerXXX:UserData] >>%UdbFile%
echo ComputerName = %ComputerName% >>%UdbFile%
echo. >>%UdbFile%

xpcd\i386\winnt /s:x:\xpinst\xpcd\i386 /u:x:\xpinst\xpcd\i386\winnt.sif /udf:ComputerXXX,%UdbFile%

goto EXIT:
:ERROR


vielleicht kann mir helfen

danke vorraus
greetz
al3ian
Member: hanswurst
hanswurst Jul 14, 2005 at 09:31:59 (UTC)
Goto Top
Hallo al3ian,

du solltest zu erst bei "set AnswerFile=x:\winnt.sif" deine Unattended-Datei
"winnt.sif" umbenenne z.B.: "unattend.txt" weil "winnt.sif" ist ein Reservierter
Datei für eine Unattended-Installation von einer CD.

Als zweites solltest du noch mal nach schauen wo deine Unattended-Datei
tatsächlich liegt entweder

.
.
.
set AnswerFile=x:\winnt.sif <- x:\winnt.sif
.
.
.

oder

.
.
.
xpcd\i386\winnt /s:x:\xpinst\xpcd\i386 /u:x:\xpinst\xpcd\i386\winnt.sif /udf:ComputerXXX,%UdbFile% <- x:\xpinst\xpcd\i386\winnt.sif
.
.
.

Das Windows-Setup sucht beim starten im "...\I386" Verzeichnis nach der
"winnt.sif" sollte diese nicht gefunden werden dann führt es erst den Rest der
Schalter aus deswegen vielleicht dein Problem das nicht der ComputerName
eingetragen wird den du an der Kommandozeile eingegeben hast.

Schreib hier noch mal wenn das Problem bei dir gelöst ist.


MFG
HASWURST
Member: superboh
superboh Jul 14, 2005 at 22:27:44 (UTC)
Goto Top
Hallo,

falls Du das Problem noch hast ...

Ich lasse mir für jeden Rechner eine eigene unattended.txt erstellen. Dazu hab ich mir eine kleine .exe geschrieben, welche ich im Setup-Script aufrufe, noch vor der eigentlichen Windows- Installation. Diese .exe macht nichts anderes wie eine Default-unattended.txt einzulesen und den Rechnernamen mit dem zu ersetzen den man beim Setup-Script übergeben hat. Hat man dort keinen angegeben, wird einer auf Zufallsbasis erzeugt.

So kann ich auch 2 Rechner gleichzeitig installieren. Nachdem das Setup fertig ist, lasse ich als letztes noch eben diese Datei wieder löschen und schon ist wieder aufgeräumt.

Falls Du willst, kann ich Dir das Progrämmchen schicken. Es ist mit Turbopascal geschrieben.

Gruss,
Thomas