gpt4 book ai didi

powershell - 如何找出 CMD.exe 进程在远程机器上运行的脚本?

转载 作者:行者123 更新时间:2023-12-03 09:58:23 26 4
gpt4 key购买 nike

我有一个服务器,它有几个关键任务脚本,这些脚本以登录用户的身份在 CMD.exe 窗口中运行。我需要能够单独远程访问这些脚本中的任何一个。

如果我在本地我可以跑

Get-Process | Where-Object {
$_.Name -eq "cmd"
} | ft name, MainWindowTitle

这至少会给我一个关于 CMD.exe 正在做什么的描述。

但是如果我使用任何方法远程运行它(PSSession 或 CIMSession),MainWindowTitle 将不会返回。它永远是空白的。

任何人都可以建议任何其他方法来找出正在通过 PowerShell 远程运行的脚本。

最佳答案

补充Nas' helpful solution :

查询进程的命令行是最好的选择,因为 GUI 相关的属性,例如 MainWindowTitle 在运行期间根本不可用远程处理

但是,命令行是否允许您识别正在运行的脚本(批处理文件)取决于该脚本最初是如何启动的:

  • 如果脚本是从首次单独打开的交互式控制台窗口启动的,您将只会看到 "C:\WINDOWS\system32\cmd.exe" 作为命令行,而不是脚本的路径。

  • 如果脚本是从文件资源管理器或其他 GUI 方法或通过 API 调用启动的,您在命令行中看到脚本文件路径,例如,
    C:\WINDOWS\system32\cmd.exe/c ""C:\Users\jdoe\someScript.cmd""

    • 然而,即便如此,也不一定是当前正在运行的脚本,例如,启动脚本稍后调用了另一个脚本。

相比之下,如果您的脚本启动执行实际工作的外部可执行文件,您最好的选择是直接查询此类可执行进程;例如,如果您的脚本启动 foo.exe,请使用:

(Get-CimInstance -ComputerName $comp -ClassName Win32_Process -Filter "Name = 'foo.exe'").CommandLine

关于powershell - 如何找出 CMD.exe 进程在远程机器上运行的脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52861708/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com