Powershell Get-ChildItem 从配置文件文件夹中提取用户名

Powershell Get-ChildItem extract username from profile folder

我有存储漫游用户配置文件的驱动器:

U:\Users\john.doe
U:\Users\john.wick
U:\Users\john.smith

我需要检查用户的配置文件中是否存储了扩展名为 *.pdf 的文件

$a = Get-ChildItem "U:\users\" -Include *.pdf -Recurse | select FullName
foreach ($b in $a){

Write-Output $b



}

输出

U:\Users\john.wick\desktop\file.pdf
U:\Users\john.wick\documents\a.pdf
U:\Users\john.doe\desktop.pdf
..................................

我需要写一列从路径中提取用户名,以及一列完整的文件路径。 怎么做?

john.doe
john.wick
--------

调用 Get-ChildItem without -Recurse 来发现配置文件文件夹,然后使用 Where-Object + Get-ChildItem 找到那些包含 pdf:

$profilesWithPDFs = Get-ChildItem U:\Users\ -Directory |Where-Object { $_ |Get-ChildItem -File -Recurse -Filter *.pdf |Select -First 1 }

找到相关文件夹后,您可以只获取名称:

$profilesWithPDFs |ForEach-Object -MemberName Name