我正在尝试创建批处理文件来自动执行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如何让它执行所有命令?
实际上,我打开了一个命令提示符,然后提升了权限(我计划将其合并到脚本中)
发布于 2015-02-15 08:14:36
这是因为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运行,这在内部逻辑变得更加复杂时特别有用。
https://stackoverflow.com/questions/23785165
复制相似问题