n8w4tch3r 10 Geschrieben 22. April 2011 Melden Teilen Geschrieben 22. April 2011 Hallo Scriptinggemeinde, ich habe folgendes Problem; ich versuche gerade eine Imaginglösung für unsere Servicetechniker zu entwerfen. Es funktioniert auch soweit allerdings gibt es noch 1-2 unschöne Meldungen die ich gerne beseitigt hätte...nicht das die Techniker die dann mit diesem Programm ausgerüstet werden nervös werden und den ganzen Vorgang abbrechen. Das Programm ist ein WinPE mit angepassten Batchscripten in welchen der Techniker nur zwei Eingaben macht und dann automatisch die Festplatte formatiert wird und ein Image via Imagex überspielt wird... Da WinPE (der USB Stick) immer automatisch einen Laufwerksbuchstaben nach den lokalen Festplatten nimmt (das System selber hat ja immer X:) brauchte ich eine Abfrage. Denn das Image wird auf den USB Stick gespeichert nicht im WinPE. Folgenden Programmteil will ich hier kurz posten und dann beschreiben wo mein Problem liegt: If exist C:\Image goto C If exist D:\Image goto D If exist E:\Image goto E If exist F:\Image goto F If exist G:\Image goto G If exist H:\Image goto H If exist I:\Image goto I If exist J:\Image goto J If exist K:\Image goto K :C X:\Windows\System32\imaging\imagex.exe /apply c:\Image\boot.wim 1 I:\ /verify /check goto exit :D X:\Windows\System32\imaging\imagex.exe /apply d:\Image\boot.wim 1 I:\ /verify /check goto exit :E X:\Windows\System32\imaging\imagex.exe /apply e:\Image\boot.wim 1 I:\ /verify /check goto exit :F X:\Windows\System32\imaging\imagex.exe /apply f:\Image\boot.wim 1 I:\ /verify /check goto exit :G X:\Windows\System32\imaging\imagex.exe /apply g:\Image\boot.wim 1 I:\ /verify /check goto exit :H X:\Windows\System32\imaging\imagex.exe /apply h:\Image\boot.wim 1 I:\ /verify /check goto exit :I X:\Windows\System32\imaging\imagex.exe /apply i:\Image\boot.wim 1 I:\ /verify /check goto exit :J X:\Windows\System32\imaging\imagex.exe /apply j:\Image\boot.wim 1 I:\ /verify /check goto exit :K X:\Windows\System32\imaging\imagex.exe /apply k:\Image\boot.wim 1 I:\ /verify /check goto exit :exit Das überspielen des Images klappt allerdings bekomme ich bei der Abfrage der existierenden Pfade die Fehler das der Systempfad nicht gefunden wird... Ich habe bereits mit >NUL gearbeitet aber das funktioniert auch nicht. Wenn ich den Zusatz >NUL hinter die Pfadangabe schreibe dann wird das ImageX Programm im Ablauf unterdrückt was wirklich ganz **** ist da nun die letzte Info im Shell: Systempfad nicht gefunden.. erscheint was wiederum jemanden bei der Benutzung der Batch dazu veranlassen könnte alles abzubrechen. Ich hoffe ich konnte euch mein Problem vernünftig darstellen und ihr könnt mir dabei helfen. Vielen Dank und ein frohes Osterfest Gruß, n8watcher Zitieren Link zu diesem Kommentar
Sunny61 807 Geschrieben 22. April 2011 Melden Teilen Geschrieben 22. April 2011 Probiers doch mal gem. diesem Beispiel: IF EXIST D:\CD.txt set CDROM=D: IF EXIST E:\CD.txt set CDROM=E: IF EXIST F:\CD.txt set CDROM=F: IF EXIST G:\CD.txt set CDROM=G: IF EXIST H:\CD.txt set CDROM=H: IF EXIST I:\CD.txt set CDROM=I: IF EXIST J:\CD.txt set CDROM=J: start /wait "%CDROM%\EXTRAS\2KXPWS03\DxSetup.exe /i /qn /li %temp%\dxsetup.log ANS=1" start /wait %CDROM%\EXTRAS\NVIDIA\SETUP.EXE -s start /wait %CDROM%\EXTRAS\SOUND\SETUP.EXE -s Zitieren Link zu diesem Kommentar
n8w4tch3r 10 Geschrieben 22. April 2011 Autor Melden Teilen Geschrieben 22. April 2011 Aber was hat das mit dem verstecken der Fehlermeldung zutun? Warum denn SET? So wie es momentan ist, funktioniert es ja es gibt halt nur diese Fehlermeldung... Dein Ansatz ist doch ein komplett anderer wenn ich das richtig verstanden habe... Zitieren Link zu diesem Kommentar
Sunny61 807 Geschrieben 22. April 2011 Melden Teilen Geschrieben 22. April 2011 Aber was hat das mit dem verstecken der Fehlermeldung zutun? Warum denn SET? So wie es momentan ist, funktioniert es ja es gibt halt nur diese Fehlermeldung... Mein Beispiel ist wesentlich kürzer und übersichtlicher. Und es erzeugt keine überflüssigen Fehlermeldungen. Das SET gibt der Variable CDROM einen Inhalt. Mit dem Inhalt kannst Du dann weiterarbeiten. IF EXIST D:\CD.txt set CDROM=D: IF EXIST E:\CD.txt set CDROM=E: REM Kopieren/bereitstellen starten... X:\Windows\System32\imaging\imagex.exe /apply %CDROM%:\Image\boot.wim 1 I:\ /verify /check goto exit Du sparst dir bei dieser Variante die restlichen Zeilen des kopieren/zuweisen vom Image, da Du keine harten Pfade verwendest, sondern eine Variable. Dein Ansatz ist doch ein komplett anderer wenn ich das richtig verstanden habe... Was ist dein Ziel? Einen Kopiervorgang durchführen, bei dem Du vorher nicht weißt, auf welchem LW-Buchstaben die Source liegt, richtig? Wenn ja, dann probier das gepostete Beispiel aus. Es ist kürzer, übersichtlicher und sicherer, da Du nur einmal die Variable %CDROM%, oder welchen Namen Du auch immer dafür verwenden willst, befüllst. Eigentlich müsstest Du ja auf 26 LW-Buchstaben prüfen, dein Script hätte dann 52 Zeilen, meines nur 27. ;) Zitieren Link zu diesem Kommentar
n8w4tch3r 10 Geschrieben 22. April 2011 Autor Melden Teilen Geschrieben 22. April 2011 Nein das ist kein normaler Kopiervorgang wenn du dir den Pfad anschaust wird die imagex.exe ausgeführt womit die boot.wim auf den von mir zuvor formatierten Partition applied wird. Hier nochmal der komplette Code: @ECHO OFF ECHO "Image Deployment" ping localhost-n 8 ECHO list disk >scriptdiskpart.txt ECHO. ECHO. ECHO. ECHO select disk=%%selected%% >>scriptdiskpart3.txt ECHO clean >>scriptdiskpart3.txt ECHO create partition primary >>scriptdiskpart3.txt ECHO active >>scriptdiskpart3.txt ECHO assign letter = I >>scriptdiskpart3.txt ECHO format fs=ntfs quick >>scriptdiskpart3.txt ECHO exit >>scriptdiskpart3.txt diskpart /s scriptdiskpart.txt ECHO. ECHO. ECHO. set /p selected="Beware of a false choice it can be erase all your data!!! Please select a disk (0/1/2):" @ECHO OFF diskpart /s scriptdiskpart3.txt Del /S/Q C:\WinPE_to_HDD\scriptdiskpart3.txt Del /S/Q C:\WinPE_to_HDD\scriptdiskpart.txt If exist C:\Image goto C If exist D:\Image goto D If exist E:\Image goto E If exist F:\Image goto F If exist G:\Image goto G If exist H:\Image goto H If exist I:\Image goto I If exist J:\Image goto J If exist K:\Image goto K :C X:\Windows\System32\imaging\imagex.exe /apply c:\Image\boot.wim 1 I:\ /verify /check goto exit :D X:\Windows\System32\imaging\imagex.exe /apply d:\Image\boot.wim 1 I:\ /verify /check goto exit :E X:\Windows\System32\imaging\imagex.exe /apply e:\Image\boot.wim 1 I:\ /verify /check goto exit :F X:\Windows\System32\imaging\imagex.exe /apply f:\Image\boot.wim 1 I:\ /verify /check goto exit :G X:\Windows\System32\imaging\imagex.exe /apply g:\Image\boot.wim 1 I:\ /verify /check goto exit :H X:\Windows\System32\imaging\imagex.exe /apply h:\Image\boot.wim 1 I:\ /verify /check goto exit :I X:\Windows\System32\imaging\imagex.exe /apply i:\Image\boot.wim 1 I:\ /verify /check goto exit :J X:\Windows\System32\imaging\imagex.exe /apply j:\Image\boot.wim 1 I:\ /verify /check goto exit :K X:\Windows\System32\imaging\imagex.exe /apply k:\Image\boot.wim 1 I:\ /verify /check goto exit :exit Da das Script nur auf Industriepcs mit einer Festplatte und höchstens 3 Partitionen ausgeführt wird brauche ich auch nicht alle 52 LW Buchstaben absuchen denn wie schon am Anfang beschrieben startet WinPE und gibt sich ja automatisch den nächsten verfügbaren LW Buchstaben nach den vorhandenen Partitionen. Deshalb prüfe ich nur so wenig... Also letztendlich sollen nur die ersten 9 LW Buchstaben nach dem Pfad mit der boot.wim überprüft werden sodass anschließend die imagex.exe die in dem übergebenen Pfad enthaltene Imagedatei auf die zuvor formatierte Partition applied. Ich hoffe ich konnte dir vermitteln was ich erreichen will ;-) Zitieren Link zu diesem Kommentar
Sunny61 807 Geschrieben 22. April 2011 Melden Teilen Geschrieben 22. April 2011 Ich hoffe ich konnte dir vermitteln was ich erreichen will ;-) Ja, trotzdem ist mein Teil kürzer und es wird keine Fehlermeldung erzeugt. Wenn Du es nicht probieren willst ist das deine Sache. Zitieren Link zu diesem Kommentar
n8w4tch3r 10 Geschrieben 22. April 2011 Autor Melden Teilen Geschrieben 22. April 2011 (bearbeitet) So habs ausprobiert selbes Problem mit der fehlenden Pfadangabe und diesmal wird sogar noch nicht einmal das Programm angesprochen...folgendes habe ich abgeändert: IF exist C:\Image set LW=C: IF exist C:\Image set LW=D: IF exist C:\Image set LW=E: REM Applying Image X:\Windows\System32\imaging\imagex.exe /apply %LW%\Image\boot.wim 1 I:\ /verify /check goto exit :exit Fehlermeldung : Das System kann den angegebenen Pfad nicht finden 2x dann findet es auf LW E: (USB Stick) den Pfad und springt zum Programm wo aber nun eine Fehlermeldung ala Nicht korrekte Syntax verwenden Sie das Programm mit folgenden Parametern kommt...also scheint die Veränderung %LW% nicht funktioniert zu haben ... Hab ich nochwas vergessen? bearbeitet 22. April 2011 von n8w4tch3r Zitieren Link zu diesem Kommentar
Sunny61 807 Geschrieben 22. April 2011 Melden Teilen Geschrieben 22. April 2011 Hab ich nochwas vergessen? Ja, frag doch eine Datei ab, dann klappts auch mit den Nachbarn. ;) Zitieren Link zu diesem Kommentar
n8w4tch3r 10 Geschrieben 22. April 2011 Autor Melden Teilen Geschrieben 22. April 2011 Hi, also selbst wenn ich folgendes eingebe bleibt das Ergebnis das gleiche was auch logisch ist da ja nur eine Abfrage des verfügbaren Pfades stattfinden soll da auf den anderen Partitionen kein *:\Image\ existiert IF exist C:\Image\boot.wim set LW=C: IF exist C:\Image\boot.wim set LW=D: IF exist C:\Image\boot.wim set LW=E: REM Applying Image X:\Windows\System32\imaging\imagex.exe /apply %LW%\Image\boot.wim 1 I:\ /verify /check goto exit :exit Zitieren Link zu diesem Kommentar
Sunny61 807 Geschrieben 22. April 2011 Melden Teilen Geschrieben 22. April 2011 Weshalb fragst Du dreimal den gleichen Dateipfad ab? Copy + Paste Fehler oder steht es so im Original? Zitieren Link zu diesem Kommentar
XP-Fan 219 Geschrieben 22. April 2011 Melden Teilen Geschrieben 22. April 2011 IF exist C:\Image\boot.wim set LW=C: IF exist [color="Red"]C:\Image\[/color]boot.wim set LW=D: IF exist[color="Red"] C:\Image\[/color]boot.wim set LW=E: Ist das Absicht oder ein Fipptehler ? Zitieren Link zu diesem Kommentar
n8w4tch3r 10 Geschrieben 22. April 2011 Autor Melden Teilen Geschrieben 22. April 2011 copy and paste Fehler im Original steht es dann so sorry... IF exist C:\Image\boot.wim set LW=C IF exist D:\Image\boot.wim set LW=D IF exist E:\Image\boot.wim set LW=E REM Applying Image X:\Windows\System32\imaging\imagex.exe /apply %LW%:\Image\boot.wim 1 I:\ /verify /check goto exit :exit Zitieren Link zu diesem Kommentar
zahni 554 Geschrieben 23. April 2011 Melden Teilen Geschrieben 23. April 2011 In Deinem Script bringst Du eine Sicherheitsabfrage nach dem Diskpart-Befehl. Ist das nicht etwas spät ? Welches Windows PE benutzt Du ? Wenn ich Windows PE 3.0 (das auf dem Windows 7 WAIK) bindet er Windows PE als X (oder so) ein. Zumindest beim Boot über PXE. USB nicht probiert. -Zahni Zitieren Link zu diesem Kommentar
n8w4tch3r 10 Geschrieben 23. April 2011 Autor Melden Teilen Geschrieben 23. April 2011 Hi zahni, nein die Sicherheitsabfrage ist nicht zu spät...nachdem das LW gewählt wurde kommt die Abfrage wenn man hier n für nein drückt wird die ganze Sache abgebrochen (ich hätte es auch weggelassen aber bei den Technikern weiß man ja nie - im Supportfall hat man dann wenigstens noch das Argument - dort war doch extra noch ne Warnung spätestens da hätten Sie es nochmal überpüfen können) Ich benutze WinPE 3.0, und ja ich weiß dass er das System als X einbindet..aber NUR das System die USB Stick Partition wird automatisch mit dem nächsten verfügbaren Buchstaben gemountet (bei mir meist D,E oder F)... Schade das an der Stelle keiner ne Idee zur Unterdrückung der Fehlermeldung hat... Gruß, n8watcher Zitieren Link zu diesem Kommentar
zahni 554 Geschrieben 23. April 2011 Melden Teilen Geschrieben 23. April 2011 In Deinem Script steht: diskpart /s scriptdiskpart.txt ECHO. ECHO. ECHO. set /p selected="Beware of a false choice it can be erase all your data!!! Please select a disk (0/1/2):" @ECHO OFF In dieser Reihenfolge... Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.