Also:
Nachdem meine erste Antwort nach genauerem Lesen eigentlich überflüssig war (ist halt doch irgendwie zu warm hier bei 39,3° im Schatten), derweil ich einfach mal etwas genauer hätte lesen sollen, bevor ich antworte. Sorry, versuche mich zu bessern
Mal langsam:
Batch funktioniert wie gewünscht von der Konsole.
Code:
WScript.CreateObject("WScript.Shell").SendKeys("password{ENTER}");
gibt das Passwort wie gewünscht weiter.
Beim ShellExecute aus Delphi heraus scheint dies aber nicht zu funktionieren.
Wunsch ist es:
Batchdatei weiterhin aus Delphi aufrufen und das Passwort wird nicht von WScript im Batch selbst "übergeben", sondern dieser Teil wird von Delphi übernommen.
Keine Ahnung, ob es hilft und wie das mit 'nem ShellExecute zusammenpassen könnte:
Stöbere bitte mal bitte im Umfeld von
https://stackoverflow.com/questions/...n-using-winapi herum, eventuell kann ich Dir ja damit jetzt doch noch was zielführendes anbieten
Eventuell kannst Du die Batchdatei aber auch erweitern:
Schau mal bitte hier:
https://docs.microsoft.com/en-us/pre...ectedfrom=MSDN
Jetzt nur als absolut ungetestete Idee:
Code:
@if (@CodeSection == @Batch) @then
@echo off
:: Parameter %1 der Batchdatei enthält dass Passwort des Administrators für den Server 01 und wird hier gespeichert.
cmdkey /add:server01 /user:administrator /pass:%1
start runas /user:administrator C:\temp\...
CScript //nologo //E:JScript "%~F0"
:: Die gespeicherte Anmeldung für den Administrator wird wieder gelöscht.
cmdkey /delete:server01
goto :EOF
@end
Mit etwas Glück musst Du dann in Deinem bisherigen ShellExecute nur das Administratorpasswort als ersten Parameter übergeben.