读书人

怎么检测当前批处理是否以管理员身份运

发布时间: 2011-12-26 23:09:58 作者: rapoo

如何检测当前批处理是否以管理员身份运行?
现在我遇到了一个问题:批处理中有部分命令需要管理员身份才能执行,我不想用户等到命令执行失败,被告知需要管理员身份时才想起要以管理员身份运行,那样会浪费很多时间。

我希望能够有办法检测批处理是否以管理员身份运行,从而在第一时间就告知用户。
又或者批处理一被执行的时候,就立即向用户请求管理员权限,从而解决这个问题。

求各位高手帮忙想想办法,或者是提供一些这方面的资料,谢谢。



[解决办法]
runas 直接调用管理员执行... 省去提示信息 如何...
[解决办法]

探讨
runas 直接调用管理员执行... 省去提示信息 如何...

[解决办法]
这个可以尝试一下用NirCMD命令行工具(可到nirsoft.net搜索下载)实现。即在bat中需要以管理员身份才能执行的每个命令行前加入nircmd的以管理员权限启动的命令,命令格式:
NirCMD.exe elevate 程序.exe 参数

需要注意的是,NirCMD的elevate命令仅在win7和2008下有效。
[解决办法]
命令提示符
[解决办法]
探讨
即使没有办法直接在批处理中获取管理员权限,那有没有办法检测当前批出理是否以管理员身份运行呢?
我的意思是,在批处理开始的时候检测一下,如果批处理没有以管理员身份运行,就立即告知用户然后退出程序。之后再让用户以管理员身份重新运行批处理,这样也行。

[解决办法]
突破UAC....

呵呵呵 ...这个很闹心...
[解决办法]
右键看看属性怎么样
[解决办法]
这个东西,没这么复杂吧?net user %username% 不是可以显示当前用户的属性吗,最后就有隶属组别信息的,通过过滤提取看其中是否有 administrators 就可以判断出是否管理员身份了。不过,我对批处理这方面也不熟悉,楼主可以到 xp板块 去看看,那里有批处理高手。
[解决办法]
倒不如直接使用 administrator 用户登录。
[解决办法]
以其他用户运行你的批处理时,批处理获得的当前用户信息,不是你现在的这个当前用户,而是批处理运行时的那个当前用户,即批处理运行时的用户。

读书人网 >windows

热点推荐