我们有一个命令行实用程序,可以打开服务器上的 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/