Board logo

标题: [系统相关] 批处理如何确定当前登录用户是否具有本地管理员权限? [打印本页]

作者: lizhiqiang19    时间: 2009-10-22 15:38     标题: 批处理如何确定当前登录用户是否具有本地管理员权限?

我做了一个用于系统管理的自动化批处理,但其中有一个问题是需要判断当前登录用户的权限是否足够。请问通过什么方式能够判断当前登录的域用户或本地用户具有本地管理员的权限?

[ 本帖最后由 lizhiqiang19 于 2009-10-22 22:04 编辑 ]
作者: bhsx    时间: 2009-10-23 01:03

只在2003测试过...

@for /f "tokens=2 delims=*" %%i in ('net user %USERNAME%^|findstr "本地组成员"') do @echo %%i&pause>nul
作者: lizhiqiang19    时间: 2009-10-23 13:43

楼上,你的方法我试过,对于用本地账户登录的方法可以使用net user 命令将其显示出来并查找。但对于使用域账号登陆时 net user 命令是不能列出该用户的,会提示找不到用户名。
    在使用域用户登录时还可以使用 net  user /domain 命令,在域中查找该用户,但我怎样才能确定他具有本地的administrators权限呢?同时需要考虑该用户的组嵌套情况。我的部分代码如下:
  1. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  2. ::判断当前登陆用户是否有管理员权限,如果没有则注销后重新以管理员登陆
  3. :admin
  4. ECHO ************************判断当前用户权限******************
  5. net user %username% | findstr "*Administrators"
  6. if %errorlevel% equ 1 (echo 当前用户不是本地管理员,请注销后使用有本地管理员权限的用户登录) else (goto DNS)
  7. set /p logoff=现在要注销吗
  8. if /i "%logoff%"=="y" logoff
  9. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  10.         
复制代码
这个只能判断本地账户登录的权限情况,而不能判断登录的域账户在本地的权限情况
作者: zqz0012005    时间: 2009-10-23 19:09

“域账户”这么重要的信息你竟然不在顶楼交待?
作者: 凡凡之呗    时间: 2015-2-8 19:26

回复 5# sinping


    你这个我试了一试,总是提醒普通用户权限!
作者: 凡凡之呗    时间: 2015-2-8 19:30

经过修改,这个好了
@echo off
net user guest /active:yes>nul 2>nul
set a=%errorlevel%
if /i %a% EQU 0 goto :1
if /i %a% EQU 5 goto :2
:2
mshta javascript:window.alert("%a%------------------现用户为普通权限------------------%a%");window.close()
exit
:1
net user guest /active:no>nul 2>nul
mshta javascript:window.alert("%a%------------------现用户为管理员权限------------------%a%");window.close()
exit




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2