我正在进行SQL 2008,2012和2014的无人值守自动安装,到目前为止,我正在使用我的批处理命令。我遇到的一个问题是,为了在Windows 10上正确使用每个程序(管理工作室)中的核心功能,它需要以管理员身份运行。
在Windows 10中,这可以通过打开程序快捷方式的文件位置手动完成 - 右键单击 - 属性 - "兼容性"选项卡 - "更改所有用户的设置" - 选中方框"以管理员身份运行此程序"。有没有办法让批处理命令检查该框?这样,员工每次都不需要像管理员那样手动运行它,它只是作为管理员自动打开Management Studio。
我的批处理命令可以在下面找到以自动安装。开头找到安装文件,将sa密码设置为我想要的密码,并从configurationfile.ini文件中提取SQL安装程序的自定义设置。我需要"以管理员身份运行"所有用户都可以在这之后运行。
start "" "%~dp0SQL2008\setup.exe" /SAPWD="XXXXXXXX" /ConfigurationFile="ConfigurationFile.ini" /quiet
答案 0 :(得分:0)
.ccu-faqs .ccu-faq-btn img {
left: 50%;
position: relative;
top: 45%;
width: 24px;
-webkit-transform: translate(-50%, -50%);
-moz-box-shadow: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%); }
代码设置为编写测试条目。测试条目将添加 该文件路径的 Windows XP SP3 和运行方式管理兼容性。
对于实际使用,更改参数以调用标签@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
使用 fullpath 将文件作为第一个参数和
reg_data 兼容性参数作为第二个参数。该
兼容性参数是大写的,并用空格分隔。
标签:reg_compat
将写入新条目或更新条目
添加新的兼容性参数。来自被叫方的:reg_compat
如果errorlevel
失败,则标签设置为0。
如果你只需要那么最小代码:
reg add