Admin-Rechte werden trotz uac-prompt nicht an script weitergereicht
Ich habe eine Toolbox gebaut, welche auch einen SFC starten soll.
Klickt man direkt auf "als admin ausführen" bei dem script, funktioniert das.
Andere Programme lassen sich sauber mit Adminrechten ausführen.
Ich weiß nicht mehr weiter, wie ich das noch geradeziehen könnte.
Hallo,
ich hoffe, ihr könnt mir helfen.
Ich habe eine kleine Toolbox in hta gebaut, die buttons sind in visual basic gebaut, der uac-prompt klappt auch.
Leider klappt es bei einem Script nicht, die Admin-Rechte auf das Script zu übergeben.
Der vb-Aufruf über die HTA sieht so aus:
Dim UAC
Sub SFC
Set UAC = CreateObject("Shell.Application")
UAC.ShellExecute ".\src\sfc.bat", , , "runas"
End Sub
Der Prompt kommt, windows sagt mir dann aber, man müsse admin sein, um sfc zu starten.
Ursprünglich habe ich vor dem sfc noch Abfragen geplant gehabt, damit man das Laufwerk eingeben kann.
Dann könnte man einen Zweig bauen, der einen offline-sfc erlaubt, sofern das angegebene Laufwerk nicht c: ist.
Bei einer anderen Exe, die zwingend admin-Rechte braucht, funktioniert der Aufruf.
Ich habe auch versucht die getadmin.vbs ins script selbst einzubauen und die "elevation" dadurch herbeizuführen.
Sie steht an oberster Zeile, der Prompt kommt-ändert aber leider an der SFC-Fehlermeldung nichts.
Fehlermeldung: "windows resource protection could not start the repair service"
Diese vbs sieht so aus:
Set UAC = CreateObject("Shell.Application")
UAC.ShellExecute "C:\temp\SFC.bat", "", "", "runas", 1
In der Sfc.bat steht drin:
sfc /scannow
pause
Kann es an dem Startparamenter /scannow liegen ?
Die hta kann ich noch nachreichen, wenn die jemand zum testen haben will.
Denke aber, dass es als eigentständige vbs genauso funktioniert.
Danke schonmal
Klickt man direkt auf "als admin ausführen" bei dem script, funktioniert das.
Andere Programme lassen sich sauber mit Adminrechten ausführen.
Ich weiß nicht mehr weiter, wie ich das noch geradeziehen könnte.
Hallo,
ich hoffe, ihr könnt mir helfen.
Ich habe eine kleine Toolbox in hta gebaut, die buttons sind in visual basic gebaut, der uac-prompt klappt auch.
Leider klappt es bei einem Script nicht, die Admin-Rechte auf das Script zu übergeben.
Der vb-Aufruf über die HTA sieht so aus:
Dim UAC
Sub SFC
Set UAC = CreateObject("Shell.Application")
UAC.ShellExecute ".\src\sfc.bat", , , "runas"
End Sub
Der Prompt kommt, windows sagt mir dann aber, man müsse admin sein, um sfc zu starten.
Ursprünglich habe ich vor dem sfc noch Abfragen geplant gehabt, damit man das Laufwerk eingeben kann.
Dann könnte man einen Zweig bauen, der einen offline-sfc erlaubt, sofern das angegebene Laufwerk nicht c: ist.
Bei einer anderen Exe, die zwingend admin-Rechte braucht, funktioniert der Aufruf.
Ich habe auch versucht die getadmin.vbs ins script selbst einzubauen und die "elevation" dadurch herbeizuführen.
Sie steht an oberster Zeile, der Prompt kommt-ändert aber leider an der SFC-Fehlermeldung nichts.
Fehlermeldung: "windows resource protection could not start the repair service"
Diese vbs sieht so aus:
Set UAC = CreateObject("Shell.Application")
UAC.ShellExecute "C:\temp\SFC.bat", "", "", "runas", 1
In der Sfc.bat steht drin:
sfc /scannow
pause
Kann es an dem Startparamenter /scannow liegen ?
Die hta kann ich noch nachreichen, wenn die jemand zum testen haben will.
Denke aber, dass es als eigentständige vbs genauso funktioniert.
Danke schonmal
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 194928
Url: https://administrator.de/contentid/194928
Ausgedruckt am: 22.11.2024 um 08:11 Uhr
9 Kommentare
Neuester Kommentar
Hallo Schalterschorsch.
Hatte bei mir auf Anhieb funktioniert.
Ich weiß immer noch nicht genau wie du den Pfad übergibst. Bedenke, dass der per ShellExecute aufgerufene cmd.exe Prozess in %SystemRoot%\System32 ausgeführt wird. Mit relativen Pfadangaben wirst du also im Zweifelsfall Probleme bekommen. Wie sieht das bei dir in der Realität aus?
Grüße
rubberman
Hi,
damit habe ich nun ein Problem: 0 Erfahrung auf Win x64
Ich weiß nur so viel, dass es Abhängigkeiten vom aufrufenden Programm gibt, ob die 32 oder 64 Bit Versionen herangezogen werden.
Also ist deine Mithilfe gefragt. Wo liegt die sfc.exe? Rufe die sfc.exe mal mit vollem Pfad aus deiner Batchdatei auf. Falls sie sowohl in syswow64, als auch in system32 existiert, teste beides.
Grüße
rubberman
damit habe ich nun ein Problem: 0 Erfahrung auf Win x64
Ich weiß nur so viel, dass es Abhängigkeiten vom aufrufenden Programm gibt, ob die 32 oder 64 Bit Versionen herangezogen werden.
Also ist deine Mithilfe gefragt. Wo liegt die sfc.exe? Rufe die sfc.exe mal mit vollem Pfad aus deiner Batchdatei auf. Falls sie sowohl in syswow64, als auch in system32 existiert, teste beides.
Grüße
rubberman