【问题标题】:Batch file to automate Sysinternals execution用于自动化 Sysinternals 执行的批处理文件
【发布时间】:2014-05-21 13:48:25
【问题描述】:

我正在尝试创建批处理文件来自动执行 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

如何让它执行所有命令?

实际上,我正在打开一个命令提示符,然后提升权限(我打算将其合并到脚本中)

【问题讨论】:

    标签: python windows batch-file sysinternals


    【解决方案1】:

    这是因为您的 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 以运行。

    【讨论】:

      猜你喜欢
      • 2016-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-01
      • 2012-07-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多