标题: [系统相关] 请教一下,不是管理员用户,可以执行管理 员权限的批处理吗? [打印本页]
作者: swanseabrian 时间: 2021-9-19 08:06 标题: 请教一下,不是管理员用户,可以执行管理 员权限的批处理吗?
请教一下,不是管理员用户,可以执行管理 员权限的批处理吗?
可以以管理员 的权限运行批处理吗。例如删除系统垃圾的的时候,有些需要 管理 员权限才可以执行,谢谢
作者: yd_wangqing 时间: 2021-9-19 09:45
试下这个看可不可以 获取管理员权限
@echo off
setlocal enabledelayedexpansion
rem 获取计算机最高权限
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
echo 请求管理员权限...
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
pushd "%CD%"
CD /D "%~dp0"
作者: cmd1152 时间: 2021-9-20 21:53
测试2楼的代码- @echo off
- setlocal enabledelayedexpansion
- rem 获取计算机最高权限
- >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
- if '%errorlevel%' NEQ '0' (
- echo 请求管理员权限...
- goto UACPrompt
- ) else ( goto gotAdmin )
- :UACPrompt
- echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
- echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
- "%temp%\getadmin.vbs"
- exit /B
- :gotAdmin
- if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
- pushd "%CD%"
- CD /D "%~dp0"
- pause
复制代码
第一种情况
|
C:\Windows\system32\cmd.exe | - □ × |
请按任意键继续...
|
第二种情况
|
C:\Windows\system32\cmd.exe | - □ × |
请求管理员权限...
请按任意键继续...
|
作者: yyz219 时间: 2021-9-21 14:58
试一试下面的
@echo off
::自动以管理员身份运行bat文件
cd /d %~dp0
%1 start "" mshta vbscript:createobject("shell.application").shellexecute("""%~0""","::",,"runas",1)(window.close)&exit
pause
作者: swanseabrian 时间: 2021-10-15 13:37
回复 4# yyz219
这个每次windows都是会提示,不能自动运行,要手动确认一下,可以跳过这个提示吗
作者: ximen 时间: 2021-10-16 21:28
回复 5# swanseabrian
你说的是出现这个界面需要点击是按钮吗?
如果你说的是这个,可以先关闭UAC(用户账户控制)。重启生效!
作者: swanseabrian 时间: 2021-10-16 21:55
回复 6# ximen
是的
作者: kingshui 时间: 2021-10-18 14:43
对于带有powershell的windows 7 以上的系统 ,我发现的最精简的请求以管理员运行的代码如下:- net session >nul 2>&1
- if [%errorlevel%] neq [0] (
- powershell -c "Start-Process \"%0\" -Verb runAs"
- exit
- )
- pushd "%~dp0"
复制代码
当然,如果是要自动点yes的话就没办法了。(除了关闭UAC)
作者: swanseabrian 时间: 2021-10-18 19:29
回复 8# kingshui
powershell是人类的希望啊
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |