批处理或 PowerShell 命令以获取 Windows 中所有打开的应用程序的名称

use*_*450 2 powershell batch-file taskmanager ms-office

我们有一个命令行实用程序,可以在服务器上打开 MS Office 文档并将它们转换为 PDF。对于其中包含宏的 Office 文档,将弹出安全警告消息,并且在有人启用宏之前,该实用程序不会继续完成工作。

例如,Visio 文件的警告消息对话框的标题为“Microsoft Visio 安全通知”。我们需要点击启用按钮。

此标题显示在 Windows 任务管理器的应用程序窗格中,但不在进程列表中。

我想编写一个实用程序来在发生这种情况时通知我。

您能否让我知道可以使用哪些批处理或 PowerShell 命令根据名称读取/搜索任务列表(即,获取 Windows 任务管理器的应用程序窗格中显示的所有应用程序名称)。

我试过 tasklist 和 get-process。它们提供有关进程的信息,但不提供应用程序窗口标题的详细信息。

请您分享一种获取应用程序窗口名称列表的方法或一种检查是否有通过脚本打开的安全警告的方法。

mit*_*mus 5

这是一个概念证明。如果需要,您可以实现电子邮件功能或触发器。但实际上,如果您知道窗口标题,则操作起来相当容易。

$vischk = get-process | where-object {$_.mainwindowhandle -ne 0 -and $_.MainWindowTitle -eq "Microsoft Visio Security Notice"} | select-object name, mainwindowtitle

  if (!($vischk)) 
  {
  Write-Warning "Security notice not present"
  } else {
  Write-Warning "This is where you'd do your scripting"
  }
Run Code Online (Sandbox Code Playgroud)