• 管理员权限执行批处理和静默执行regsvr32注册


    公司软件部署经常需要注册.com组件,之前的bat批处理需要右键管理员权限运行才行。这里发布一小段命令可以免去这个步骤。

    @echo off
    color 0
    
    REM ________________________________________________________________
    
    >nul 2>&1 "%SYSTEMROOT%system32cacls.exe" "%SYSTEMROOT%system32configsystem"
    
    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           获取此批处理的路径

  • 相关阅读:
    Node.js 回调函数
    算法二、
    一、Perfect Squares 完全平方数
    Never Go Away
    python 内置方法
    web框架详解之tornado 三 url和分页
    web框架详解之tornado 二 cookie
    前端各种插件
    AJAX请求时status返回状态明细表
    LR之-参数化
  • 原文地址:https://www.cnblogs.com/tail-f/p/6723199.html
Copyright © 2020-2023  润新知