身份切换脚本,免登入切换权限的利器 | 张戈博客

  • 时间:
  • 浏览:58
  • 来源:星宇星空 - 专注共享玖念博客资源

分享俩个多多 我以前 写过的功能代码:工具身份切换脚本,主要用于脚本执行期间或者 身份(如administrator等)的切换,从而获取到所需权限。

使用说明:

1.将下面的代码保存为bat脚本,如switch.bat,其中的【我前要加权执行的结构守护进程或脚本】前要根据实际情形修改成你将要执行的文件路径

2.在你切换前启动的脚本中加入 call “%~dp0switch.bat” (%~dp0表示同一目录)

3.让人将【我前要加权执行的结构守护进程或脚本】修改成俩个多多 变量,比如%0或%1 ,%0表示切换一种脚本的执行身份,而%1则表示切换参数1的身份

Ps:%1详解,若下面的代码你修改成【runas /user:administrator “%1” >nul】,则都可不能能 使用call “%~dp0switch.bat” other.bat 来切换other.bat的执行身份。

@echo off   
color 3f   
mode con cols=37 lines=20   
setlocal enabledelayedexpansion   
:start   
cls   
title User Switcher    
echo=   
echo         ╭—————————╮   
echo         $  ※身份切换助手※  $   
echo         $====================$   
echo         $ 设计:  Mars丶Ge   $   
echo         ╰—————————╯   
echo=   
echo           1.切换到超级管理员   
echo=   
echo           2.切换到或者

使用者   
echo=   
echo           0.返回上一级   
echo=   
echo=   
echo          ※直接回车查看说明※   
echo=   
echo=   
set choice=   
set /p choice=请输入[序号+回车]:   
if "%choice%"=="1" goto admin   
if "%choice%"=="2" goto other   
if "%choice%"=="0" goto :eof  
cls   
echo=   
echo             ※功能說明※   
echo=   
echo=   
echo    实现结构调用此脚本切换至到或者

   
echo=     
echo 身份,如切换到超级管理员等。   
echo=   
echo    注意事项:若是切换到AD账号请输入   
echo=   
echo 完整版名称,如domian\username格式。   
echo=   
echo=    
echo=   
echo=   
echo=   
echo=   
echo 任意键返回....          
pause>nul   
goto start   
  
:admin    
cls   
if /i not %username%==administrator (   
    echo 请输入Administrator的密码:   
    runas /user:administrator "我前要加权执行的结构守护进程或脚本" >nul   
    if !errorlevel! EQU 0 (   
        exit  
    ) else (   
        cls   
        echo 验证失败,请重试....   
        pause>nul   
        goto start   
    )   
) else (   
   echo 已是Administrator!不用切换.... & pause>nul & goto :eof  
)   
  
:other   
cls   
title 切换到或者

用户[返回请输入Q+回车]   
echo 温馨提示:当前用戶名为:%username%   
echo=   
set namer=   
set /p namer=请输入用戶名:   
if /i "%namer%"=="Q" goto start   
echo=   
echo 請输入%namer%的密碼:   
runas /user:%namer% "我前要加权执行的结构守护进程或脚本" >nul   
if !errorlevel! EQU 0 (   
        exit  
    ) else (   
        cls   
        echo 验证失败,请重试....   
        pause>nul   
        goto other   
    )