身份切换脚本,免登入切换权限的利器

分享一个我曾经写过的功能代码:工具身份切换脚本,主要用于脚本执行期间其他身份(如 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   
    )

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏无所事事者爱嘲笑

mac上配置react-native环境run-ios/run-android命令遇到的问题

16330
来自专栏十月梦想

nodejs+express实现用户登录,注册以及退出操作

先从用户注册说起吧,毕竟注册才能去数据库增加数据,然后在增加校验,本次先从注册===>登录===>退出这个层次顺序说起!接下来看一下用户注册!

29820
来自专栏JavaEE

springboot整合多数据源

38690
来自专栏任浩强的运维生涯

调用redis的时候二维码不断刷新的排查

一、背景和现象。 项目是PHP开发的,点击登录的时候就根据随机数生成了二维码,缓存在了redis。用户用微信扫描了二维码分析出需要请求的链接,然后微信浏览器就请...

37150
来自专栏西安-晁州

解决vuejs应用在nginx非根目录下部署时访问404的问题

35740
来自专栏施炯的IoT开发专栏

Windows Phone SDK 7.1.1 Update正式版发布

     本次更新主要包含了对256M内存设备的支持,包含了256M设备的模拟器,并且更新了512M内存模拟器的版本。      安装此更新,是建立在WP SD...

19370
来自专栏java思维导图

单点登录(SSO),从原理到实现

如果你觉得文字太长,可以直接先看文末思维导图总结,小编已为你整理了作者的主要观点,供你回顾与快速阅读~

3.3K60
来自专栏黑泽君的专栏

【MyEclipse】我们导入的jar包后, 一般没有关联源码, 需要手动进行关联!推荐这种方式。

11550
来自专栏一个爱瞎折腾的程序猿

初次尝试Linux并记录一二

若出现 服务器拒绝了SETP连接,但它监听FTP链接。。。没有安装sshd 解决方案

12410
来自专栏Brian

Linux 基础知识

---- 简要 作为了一个服务端开发人员而言,不仅有强大的内功而且也需要对一些工具和运维方面的知识。Linux毋容置疑是每一个后端开发人员必须熟悉或者精通的“大...

50150

扫码关注云+社区

领取腾讯云代金券