bat win7 检测程序是否已管理员身份运行

感谢各位的帮助。虽然还是没有找到好的办法来请求管理员权限,但是已经找到了测试当前批处理是否具有管理员权限的办法。

办法1 写入文件法
向System32文件夹写入临时文件,若能写入成功,则说明批处理具有管理员权限,否则说明不具有。
代码如下:
C/C++ code
   
   
@ECHO OFF Rem 创建文件路径 set TempFile_Name =% SystemRoot % \System32\BatTestUACin_SysRt % Random % .batemp echo % TempFile_Name % Rem 写入文件 ( echo " BAT Test UAC in Temp " >% TempFile_Name % ) 1 > nul 2 > nul Rem 判断写入是否成功 if exist % TempFile_Name % ( echo 正在以管理员身份运行当前批处理 ) else ( echo 没有以管理员身份运行当前批处理 ) pause Rem 删除临时文件 del % TempFile_Name % 1 > nul 2 > nul echo 按空格键退出…… pause > nul


方法2 窗口标题判断法
以管理员身份运行的批处理,设置标题后,标题前方会提示 "管理员:  " ,可判断特定窗口标题所对应的进程名是否为cmd.exe 来确认批处理是否以管理员身份运行。代码如下:

C/C++ code
   
   
@echo off title BAT setlocal EnableDELAYEDEXPANSION Rem 设置标志变量 set UAC = 0 Rem 获取tasklist命令输出 For / f " usebackq delims== " %% i In (`tasklist / fi " WINDOWTITLE eq 管理员: BAT " `) Do ( set " cmdline=%%i " set " cmdline=!cmdline:~0,7! " if " !cmdline! " == " cmd.exe " ( set UAC = 1 ) ) if " %UAC% " == " 1 " ( echo 正在以管理员身份运行当前批处理 ) else ( echo 没有以管理员身份运行当前批处理 ) :End pause exit
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值