5

Мне нужно остановить некоторые службы, поэтому я сделал cmd-файл, но он не работает, потому что он должен работать от имени администратора. Когда я щелкаю правой кнопкой мыши по файлу и выбираю Свойства, я вижу, что "запускать эту программу от имени администратора" отключен. Зачем? Как мне его включить?

UAC включен (но не для затемнения экрана), и для других программ (exe-файлов) этот флажок включен.

3 ответа3

10

В качестве обходного пути вы можете попробовать это.

Создать ярлык для командного файла
Нажмите правой кнопкой мыши на ярлык и выберите свойства
(Игнорируйте параметр на вкладке совместимости, который по-прежнему отключен)
Выберите вкладку Ярлык
Нажмите на Расширенный
Выберите «Запуск от имени администратора»
Нажмите на ОК

1

Я нашел очень полезный командный файл здесь:

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 файла, но впоследствии они будут удалены.

0

Просто попробуйте перейти в собственность файла, right-click на файле.
Выберите Security - и затем вы можете использовать параметры «Изменить» или «Дополнительно» Advance settings чтобы изменить разрешения для файла. Я думаю, что это поможет вам.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .