在 PowerShell 中,您可以使用一些命令來監控資料夾中的檔案增加和刪除。雖然 Windows 本身不直接記錄這些操作的詳細日誌,您可以使用以下方法來實現:
1. 使用 Get-ChildItem
和 Where-Object
您可以列出資料夾中最近新增或刪除的檔案。以下是一個簡單的示例:
powershellCopy Code
$folderPath = "C:\Your\Folder\Path"
# 獲取最近新增的檔案
$recentlyAddedFiles = Get-ChildItem -Path $folderPath | Where-Object { $_.CreationTime -gt (Get-Date).AddDays(-7) }
$recentlyAddedFiles
# 獲取最近刪除的檔案(需手動維護記錄)
# 此方法僅適用於您手動記錄刪除操作
2. 使用事件檢視器
Windows 的事件檢視器可以記錄檔案系統的活動,但需要啟用稽核策略。步驟如下:
-
啟用檔案和資料夾稽核:
- 右鍵點選您想要監控的資料夾,選擇“屬性”。
- 轉到“安全”選項卡,然後點選“高階”。
- 選擇“稽核”選項卡,點選“新增”並選擇相應的使用者或組。
- 設定“成功”和“失敗”稽核許可權。
-
檢視稽核日誌:
- 開啟事件檢視器(
eventvwr.msc
)。 - 導航到
Windows Logs
>Security
。 - 查詢與檔案建立或刪除相關的事件 ID(例如,檔案建立通常是 4663,檔案刪除也是 4663)。
- 開啟事件檢視器(
3. 使用 PowerShell 監控資料夾
您還可以使用 FileSystemWatcher 類來實時監控資料夾的變化:
powershellCopy Code
$folderPath = "C:\Your\Folder\Path"
$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = $folderPath
$watcher.IncludeSubdirectories = $true
$watcher.NotifyFilter = [System.IO.NotifyFilters]'FileName, LastWrite'
# 定義事件處理程式
$onChange = Register-ObjectEvent $watcher 'Changed' -Action { Write-Host "File changed: $($Event.SourceEventArgs.FullPath)" }
$onDelete = Register-ObjectEvent $watcher 'Deleted' -Action { Write-Host "File deleted: $($Event.SourceEventArgs.FullPath)" }
$onCreate = Register-ObjectEvent $watcher 'Created' -Action { Write-Host "File created: $($Event.SourceEventArgs.FullPath)" }
# 啟動監視
$watcher.EnableRaisingEvents = $true
# 保持指令碼執行
while ($true) { Start-Sleep -Seconds 1 }
注意事項
- 使用事件檢視器的方法需要提前設定稽核,並且可能會導致日誌檔案迅速增大。
- FileSystemWatcher 可以實時監控,但是如果指令碼終止,監控也會停止。
透過以上方法,您可以監控資料夾中的檔案增加和刪除情況。