Win10怎么批量检查文件是否损坏_Win10PowerShell Get-ItemProperty验证文件完整性【排查】
发布时间 - 2025-12-25 00:00:00 点击率:次Win10中可用PowerShell批量排查文件损坏:一、查零长或时间戳异常文件;二、用Get-ItemProperty检NTFS属性冲突(如加密+压缩);三、用Get-FileHash比对已知哈希;四、用chkdsk扫描底层文件系统错误。
如果您在Win10系统中怀疑多个文件可能已损坏,但无法逐一手动校验,可通过PowerShell调用文件属性与元数据信息进行初步完整性排查。Get-ItemProperty本身不直接计算哈希值,但可配合其他cmdlet获取关键属性(如LastWriteTime、Length、Attributes)辅助识别异常文件。以下是多种基于PowerShell的批量检查方法:
一、通过文件长度与最后修改时间筛查异常文件
文件长度为0或最后写入时间早于创建时间,常是损坏或截断的典型迹象。此方法无需额外工具,适用于快速初筛。
1、以管理员身份打开Windows PowerShell。
2、执行以下命令,列出指定路径下所有长度为0的文件:
Get-ChildItem -Path "C:\Your\Target\Folder" -Recurse -File | Where-Object {$_.Length -eq 0} | Select-Object FullName, Length, LastWriteTime
3、执行以下命令,查找LastWriteTime早于CreationTime的文件(极罕见,多见于时间戳被篡改或文件系统异常):
Get-ChildItem -Path "C:\Your\Target\Folder" -Recurse -File | Where-Object {$_.LastWriteTime -lt $_.CreationTime} | Select-Object FullName, CreationTime, LastWriteTime
二、利用Get-ItemProperty读取NTFS文件属性标志
NTFS文件系统为每个文件存储扩展属性(如“已压缩”“加密”“只读”),若关键属性意外丢失或冲突(例如同时标记为“加密”与“已压缩”),可能预示元数据损坏。Get-ItemProperty可提取这些标志用于批量比对。
1、运行命令获取目标目录中所有文件的Attributes属性:
Get-ChildItem -Path "C:\Your\Target\Folder" -Recurse -File | ForEach-Object { $attrs = $_.Attributes; [PSCustomObject]@{ FullName = $_.FullName; Attributes = $attrs; IsReadOnly = $attrs.HasFlag([System.IO.FileAttributes]::ReadOnly); IsEncrypted = $attrs.HasFlag([System.IO.FileAttributes]::Encrypted); IsCompressed = $attrs.HasFlag([System.IO.FileAttributes]::Compressed) } } | Where-Object { $_.IsEncrypted -and $_.IsCompressed } | Select-Object FullName, Attributes
2、重点检查输出中同时显示 IsEncrypted 和 IsCompressed 为 True 的文件,此类组合在标准NTFS中不被支持,属元数据异常。
三、结合Get-FileHash进行真实哈希校验(需已知基准值)
当存在原始文件的可信哈希值(如SHA256列表),可使用Get-FileHash批量比对。此法为最可靠的完整
性验证手段,但依赖预先保存的哈希清单。
1、将已知正确哈希值存为CSV文件(格式:FilePath,ExpectedHash),例如hashlist.csv内容如下:
"C:\Data\report.pdf","A1B2C3D4E5F6..."
2、在PowerShell中导入并逐行校验:
$hashList = Import-Csv "C:\hashlist.csv"; foreach ($item in $hashList) { if (Test-Path $item.FilePath) { $actual = Get-FileHash -Path $item.FilePath -Algorithm SHA256; if ($actual.Hash -ne $item.ExpectedHash) { Write-Output "哈希不匹配:$($item.FilePath)" } } else { Write-Output "文件不存在:$($item.FilePath)" } }
3、校验结果中任何未输出即表示对应文件哈希一致;出现“哈希不匹配”提示则确认该文件内容已变更或损坏。
四、扫描文件系统结构错误(底层扇区级损坏)
若怀疑硬盘物理层或文件系统结构异常(如簇链断裂、MFT损坏),需绕过文件层,直接调用chkdsk扫描。此操作影响系统运行,必须在非系统盘或重启后执行。
1、检查非系统盘(如D:)是否含错误:
chkdsk D: /f /r /x
2、对系统盘C:,需计划下次启动时扫描:
chkdsk C: /f /r /x
3、系统将提示“Chkdsk cannot run because the volume is in use by another process. Would you like to schedule this volume to be checked the next time the system restarts? (Y/N)” —— 输入Y 并回车,重启后自动执行。
# go
# windows
# 硬盘
# 工具
# win10
# csv
# pdf
# win
# csv文件
# win10系统
# Object
# if
# foreach
# select
# Length
# this
# 文件系统
# 比对
# 系统盘
# 重启
# 长度为
# 不匹配
# 早于
# 多个
# 适用于
# 不存在
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
JavaScript模板引擎Template.js使用详解
高端网站建设与定制开发一站式解决方案 中企动力
Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制
油猴 教程,油猴搜脚本为什么会网页无法显示?
android nfc常用标签读取总结
如何获取免费开源的自助建站系统源码?
微信小程序制作网站有哪些,微信小程序需要做网站吗?
Laravel如何操作JSON类型的数据库字段?(Eloquent示例)
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
Laravel storage目录权限问题_Laravel文件写入权限设置
Laravel中的withCount方法怎么高效统计关联模型数量
Laravel如何使用Collections进行数据处理?(实用方法示例)
如何用搬瓦工VPS快速搭建个人网站?
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
如何有效防御Web建站篡改攻击?
悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音
如何在阿里云域名上完成建站全流程?
Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置
Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】
悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】
HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】
如何用5美元大硬盘VPS安全高效搭建个人网站?
如何为不同团队 ID 动态生成多个独立按钮
Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID
Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程
Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】
Java遍历集合的三种方式
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
百度浏览器如何管理插件 百度浏览器插件管理方法
如何挑选最适合建站的高性能VPS主机?
西安专业网站制作公司有哪些,陕西省建行官方网站?
如何快速建站并高效导出源代码?
如何在香港服务器上快速搭建免备案网站?
长沙做网站要多少钱,长沙国安网络怎么样?
Laravel如何使用Eloquent进行子查询
Windows10如何更改计算机工作组_Win10系统属性修改Workgroup
夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化
如何挑选优质建站一级代理提升网站排名?
如何快速生成橙子建站落地页链接?
JavaScript中如何操作剪贴板_ClipboardAPI怎么用
如何用IIS7快速搭建并优化网站站点?
Laravel如何使用withoutEvents方法临时禁用模型事件
详解MySQL数据库的安装与密码配置
Laravel如何记录自定义日志?(Log频道配置)
Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧
Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践
Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程
php结合redis实现高并发下的抢购、秒杀功能的实例
简单实现Android文件上传

