如何检测当前批处理是否以管理员身份运行?
现在我遇到了一个问题:批处理中有部分命令需要管理员身份才能执行,我不想用户等到命令执行失败,被告知需要管理员身份时才想起要以管理员身份运行,那样会浪费很多时间。
我希望能够有办法检测批处理是否以管理员身份运行,从而在第一时间就告知用户。
又或者批处理一被执行的时候,就立即向用户请求管理员权限,从而解决这个问题。
求各位高手帮忙想想办法,或者是提供一些这方面的资料,谢谢。
------解决方案--------------------runas 直接调用管理员执行... 省去提示信息 如何...
------解决方案--------------------
------解决方案--------------------这个可以尝试一下用NirCMD命令行工具(可到nirsoft.net搜索下载)实现。即在bat中需要以管理员身份才能执行的每个命令行前加入nircmd的以管理员权限启动的命令,命令格式:
NirCMD.exe elevate 程序.exe 参数
需要注意的是,NirCMD的elevate命令仅在win7和2008下有效。
------解决方案--------------------命令提示符
------解决方案--------------------
------解决方案--------------------突破UAC....
呵呵呵 ...这个很闹心...
------解决方案--------------------右键看看属性怎么样
------解决方案--------------------这个东西,没这么复杂吧?net user %username% 不是可以显示当前用户的属性吗,最后就有隶属组别信息的,通过过滤提取看其中是否有 administrators 就可以判断出是否管理员身份了。不过,我对批处理这方面也不熟悉,楼主可以到 xp板块 去看看,那里有批处理高手。
------解决方案--------------------倒不如直接使用 administrator 用户登录。
------解决方案--------------------以其他用户运行你的批处理时,批处理获得的当前用户信息,不是你现在的这个当前用户,而是批处理运行时的那个当前用户,即批处理运行时的用户。