Win10下实现以管理员身份开机自启服务
1、刚开始是想着直接把cmd命令
net start VisualSVNServer
放在bat文件中,命名startsvnserver.bat,放在系统启动文件夹中。这样开机自启应该就没问题了。
2、但是这样操作以后,开机之后服务还是没有重启。检查了一下,发现直接双击bat文件是没有办法启动服务的,意味着要右键以管理员身份运行才行,但是这样的话,就只能手动操作了。
3、为了免去每次开机都要手动运行的烦恼,试着在bat文件中添加一些命令,在运行net start VisualSVNServer之前先获得管理员身份,这样就可以执行这个命令了。
下面贴出命令,有需要的直接将这些复制到bat文件中
@echo off
CLS
ECHO.
ECHO ================================
ECHO 获取批处理文件管理员权限
ECHO ================================
:init
setlocal DisableDelayedExpansion
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 请求UAC权限批准
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%"
ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%vbsGetPrivileges%"
"%SystemRoot%\System32\WScript.exe" "%vbsGetPrivileges%" %*
exit /B
:gotPrivileges
setlocal & pushd .
cd /d %~dp0
if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul & shift /1)
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
rem 本行以下添加可你需要的命令
ECHO
net start VisualSVNServer
ECHO.
4、注意:win10的启动文件夹的打开方式为:
win键+R,输入shell:startup
将该bat文件放在这里,下次开机就会执行该文件