遍历所有窗口$users
,并显示来自特定路径的最新.lnk文件!
我尝试导入此模块-https://gist.github.com/picheljitsu/cc2ed99cbae7caad3abb0928cd8a286b
Get-RecentFiles,在使用get-localuser获取用户后,我想用$ users进行迭代
$user = (Get-LocalUser | Select-Object Name) |
ForEach-Object { Get-RecentFiles $user }
应显示所有用户最近目录的最新文件。
Directory: C:\Users\admin\AppData\Roaming\Microsoft\Windows\Recent
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 6/30/2019 6:59 PM AutomaticDestinations
d----- 7/1/2019 3:21 PM CustomDestinations
Directory: C:\Users\user2\AppData\Roaming\Microsoft\Windows\Recent
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 6/30/2019 6:59 PM AutomaticDestinations
d----- 7/1/2019 3:21 PM CustomDestinations
答案 0 :(得分:1)
Get-LocalUser | Select-Object Name
的结果是一组用户。当您将此数组传递到管道时,它将“解包”其项并一次传递一个,该项将被声明为$_
变量。
如果一个函数返回多个值,PowerShell会将它们包装在一个数组中。但是,如果将结果传递给管道内的另一个函数,则管道会自动“解包”数组并一次处理一个数组元素。
ExpandProperty
参数用于将对象属性Name
转换为要在Get-RecentFiles
函数中使用的字符串。
修改您的代码,然后尝试以下操作:
Get-LocalUser | Select-Object -ExpandProperty Name | Foreach-Object {Get-RecentFiles $_}
更新 对于禁用的用户(例如:管理员,访客),上面的代码会出现一些错误。要解决此问题,您只需按以下方式获取已启用的用户:
Get-LocalUser | Where-Object Enabled | Select-Object -ExpandProperty Name | Foreach-Object {Get-RecentFiles $_}