Я нашел очень полезный командный файл здесь:
http://jagaroth.livejournal.com/63875.html
Я цитирую файл CMD, который вам понадобится:
@ECHO OFF
REM Changing working folder back to current directory
%~d0
CD %~dp0
REM Folder changed
REM Check first if Windows XP
for /f "tokens=3*" %%i IN ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName ^| Find "ProductName"') DO set vers=%%i %%j
echo %vers% | find "XP" > nul
if %ERRORLEVEL% == 0 goto ver_xp
REM Ask for admin access
if exist "admincheckOK.txt" goto adminOK1
del /Q admincheckOK.vbs
ECHO.
ECHO. Please wait...
echo.Set objShell = CreateObject("Shell.Application") > admincheckOK.vbs
echo.Set FSO = CreateObject("Scripting.FileSystemObject") >> admincheckOK.vbs
echo.strPath = FSO.GetParentFolderName (WScript.ScriptFullName) >> admincheckOK.vbs
echo.If FSO.FileExists(%0) Then >> admincheckOK.vbs
echo. Dim oShell >> admincheckOK.vbs
echo. Set oShell = WScript.CreateObject ("WScript.Shell") >> admincheckOK.vbs
echo. oShell.run "cmd.exe /c echo admincheckOK > admincheckOK.txt" >> admincheckOK.vbs
echo. Set oShell = Nothing >> admincheckOK.vbs
echo. objShell.ShellExecute "cmd.exe", " /c " ^& %0 ^& " ", "", "runas", 1 >> admincheckOK.vbs
echo.Else >> admincheckOK.vbs
echo. MsgBox "Script file not found" >> admincheckOK.vbs
echo.End If >> admincheckOK.vbs
cscript //B admincheckOK.vbs
goto timeend
:adminOK1
del /Q admincheckOK.txt
del /Q admincheckOK.vbs
:ver_xp
REM Admin Access allowed
REM CMD CODE TO RUN AS ADMIN HERE!!
REM Following statement required if Admin access denied
:timeend
del /Q admincheckOK.vbs
После REM CMD CODE TO RUN AS ADMIN HERE!!
у вас будет доступ администратора.
Он использует много хитрости, чтобы достичь этого.
Он эффективно создает VBScript файл .vbs
. VBScript может вызвать UAC. Он также создаст admincheckOK.txt
который сообщает пакетному файлу, что он находится в режиме администратора прямо сейчас, когда он запускается в следующий раз (что происходит сразу после этого с помощью objShell.ShellExecute
)
В отличие от варианта с файлом ссылки, в большинстве случаев вам понадобится только один файл в каталоге. В течение удаленной секунды во время выполнения командного файла в нем будет 3 файла, но впоследствии они будут удалены.