获取所有打开的资源管理器的报告 windows

get report of all open explorer windows

我想获取所有打开的资源管理器 windows 标题和当前路径的报告。此问题的当前路径部分已用 C# 回答 here,但我想将其用于 powershell,但不确定如何调整它。 我不确定如何显示其中的 window 标题部分。

有人可以帮忙吗。

我觉得你在找这样的东西:

$app = New-Object -COM 'Shell.Application'
$app.Windows() | Select-Object LocationURL

A​​FAICS window objects 没有标题 属性,但您可以通过 window 句柄 ID 从 Get-Process 获取该信息:

function Get-WindowTitle($handle) {
  Get-Process |
    Where-Object { $_.MainWindowHandle -eq $handle } |
    Select-Object -Expand MainWindowTitle
}

$app = New-Object -COM 'Shell.Application'
$app.Windows() |
  Select-Object LocationURL, @{n='Title';e={Get-WindowTitle $_.HWND}}

Ansgar Wiechers' answer 很有帮助,但文件资源管理器 windows 的 标题 不一定包含所显示位置(文件夹)的完整路径.

有点晦涩,就是.Windows()方法返回的windowobject的.Document.Folder.Self.Path属性 Shell.Application 包含完整、本地或 UNC 路径的 COM object

因此,下面列出了所有打开的资源管理器的完整路径windows:

(New-Object -ComObject 'Shell.Application').Windows() | ForEach-Object { 
  $_.Document.Folder.Self.Path 
}

注意:文件资源管理器的 "Quick access" 等特殊位置由 :: 前缀的 GUID 表示;例如,::{679F85CB-0220-4080-B29B-5540CC05AAB6}