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

标签 batch-file powershell ms-office taskmanager

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

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

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

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

能否请您告诉我可以使用什么批处理或 PowerShell 命令来根据名称读取/搜索任务列表(即,获取 Windows 任务管理器的应用程序 Pane 中显示的所有应用程序名称)。

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

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

最佳答案

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

$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"
  }

关于batch-file - 批处理或 PowerShell 命令获取 Windows 中所有打开的应用程序的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21716016/

相关文章:

csv - 对 CSV 文件中的列进行分组并连接另一列的值

powershell - 无法通过Powershell连接到live @ edu

php - 上传excel文件到服务器

c# - 使用 C# 在 Excel 中更改单元格颜色

windows - 将远程 FTP 主机上的文件重命名为命令的输出 (Windows)

batch-file - 如何从单个bat文件中删除多个未知文件夹中的文件?

windows - 连续执行2个批处理脚本

powershell - 项目覆盖方法

excel - 为 Excel 2016 部署/更新内部 Office 加载项的可行方法?

windows - 当我输入结尾有空格的内容时,set/p 崩溃