zeretor
Goto Top

Zwischenspeichern nicht möglich - Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird.

Tag,
ich habe gerade eine Batch Datei für einen Freund, der sein Admin-PW zurück will, in Arbeit (deshalb die echos und "@echo off"; er hat NOCH weniger Ahnung als ich), doch jetzt bin ich auf ein für mich unüberwindbares Problem gestoßen (me = knapp über DAU).
Im Klartext:

@echo off
echo Zum Start...
pause
C:
cd\windows\system32
mkdir temphk
echo .
echo Wenn keine Fehlermeldung erscheint...
pause
copy logon.scr C:\windows\system32\temphk\logon.scr
copy cmd.exe C:\windows\system32\temphk\cmd.exe
del logon.scr
rename cmd.exe logon.scr
echo .
echo Wenn keine Fehlermeldung erscheint...
pause
echo .
echo IM NEUEN FENSTER folgende Befehle (+enter): "net user" dann "net user [NAME
DES ZU VERAENDERNDEN] *" dann PW eingeben (wird waehrend der Eingabe nicht
angezeigt!) dann "exit".
start /wait C:\WINDOWS\system32\logon.scr
C:
cd\windows\system32\temphk
copy logon.scr C:\windows\system32\logon.scr
del *.* /q
cd..
rd temphk
echo .
echo Zum Abschliessen des Vorgangs...
pause



Ich weiß, nicht grade gekonnt und nicht vielfältig einsetzbar doch für seine Uralt-Kiste reicht's hoffentlich.

Problem:
"copy logon.scr C:\windows\system32" ---> "Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird."
Ich nehme mal an, dass es die Batch Datei einfach nicht mitbekommt dass das logon.scr bereits geschlossen wurde, da es bei Auftrennung in 2 Batch-Dateien (Hinkopieren und Zurückkopieren) klappt...

Das führt mich zur eigentlichen Frage: Wie "erzwinge" ich den Vorgang? Oder gibt es Alternativen (mit EINER Datei)?

mfg Richard

PS: Es klappt leider auch nicht, wenn ich ihm Zeit gebe zum "Bemerken".. oder das folgende funktioniert nicht:
"echo >1.vbs wscript.sleep 5000
cscript 1.vbs
del 1.vbs"

Content-Key: 59203

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

Printed on: April 24, 2024 at 14:04 o'clock

Member: Zeretor
Zeretor May 17, 2007 at 16:06:27 (UTC)
Goto Top
Ich habe die Lösung mittlerweile selbst gefunden - falls es jemanden gibt, der ähnlich Probleme hatte, hier meine Lösung.

@echo off
echo .
echo SOBALD DIESE DATEI AUSGEFUEHRT WURDE, ERSCHEINT IM SELBEN ORDNER WIE "TEMPHK.bat" DIE DATEI "TEMPHKSTART.VBS", DIESE DANN ANKLICKEN! Sobald diese Nachricht gelesen wurde, ...  
pause
echo >temphkstart.vbs ^FEHLER=MsgBox("Einfach die Anweisungen gut durchlesen und befolgen!",40,"Vorgang wird gestartet...")  
echo >>temphkstart.vbs ^Dim oShell
echo >>temphkstart.vbs ^Set oShell ^= ^WScript.CreateObject("WScript.Shell")  
echo >>temphkstart.vbs ^oShell.Run ^"temphk1.bat",,True  
echo >>temphkstart.vbs ^wscript.sleep ^200
echo >>temphkstart.vbs ^oShell.Run ^"temphk2.bat",,True  
echo >>temphkstart.vbs ^FEHLER=MsgBox("Nur noch temphkend.bat ausführen und fertig!",40,"Vorgang abgeschlossen!")  
echo >>temphkstart.vbs ^Set oShell ^= ^Nothing
echo >temphk1.bat ^@echo ^off
echo >>temphk1.bat ^echo ^Zum Start...
echo >>temphk1.bat ^pause
echo >>temphk1.bat ^C:
echo >>temphk1.bat ^cd\windows\system32
echo >>temphk1.bat ^mkdir ^temphk
echo >>temphk1.bat ^echo ^.
echo >>temphk1.bat ^echo Wenn keine Fehlermeldung erscheint...
echo >>temphk1.bat ^pause
echo >>temphk1.bat ^copy logon.scr ^C:\windows\system32\temphk\logon.scr
echo >>temphk1.bat ^copy cmd.exe ^C:\windows\system32\temphk\cmd.exe
echo >>temphk1.bat ^del logon.scr
echo >>temphk1.bat ^rename cmd.exe logon.scr
echo >>temphk1.bat ^echo ^.
echo >>temphk1.bat ^echo Wenn keine Fehlermeldung erscheint...
echo >>temphk1.bat ^pause
echo >>temphk1.bat ^echo ^.
echo >>temphk1.bat ^echo IM NEUEN FENSTER folgende Befehle (^+enter): ^"net user^" dann ^"net user [NAME DES ZU VERAENDERNDEN] ^*^" dann PW eingeben (wird waehrend der Eingabe nicht angezeigt!) dann ^"exit^"^.  
echo >>temphk1.bat ^start /wait C:\WINDOWS\system32\logon.scr
echo >>temphk1.bat ^echo ^.
echo >>temphk1.bat ^echo Wenn keine Fehlermeldung erscheint...
echo >>temphk1.bat ^pause
echo >>temphk1.bat ^exit
echo >temphk2.bat ^@echo ^off
echo >>temphk2.bat ^echo Zum Start von Schritt 2
echo >>temphk2.bat ^pause
echo >>temphk2.bat ^C:
echo >>temphk2.bat ^cd\windows\system32\temphk
echo >>temphk2.bat ^copy logon.scr C:\windows\system32\logon.scr
echo >>temphk2.bat ^echo ^.
echo >>temphk2.bat ^echo Wenn keine Fehlermeldung erscheint...
echo >>temphk2.bat ^pause
echo >>temphk2.bat ^del ^*.* ^/q
echo >>temphk2.bat ^cd..
echo >>temphk2.bat ^rd temphk
echo >>temphk2.bat ^echo ^.
echo >>temphk2.bat ^echo Zum Abschliessen des Vorgangs...
echo >>temphk2.bat ^pause
echo >temphkend.bat ^@echo off
echo >>temphkend.bat ^del temphk1.bat
echo >>temphkend.bat ^del temphk2.bat
echo >>temphkend.bat ^del temphkstart.vbs
echo >>temphkend.bat ^del temphkend.bat