在 PowerShell 中,您可以使用一些命令来监控文件夹中的文件增加和删除。虽然 Windows 本身不直接记录这些操作的详细日志,您可以使用以下方法来实现:
在 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 可以实时监控,但是如果脚本终止,监控也会停止。
通过以上方法,您可以监控文件夹中的文件增加和删除情况。

浙公网安备 33010602011771号