我正在尝试创建批处理文件以自动执行Sysinternals。 这最终将由Python脚本执行以自动提升程序的凭据(是的,我知道这是不好的做法,是的,有方法可以提供密码到" runas"等等,但是这些解决方案都没有对我有用)
当我以普通用户身份打开命令提示符并键入以下内容时
.\psexec \\my_IP_address -u DOMAIN\my_admin_account -p my_admin_password cmd
我得到了
PsExec v2.0 - Execute processes remotely
Copyright (C) 2001-2013 Mark Russinovich
Sysinternals - www.sysinternals.com
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Windows\system32>
从那里我可以输入
.\psloggedon -l -x \\ip_address_of_remote_computer
屏幕打印结果
PsLoggedon v1.34 - See who's logged on
Copyright (C) 2000-2010 Mark Russinovich
Sysinternals - www.sysinternals.com
Users logged on locally:
DOMAIN\last_user_logged_in
但是当我尝试创建以下批处理文件时
cd pstools
.\psexec \\my_IP_address -u DOMAIN\adminaccount -p adminpasword cmd
cd pstools
.\psloggedon -l -x \\ip_address_of_remote_computer
当我执行批处理文件时,它只执行前两个命令
cd pstools
.\psexec \\my_IP_address -u DOMAIN\adminaccount -p adminpasword cmd
如何让它执行所有命令?
在影响中,我打开一个命令提示符,然后提升权限(我计划将其合并到脚本中)
答案 0 :(得分:0)
这是因为你的psloggedon命令在原始cmd中运行,而不是在新cmd中运行。
您应该将要运行的内容作为cmd的参数传递。例如,这对我有用:
psexec cmd /c "whoami & pause"
所以你也应该做类似的事情,例如:
cd pstools
.\psexec \\my_IP_address -u DOMAIN\adminaccount -p adminpasword cmd /c "cd pstools & psloggedon -l -x \\ip_address_of_remote_computer"
另一个选项,特别是在内部逻辑变得更复杂的情况下非常有用,就是为此创建一个新的批处理文件,并将其作为参数传递给cmd来运行。