我正在处理一个无人值守的SQL 2008、2012和2014的自动安装,到目前为止,它正在使用我的批处理命令。我遇到的一个问题是,为了在Windows 10上正确地使用每个程序中的核心函数(management ),它需要作为管理员运行。
在Windows 10中,可以手动打开程序快捷方式的文件位置-右键单击-属性-“兼容性”选项卡-“更改所有用户的设置”-选中“以管理员身份运行此程序”框。有没有办法让一个批处理命令选中那个复选框?这样,工作人员就不需要每次都以管理员的身份手动运行它了,它只是自动地以管理员的身份打开Management。
下面可以找到我的批处理命令来自动安装。开始查找安装文件,将sa密码设置为任何我想要的,并从configurationfile.ini文件中提取installation的自定义设置。我需要“运行作为一个管理”的所有用户运行后,这一切。
start "" "%~dp0SQL2008\setup.exe" /SAPWD="XXXXXXXX" /ConfigurationFile="ConfigurationFile.ini" /quiet发布于 2018-06-05 16:19:53
@echo off
setlocal
call :reg_compat "C:\User\Test\test.exe" "WINXPSP3 RUNASADMIN"
if errorlevel 1 echo Registry write failed.
exit /b
:reg_compat fullpath, reg_data
setlocal
set "reg_key=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers"
set "reg_data="
:: Get current registry data.
for /f "tokens=1,2*" %%A in ('2^>nul reg query "%reg_key%" /v "%~1"') do (
if /i "%%~A" == "%~1" set "reg_data=%%~C"
)
:: Write new entry and exit.
if not defined reg_data (
>nul reg add "%reg_key%" /v "%~1" /d "%~2" /f
if errorlevel 1 exit /b 1
exit /b 0
)
:: Copy original registry data.
set "reg_data_original=%reg_data%"
:: Append new data if not in original registry data.
for %%A in (%~2) do (
set "value_exist="
for %%B in (%reg_data_original%) do (
if "%%~A" == "%%~B" set "value_exist=1"
)
if not defined value_exist (
call set "reg_data=%%reg_data%% %%~A"
)
)
:: Continue only if registry data is modified.
if "%reg_data_original%" == "%reg_data%" exit /b 0
:: Write modified entry and exit.
>nul reg add "%reg_key%" /v "%~1" /d "%reg_data%" /f
if errorlevel 1 exit /b 2
exit /b 0代码被设置为编写测试条目。测试条目将添加Windows SP3并作为该文件路径的管理兼容性运行。
对于实际使用,更改参数以调用标签:reg_compat,文件的完整路径作为第一个参数,reg_data兼容性参数作为第二个参数。兼容性参数是大写的,用空格分隔。
标签:reg_compat将通过添加新的兼容性参数来编写新条目或更新条目。如果errorlevel失败,则调用标签中的reg add设置为0。
如果您只需要这样的代码,那么可以使用最少的代码:
@echo off
setlocal
set "reg_key=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers"
reg add "%reg_key%" /v "C:\User\Test\test.exe" /d "WINXPSP3 RUNASADMIN" /fhttps://stackoverflow.com/questions/50700389
复制相似问题