Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 将用户切换到管理员的批处理脚本_Batch File_Dos - Fatal编程技术网

Batch file 将用户切换到管理员的批处理脚本

Batch file 将用户切换到管理员的批处理脚本,batch-file,dos,Batch File,Dos,我需要以不同的用户身份登录到Windows,然后通过批处理脚本将用户切换到管理员用户。RUNAS windows实用工具对我来说不起作用。有人能帮我吗?RunAs不起作用,因为在(我假设您正在使用)Windows 7中,默认情况下禁用了管理帐户 我发现启动提升的命令提示符(甚至从批处理脚本)最简单的方法是创建提升的快捷方式 First, Right-Click on your desktop and Click "New -> Shortcut" Next type CMD into th

我需要以不同的用户身份登录到Windows,然后通过批处理脚本将用户切换到管理员用户。RUNAS windows实用工具对我来说不起作用。有人能帮我吗?

RunAs
不起作用,因为在(我假设您正在使用)Windows 7中,默认情况下禁用了管理帐户

我发现启动提升的命令提示符(甚至从批处理脚本)最简单的方法是创建提升的快捷方式

First, Right-Click on your desktop and Click "New -> Shortcut"
Next type CMD into the box labled "Type the location of the item:"
Click "Next -> Finish"
现在,您的桌面上有一个名为
CMD.exe
的新快捷方式。接下来

Right Click "CMD.exe -> Properties -> Advanced..."
Check "Run as administrator"
Click "OK -> OK"
现在您有了一个到
C:\Windows\System32\cmd.exe
的快捷方式,它将以管理权限启动
cmd.exe
。现在,您可以将快捷方式移动到任意位置,只需确保它位于PATH变量中的某个位置,这样在调用它时就不必指定它的路径。我有一个用于批处理文件的特殊目录,另一个用于第三方可执行文件。我将我的移动到批处理目录

现在,根据Windows,快捷方式的名称是cmd.exe,但是如果您进入“DOS”,您将能够看到它实际上是名为
cmd.exe.lnk
。我将我的重命名为
cmd.Admin.lnk
,只是为了指定它的功能

您现在可以用几种不同的方式启动它

单击
START Ball
,然后键入:
cmd.exe.lnk
Return(或
cmd.admin.lnk
,以您选择的为准)。
打开命令提示符并键入:
cmd.exe.lnk
Return
将行
cmd.exe.lnk
添加到批处理文件中

您甚至可以传递如下参数:

cmd.admin.lnk "/c echo. & echo %time% & echo. & pause.exe"
cmd.admin.lnk "/c cd /d d:\tmp & x.bat & echo. & echo %time% & echo. & pause.exe"
cmd.admin.lnk "/c title The Shiznit & echo. & echo %date% %time% & echo. & pause.exe"
cmd.admin.lnk "/c title The Shiznit & echo. & echo %date% %time% & echo. & pause.exe & exit 999"
最后一个示例将返回999的
%errorlevel%
。尽管没有其他变量会被传回

注意,我必须将
.exe
放在内部命令
pause
之后。我发现您可以通过这种方式强制执行许多内部命令。甚至
.com
也能工作

最后,与运行方式不同,使用此快捷方式可以做两件事:

首先,它将创建一个弹出窗口,请求以管理权限执行。这与默认禁用管理员帐户一样,是防止恶意程序和脚本运行的安全措施


,如果从命令提示符或批处理文件启动,它将打开另一个
命令解释器窗口。除非您使用
start
启动它,否则调用窗口将等待新窗口关闭,然后继续执行停止的批处理文件或命令解释器。

CPAU.exe是解决此问题的好方法