分享一个我曾经写过的功能代码:工具身份切换脚本,主要用于脚本执行期间其他身份(如 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 的执行身份。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
@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
)
|