EasyNVR摄像机H5流媒体服务器在windows上批处理脚本自动以管理员权限运行
来源:互联网 发布:淘宝网 iphone4 屏 编辑:程序博客网 时间:2024/06/12 14:57
很多时候, 我们需要以管理员权限来运行批处理脚本, 比如操作 windows 服务. EasyNVR 中提供安装服务的批处理脚本, 运行这个bat文件, 自动将 EasyNVR 以 windows 服务的形式安装运行. 这样, 系统重启, 能够保证我们的程序自动启动, 不需要人为干预. 但是, 涉及到 windows 服务的安装, 在 win7 , win10 上面, 需要管理员权限来运行. 早前, 我们做的比较简单, 把程序打包发给客户的时候, 总是提醒客户, 以管理员权限运行 我们的启动脚本.
终于有一天, 我不想再发出 以管理员权限运行 这样的提醒了. 难道就不能自动以管理员权限运行吗? 答案是可以的, 于是有了这本博客.
百度搜索 以管理员权限运行 批处理
, 第一条结果来自知乎, https://www.zhihu.com/question/34541107?sort=created , 我们一开始尝试了知乎网友提供的方案, 测试发现, 知乎网友提供的方案只能在部分机器上运行正常, 另外一部分机器上, 会导致 %~dp0
输出不正常. 于是, 我们放弃了这种方案. 继续寻找.
最终, 我们在 stackoverflow 找到一位叫 Matt 的网友留下的 code. 通过测试, 他提供的 code 完全符合我们的需求. 下面贴出他的代码.
:::::::::::::::::::::::::::::::::::::::::::::: Elevate.cmd - Version 4:: Automatically check & get admin rights:::::::::::::::::::::::::::::::::::::::::::: @echo off CLS ECHO. ECHO ============================= ECHO Running Admin shell ECHO =============================:init setlocal DisableDelayedExpansion set cmdInvoke=1 set winSysFolder=System32 set "batchPath=%~0" for %%k in (%0) do set batchName=%%~nk set "vbsGetPrivileges=%temp%\OEgetPriv_%batchName%.vbs" setlocal EnableDelayedExpansion:checkPrivileges NET FILE 1>NUL 2>NUL if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges ):getPrivileges if '%1'=='ELEV' (echo ELEV & shift /1 & goto gotPrivileges) ECHO. ECHO ************************************** ECHO Invoking UAC for Privilege Escalation ECHO ************************************** ECHO Set UAC = CreateObject^("Shell.Application"^) > "%vbsGetPrivileges%" ECHO args = "ELEV " >> "%vbsGetPrivileges%" ECHO For Each strArg in WScript.Arguments >> "%vbsGetPrivileges%" ECHO args = args ^& strArg ^& " " >> "%vbsGetPrivileges%" ECHO Next >> "%vbsGetPrivileges%" if '%cmdInvoke%'=='1' goto InvokeCmd ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%vbsGetPrivileges%" goto ExecElevation:InvokeCmd ECHO args = "/c """ + "!batchPath!" + """ " + args >> "%vbsGetPrivileges%" ECHO UAC.ShellExecute "%SystemRoot%\%winSysFolder%\cmd.exe", args, "", "runas", 1 >> "%vbsGetPrivileges%":ExecElevation "%SystemRoot%\%winSysFolder%\WScript.exe" "%vbsGetPrivileges%" %* exit /B:gotPrivileges setlocal & cd /d %~dp0 if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul & shift /1) :::::::::::::::::::::::::::: ::START :::::::::::::::::::::::::::: REM 把你需要运行的脚本放到下面就可以了
将我们自己的代码放到上面代码的后面, 就以保证以管理员权限运行了
如果你也在寻找让批处理自动以管员权限运行的方法, 那就试试吧.
阅读全文
0 0
- EasyNVR摄像机H5流媒体服务器在windows上批处理脚本自动以管理员权限运行
- EasyNVR摄像机H5流媒体服务器在windows上批处理脚本自动以管理员权限运行
- Python远程在windows服务器上执行批处理脚本
- VC程序在win7系统上运行,自动获取管理员权限
- VC程序在win7系统上运行,自动获取管理员权限 .
- VC程序在win7系统上运行,自动获取管理员权限
- C#中 以管理员权限运行脚本
- EasyNVR H5无插件摄像机直播解决方案前端解析之:引用videojs无法自动播放
- easyNVR连接easyDSS流媒体服务器
- EasyNVR H5流媒体服务器方案架构设计之视频能力平台
- 基于EasyDarwin框架实现EasyNVR H5无插件直播流媒体服务器方案
- EasyNVR H5无插件RTSP直播方案在Windows server 2012上修复无法定位GetNumaNodeProcessorMaskEx的问题
- 在nginx在windows上搭建流媒体服务器
- Windows 7中怎么在CMD下提权(以管理员权限运行)?
- 设置C#程序在Windows 7 Vista下以管理员权限运行(转)
- EasyNVR视频流媒体服务器直播方案
- EasyNVR H5直播流媒体解决方案前端构建之:如何播放自动适配RTMP/HLS直播播放
- EasyNVR H5无插件摄像机直播解决方案前端解析之:如何在播放界面添加实时云台控制界面
- 模块的概述
- bzoj1924 [Sdoi2010]所驼门王的宝藏(tarjan缩点+拓扑排序+dp)
- Binder(native层)
- 程序员职业生涯全攻略,附神级跳槽攻略图
- Restful接口鉴权认证OAuth
- EasyNVR摄像机H5流媒体服务器在windows上批处理脚本自动以管理员权限运行
- 解决getContext()方法找不到的问题
- iOS Safari 中click点击事件失效的解决办法
- SAP-MM自动记账解析之功能实现(01)
- 第二周第1次课
- Codeforces 219D Choosing Capital for Treeland【思维+树型Dp】
- 【云安全课程】云平台使用安全
- A/B Problem
- oracle 根据时间粒度统计记录数