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文件放在这里,下次开机就会执行该文件