Die Lösung war für mich nicht offensichtlich, jedoch viel einfacher als ich erwartet hatte.
Aufgrund dieses Hinweises habe ich erkannt, dass der aktuelle Kontext (Arbeitsverzeichnis der Invoker-Batchdatei) erfasst und an die VBScript-Datei übergeben werden musste.
Ich habe mein amr.bat
Skript auf folgende Weise geändert .
@echo off :: Let me capture the current working directory set InvokerCapturedWorkingDirectory=%cd% :: BatchGotAdmin ::------------------------------------- REM --> Check for permissions >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" REM --> If error flag set, we do not have admin. if '%errorlevel%' NEQ '0' ( echo Requesting administrative privileges... goto UACPrompt ) else ( goto gotAdmin ) :UACPrompt echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs" set params = %*:"=" echo UAC.ShellExecute "%comspec%", "/k C:\cmder\vendor\init.bat %params% & cd /d %InvokerCapturedWorkingDirectory%", "", "runas", 1 >> "%temp%\getadmin.vbs" "%temp%\getadmin.vbs" del "%temp%\getadmin.vbs" exit /B :gotAdmin pushd "%CD%" CD /D "%~dp0" ::::::::::::::::::::::::::::::: :: START OF USER CUSTOM CODE :: ::::::::::::::::::::::::::::::: :: IS NOT NEEDED ANYMORE ::%comspec% /k "C:\cmder\vendor\init.bat %*" EXIT /B %ERRORLEVEL%
Lassen Sie mich meine Worte bestätigen :
Wenn Sie neugierig auf den Inhalt der generierten VBScript-Datei sind ( die die Batchdatei im erhöhten Modus ausführt ), sind Sie hier: