管理员权限执行批处理和静默执行regsvr32注册
@echo off
color 0
REM ________________________________________________________________
>nul 2>&1 “%SYSTEMROOT%\system32\cacls.exe” “%SYSTEMROOT%\system32\config\system”
if ‘%errorlevel%’ NEQ ‘0’ (
echo 请求管理员权限…
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^(“Shell.Application”^) > “%temp%\getadmin.vbs”
echo UAC.ShellExecute “%~s0”, “”, “”, “runas”, 1 >> “%temp%\getadmin.vbs”
“%temp%\getadmin.vbs”
exit /B
:gotAdmin
if exist “%temp%\getadmin.vbs” ( del “%temp%\getadmin.vbs” )
pushd “%CD%”
CD /D “%~dp0”
REM ________________________________________________________________
echo=
echo=
echo 管理员权限已获取,正在执行COM注册******
echo=
regsvr32 ****Com.dll /s
echo 完成****Com.dll注册
echo=
echo .COM组件注册完成。
ping -n 3 127.0.0.1>nul
复制代码
此批处理文件必须和.dll文件放在同一个目录执行。
%cd% 获取当前执行批处理的cmd目录(权限不同目录不同),管理员权限运行目录则为system32
%~dp0 获取当前目录路径
%windir% 获取windows目录路径
%~d0 获取当前盘符
%~sdp0 获取当前盘符和路径的短文件名格式
%~f0 获取此批处理的路径