Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.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
如何在Windows中以不同的用户身份运行批处理命令,而无需键入密码?_Windows_Batch File - Fatal编程技术网

如何在Windows中以不同的用户身份运行批处理命令,而无需键入密码?

如何在Windows中以不同的用户身份运行批处理命令,而无需键入密码?,windows,batch-file,Windows,Batch File,我试图在windows命令提示符下以一行程序的形式运行一个简单的windows批处理命令,而不必指定密码。用户名为“alex”,因此我正在尝试: >cmd /C echo PASSWD | runas /profile /user:alex "cmd /c dir" 但我得到了以下错误: Enter the password for alex: Attempting to start cmd /c dir as user "ALEX-NEU\alex" .. RUNAS ERROR: U

我试图在windows命令提示符下以一行程序的形式运行一个简单的windows批处理命令,而不必指定密码。用户名为“alex”,因此我正在尝试:

>cmd /C echo PASSWD | runas /profile /user:alex "cmd /c dir"
但我得到了以下错误:

Enter the password for alex:
Attempting to start cmd /c dir as user "ALEX-NEU\alex" ..
RUNAS ERROR: Unable to run - cmd /c dir
1326: Logon failure: unknown user name or bad password.

其中,
ALEX_NEU
是机器名。用户名和提供的密码是正确的-那么我为什么会出现此错误?如何正确执行此操作?

在运行时为运行方式提供密码的唯一方法是使用脚本,但也不是非常优雅。这是丑陋的,它的黑客,它要求安全问题。话虽如此,我在过去使用
WScript.Shell
.run
.SendKeys
方法做过类似的事情,如下所示:

@if (@a==@b) @end /* multiline JScript comment

:: runas.bat
:: runas with automated password entry

@echo off
setlocal enabledelayedexpansion

set "USER=username"
set "PASS=password"
set "CMD=cmd /c dir && pause"

:: delayed expansion prevents special characters from being evaluated
cscript /nologo /e:JScript "%~f0" !USER! !PASS! !CMD!

goto :EOF

:: end batch portion / begin JScript portion */

for (var i=0, args=[]; i<WSH.Arguments.length; i++)
    args.push(WSH.Arguments(i).replace(/"/g, '^"')); // escape all quotes

var user = args[0],
    pass = args[1],
    cmd = ' "' + args.slice(2).join(' ') + '"',
    oShell = new ActiveXObject("Wscript.Shell");

oShell.run('runas /noprofile /netonly /user:' + user + cmd);
WSH.Sleep(500);
oShell.SendKeys(pass + '{ENTER}');
@if(@a==@b)@end/*多行JScript注释
::runas.bat
::具有自动密码输入的运行方式
@回音
延迟扩展
设置“用户=用户名”
设置“通过=密码”
设置“CMD=CMD/c dir&&pause”
::延迟扩展阻止对特殊字符求值
cscript/nologo/e:JScript“%~f0”!用户!通过!指令!
后藤:EOF
::结束批处理部分/开始JScript部分*/
对于(var i=0,args=[];iYou无法。请参阅。您必须编写自己的程序才能按照该博客中的说明执行此操作。这看起来不太可能。如果用户密码位于凭据管理器中,您可以。但是,此问题属于。