批处理文件中的Runas密码

问题描述 投票:0回答:3

我想运行一个包含 runas 命令的批处理文件。 是否可以在批处理文件中链接密码? 例如: runas /profile /用户\域 PASSWORD 预先感谢您的回答

batch-file runas
3个回答
7
投票

替代解决方案

看起来好像

runas
不允许你做你想要的事情(不会严重损害安全性......见下文)。但是,有一个名为
PsExec
的第三方实用程序,它确实 允许这样做。来自 Sysinternals PsExec 页面

Usage: psexec [\\computer[,computer2[,...] | @file\]][-u user [-p psswd][-n s]
              [-r servicename][-h][-l][-s|-e][-x][-i [session]]
              [-c executable [-f|-v]][-w directory][-d]
              [-<priority>][-a n,n,...] cmd [arguments]

注意:使用

PsExec
的想法来自 Lauren7060 对 Spiceworks 上这个问题的回答)。

所以,类似:

psexec -u MYUSER -p MYPASSWORD MYBATCH.BAT

应该做你想做的事。


什么不起作用

正如您所发现的,

runas
通常会提示用户输入密码。有趣的是,您可以将数据通过管道传输到
runas
:

echo password | runas ...

或从文件重定向输入:

runas ... < PASSWORD.TXT

runas
不会提示输入密码。但是,无论我如何格式化数据,我都无法让 runas 接受密码有效。在后一种情况(从文件重定向)中,我尝试了带行尾和不带行尾的两种方法,但都不起作用。我的
猜测
是管道/重定向足以停止runas
提示
输入密码,但它不会真正stdin读取任何内容。
Tech Torials 网站上的这篇文章
部分支持了这一点,该文章描述了一种方法,您可以使用runas而不提示输入密码,但
如果您将帐户的密码设置为空字符串.

我也找到了如何做到这一点的方法。但不幸的是我找不到任何方法如何在互联网上做到这一点。然后我发现(从自己的)一种方法,您可以在不使用任何第三方软件的情况下做到这一点。您可以通过使用批处理脚本和 vbs 来完成此操作。 首先,我创建了一个 vbs 文件,用于将密码发送到命令提示符并自动按 Enter 键。我有 1 秒的暂停脚本,以便在运行 runas 命令后可以输入密码。 只需创建一个这样的文件:-

1
投票
::创建 vbs 文件来为 runas 命令提供密码:-

echo Set x=CreateObject("wscript.shell")>C:\users\%username%\Desktop\pass.vbs echo wscript.sleep 1000>>C:\users\%username%\Desktop\pass.vbs echo x.sendkeys "<password of user>">>C:\users\%username%\Desktop\pass.vbs echo x.sendkeys "{enter}">>C:\users\%username%\Desktop\pass.vbs start C:\users\%username%\Desktop\pass.vbs runas /user:<Username for which you want> "<File that you want to run>"

您需要两个文件:

0
投票

batch文件。 InputPass.vbs:

Set w=CreateObject("wscript.shell") w.sendkeys "<PASSWORD>" w.sendkeys "{enter}"

StartProg.bat:
start InputPass.vbs
runas /user:<ADMIN OR ANY OTHER USERNAME WITH ADMIN RIGHTS> "<PROGRAM TO EXECUTE>"

之后你可以执行StartProg.bat,就可以了! :D
    

© www.soinside.com 2019 - 2024. All rights reserved.