首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Windows:批处理文件:仅以管理员身份运行

Windows:批处理文件:仅以管理员身份运行
EN

Stack Overflow用户
提问于 2013-06-04 02:23:34
回答 3查看 2.3K关注 0票数 1

我有一个批处理文件,可以将应用程序作为Windows服务启动。它被称为start.bat

代码语言:javascript
运行
复制
@ECHO off
START c:\Ruby193\bin\ruby c:\Ruby193\bin\thin start -R c:\coolapp\config.ru -p 4321 -a localhost -e production

我的挑战是,这个程序只有在“以管理员身份运行”并具有管理员权限时才能正常运行。因此,我想添加一行来检查这个脚本是否真的是以管理员权限运行的,并且仅当它是以管理员身份运行时才执行。

我如何在脚本中做到这一点呢?

EN

回答 3

Stack Overflow用户

发布于 2013-06-04 02:40:51

这样的代码可能就是您所需要的:

代码语言:javascript
运行
复制
set isadmin=0
whoami /all | findstr /c:" S-1-16-12288 ">nul && set isadmin=1

这将导致%isadmin%变量为10,具体取决于shell是否以管理员身份运行。

这假设了whoami实用程序的存在,该实用程序不一定在旧版本的视窗系统中可用-我相信它是从Windows Vista开始包含的。

票数 3
EN

Stack Overflow用户

发布于 2013-06-04 02:26:46

有两个选项:

从WSH脚本引发UAC提升,如博客文章Scripting Elevation on Vista.

  • Use触发提示符的外部可执行文件(如Elevate32.exe/Elevate64.exe. )中所述

对于您的场景,#2可能更可取,因为您可以检测提升提示是否已取消(退出代码1223),也可以等待启动的可执行文件完成后再继续(-w参数)。

帐单

票数 1
EN

Stack Overflow用户

发布于 2013-06-04 02:28:09

将脚本转换为VBScript可能会更容易,这样您就可以更容易地检查管理员权限,甚至将脚本提升为管理员。

有关如何在VBScript中进行检查的信息,请参阅此处:VBScript: Check if the script has administrative permissions

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16903308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档