以管理员身份批量运行所有用户

时间:2018-06-05 12:43:51

标签: sql sql-server-2008 batch-file unattended-processing

我正在进行SQL 2008,2012和2014的无人值守自动安装,到目前为止,我正在使用我的批处理命令。我遇到的一个问题是,为了在Windows 10上正确使用每个程序(管理工作室)中的核心功能,它需要以管理员身份运行。

在Windows 10中,这可以通过打开程序快捷方式的文件位置手动完成 - 右键单击​​ - 属性 - "兼容性"选项卡 - "更改所有用户的设置" - 选中方框"以管理员身份运行此程序"。有没有办法让批处理命令检查该框?这样,员工每次都不需要像管理员那样手动运行它,它只是作为管理员自动打开Management Studio。

我的批处理命令可以在下面找到以自动安装。开头找到安装文件,将sa密码设置为我想要的密码,并从configurationfile.ini文件中提取SQL安装程序的自定义设置。我需要"以管理员身份运行"所有用户都可以在这之后运行。

start "" "%~dp0SQL2008\setup.exe" /SAPWD="XXXXXXXX" /ConfigurationFile="ConfigurationFile.ini" /quiet

1 个答案:

答案 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