Win10資源管理器的文件搜索

  網絡滲透測試     |      2023-03-29 02:36

Win10資源管理器菜單欄一般有「文件、主頁、共享、查看」這幾項,而其他項并不固定,試舉幾例

選中 | 菜單欄
-----+------------------
盤符 |
「管理-驅動器工具」
圖片 |「管理-圖片工具」
EXE  |
「管理-應用程序工具」
音頻 |「播放-音樂工具」
視頻 |
「播放-視頻工具」

在Win10資源管理器中進行文件搜索后,無論是否找到匹配文件,菜單欄將出現「管理-搜索工具」,此時可對「修改日期、類型、大小、其他屬性」進行有限過濾,但非完全可控的過濾機制;在「最近的搜索內容」中有「清除搜索歷史記錄」。

為了調出「搜索工具」,最簡方案是對一個空目錄隨便搜個不存在的文件,搜索將快速結束,同時「搜索工具」出現在菜單欄上。但這樣做意義不大,一旦切換目錄,「搜索工具」又會消失。

我的問題是,有沒有注冊表、組策略,讓「搜索工具」始終出現在菜單欄上,而非搜索發生后動態出現。

D: scz 2023-03-24

LTSB版本Win10只要點擊"搜索框",無須實際搜索,菜單欄就會出現「搜索工具」,此行為與非LTSB版本不同。英文版與中文版的顯示內容可能有細微差別。沒有注冊表、組策略設置使得「搜索工具」永久固定。

Q:

如何搜索大于50KB小于100KB的pyc文件?

A: scz 2023-03-25

在資源管理器搜索框中輸入

*.pyc size:>50KB<100KB  // 英文版
*.pyc size:50KB..100KB

*.pyc 大小:>50KB<100KB  // 中文版
*.pyc 大小:50KB..100KB

此處中英文版關鍵字無法混用。用".."方式時,我未實測是閉區間還是其他什么。

另有命令行方案,下列命令以當前目錄為根,搜索大于等于50KB、小于等于100KB的pyc文件,顯示其絕對路徑與大小

forfiles /p . /s /m *.pyc /c "cmd /c if @fsize geq 51200 if @fsize leq 102400 echo @path @fsize"

cmd的多個if命令之間是邏輯與的關系,邏輯或只能用if/else if/else變相實現。

Q:

如何搜索最后修改時間位于2023/3/1之后大于50KB小于100KB的pyc文件?

A: scz

在資源管理器搜索框中輸入

*.pyc datemodified:>=3/1/2023 size:>50KB<100KB  // 英文版
*.pyc datemodified:>=3/1/2023 size:50KB..100KB

*.pyc 修改日期:>=2023/3/1 大小:>50KB<100KB      // 中文版
*.pyc 修改日期:>=2023/3/1 大小:50KB..100KB

時間格式需用當前系統設定格式,對應"date /t"看到的格式,上面只是示例。

命令行方案

forfiles /p . /s /m *.pyc /d +2023/3/1 /c "cmd /c if @fsize geq 51200 if @fsize leq 102400 echo @path @fsize @fdate @ftime"

"/d -2023/3/1"表示最后修改時間位于2023/3/1之前

Q:

如何搜索最后修改時間位于2023/3/1與2023/3/25之間大于50KB小于100KB的pyc文件?

A: scz

在資源管理器搜索框中輸入

*.pyc datemodified:>=3/1/2023<=3/25/2023 size:>50KB<100KB   // 英文版
*.pyc datemodified:>
=3/1/2023..3/25/2023 size:50KB..100KB

*.pyc 修改日期:>=2023/3/1<=2023/3/25 大小:>50KB<100KB       // 中文版
*.pyc 修改日期:>
=2023/3/1..2023/3/25 大小:50KB..100KB

該需求無法用forfiles實現,/d只允許用一次,@fdate無法進行比較操作。

可用PowerShell腳本達此目的

Get-ChildItem -Path "." -Recurse -Filter "*.pyc" | Where-Object { $_.LastWriteTime -ge '2023-03-01' -and $_.LastWriteTime -le '2023-03-25' -and $_.Length -gt 51200 -and $_.Length -lt 102400 } | Select-Object -Property FullName, Length, LastWriteTime | Format-List *

PowerShell太重型了,forfiles也好不到哪去,DOS批處理或許也可以,但更重型,還是GUI搜索框相對直觀,過去XP的搜索界面更直觀。