2017-04-07 2 views
0

Ich möchte meine Batch-Datei eine andere Batch-Datei mit erhöhten (Admin) Rechte starten, ohne eine Eingabeaufforderung zu akzeptieren. Ich habe einen Benutzer mit Admin-Rechten („user“ genannt), aber wenn ich versuche:Windows Batch-Datei starten einen anderen Batch mit erhöhten Rechten

runas /savecred /user:user "program.bat" 

Die Rechte werden nicht erhöht bekommen. Aber wenn ich versuche:

runas /savecred /user:administrator "program.bat" 

und das Passwort „user“ eingeben heißt es: Unbekannter Benutzer oder falsche Passphrase.

Also: Was muss ich tun, um die Rechte nur mit dem "user" -Account zu erhöhen?

+1

Aufgrund Ihrer Kommentare scheint es, dass Sie als Administrator ausführen möchten, aber umgehen Sie die Sicherheit in das Betriebssystem integriert. Was wäre der Sicherheitsaspekt, wenn es einfach in einer Befehlszeile umgangen werden könnte? Wenn das Ihre Frage ist, dann ist es kein Programmierproblem und ist hier nicht Thema. – Compo

Antwort

0

Dies könnte ein bisschen übertrieben sein, aber wenn die zweite Batchdatei soll immer Als Administrator ausführen sein, Sie zu Beginn der es folgenden Code einfügen könnten:

@echo off & setlocal EnableDelayedExpansion 
IF "%PROCESSOR_ARCHITECTURE%" EQU "amd64" (
    >NUL 2>&1 "%SYSTEMROOT%\SysWOW64\cacls.exe" "%SYSTEMROOT%\SysWOW64\config\system" 
) ELSE (
    >NUL 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" 
) 
IF '%errorlevel%' NEQ '0' (
    echo Asking for administrative rights 
    goto uac 
) ELSE (goto adm) 
:uac 
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\uac.vbs" 
set params = %*:"="" 
echo UAC.ShellExecute "cmd.exe", "/c ""%~s0"" %params%", "", "runas", 1 >> "%temp%\uac.vbs" 
"%temp%\uac.vbs" 
del "%temp%\uac.vbs" 
cls 
echo Did not get administrative rights 
exit 
:adm 
pushd "%CD%" 
CD /D "%~dp0" 
cls 
echo Got administrative rights 

:: 
:: YOUR CODE HERE 
:: 

EDIT: Es wird nicht Zeigen Sie die Eingabeaufforderung an und geben Sie Administratorrechte, wenn Sie die Benutzerkontensteuerung deaktivieren.

+0

Es startet den anderen Batch als Admin aber zuerst nach Aufforderung. Mein Problem ist, dass ich die Aufforderung nicht annehmen kann. –

+0

@J.B. Aber das ist kein Programmierproblem. Bist du sicher, dass du nicht nur einen Tippfehler im Passwort hast? – NullDev

+0

nein, weil es das Programm startet ... aber nicht mit erhöhten Rechten. –

Verwandte Themen