检查所有没有 powershell 字母的卷
Chkdsk all volumes without letter from powershell
此命令列出所有卷。
GWMI -namespace root\cimv2 -class win32_volume | FL -property DeviceID
输出:
DeviceID : \?\Volume{5ec9533e-e4e5-4d99-b8ea-a72673554361}\
DeviceID : \?\Volume{c4dc8cf6-0000-0000-0000-100000000000}\
DeviceID : \?\Volume{e3ce6ce0-0000-0000-0000-100000000000}\
DeviceID : \?\Volume{0cc402b6-0000-0000-007e-000000000000}\
DeviceID : \?\Volume{73773d2f-0000-0000-0000-100000000000}\
DeviceID : \?\Volume{c9f9eccc-0000-0000-0000-100000000000}\
DeviceID : \?\Volume{2bf2a75a-0000-0000-0000-100000000000}\
我想 运行 chkdsk 所有卷,所以我在命令后添加了 foreach,但我不能 运行 chkdsk ?
GWMI -namespace root\cimv2 -class win32_volume | FL -property DeviceID | foreach {Write-Host chkdsk FL -property DeviceID /f}
输出
GWMI -namespace root\cimv2 -class win32_volume | FL -property DeviceID | foreach {Write-Host chkdsk FL -property DeviceID /f}
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
我可以为 运行 chkdsk 做什么。
chkdsk "\?\Volume{62f86aa7-0000-0000-0000-100000000000}\" /f
与其使用 ChkDsk,不如使用 PowerShell 替换 Repair-Volume cmdlet。
$Vols = Get-Volume
"There are $($Vols.Count) volumes to process!"
For ($Cntr = 0 ; $Cntr -lt $Vols.Count; $Cntr++) {
Repair-Volume -ObjectId "$($Vols[$($Cntr)].ObjectId)"
}
示例结果:
There are 7 volumes to process!
NoErrorsFound
Repair-Volume : Cannot open drive for direct access
Activity ID: {c776ba79-43f4-4dc7-82cd-2f61273ea4e3}
At G:\BEKDocs\Scripts\Misc\Set-RepairVolumeOnAllVolumes.ps1:7 char:2
+ Repair-Volume -ObjectId "$($Vols[$($Cntr)].ObjectId)"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (StorageWMI:ROOT/Microsoft/...age/
MSFT_Volume) [Repair-Volume], CimException
+ FullyQualifiedErrorId : StorageWMI 43013,Repair-Volume
NoErrorsFound
NoErrorsFound
NoErrorsFound
NoErrorsFound
NoErrorsFound
这是我机器上的卷:
PS> $vols
DriveLetter FriendlyName FileSystemType DriveType HealthStatus OperationalStatu
s
----------- ------------ -------------- --------- ------------ ----------------
NTFS Fixed Healthy OK
D Unknown CD-ROM Healthy Unknown
H Misc NTFS Fixed Healthy OK
C NVME NTFS Fixed Healthy OK
NTFS Fixed Healthy OK
ESP FAT32 Fixed Healthy OK
G Data NTFS Fixed Healthy OK
您注意到 D 驱动器列表中的错误(CD/DVD w/no 光盘)。
您当然可以向命令添加更多参数以满足您的需要。您还可以使用 Try/Catch 块捕获错误。
此命令列出所有卷。
GWMI -namespace root\cimv2 -class win32_volume | FL -property DeviceID
输出:
DeviceID : \?\Volume{5ec9533e-e4e5-4d99-b8ea-a72673554361}\
DeviceID : \?\Volume{c4dc8cf6-0000-0000-0000-100000000000}\
DeviceID : \?\Volume{e3ce6ce0-0000-0000-0000-100000000000}\
DeviceID : \?\Volume{0cc402b6-0000-0000-007e-000000000000}\
DeviceID : \?\Volume{73773d2f-0000-0000-0000-100000000000}\
DeviceID : \?\Volume{c9f9eccc-0000-0000-0000-100000000000}\
DeviceID : \?\Volume{2bf2a75a-0000-0000-0000-100000000000}\
我想 运行 chkdsk 所有卷,所以我在命令后添加了 foreach,但我不能 运行 chkdsk ?
GWMI -namespace root\cimv2 -class win32_volume | FL -property DeviceID | foreach {Write-Host chkdsk FL -property DeviceID /f}
输出
GWMI -namespace root\cimv2 -class win32_volume | FL -property DeviceID | foreach {Write-Host chkdsk FL -property DeviceID /f}
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
chkdsk FL -property DeviceID /f
我可以为 运行 chkdsk 做什么。
chkdsk "\?\Volume{62f86aa7-0000-0000-0000-100000000000}\" /f
与其使用 ChkDsk,不如使用 PowerShell 替换 Repair-Volume cmdlet。
$Vols = Get-Volume
"There are $($Vols.Count) volumes to process!"
For ($Cntr = 0 ; $Cntr -lt $Vols.Count; $Cntr++) {
Repair-Volume -ObjectId "$($Vols[$($Cntr)].ObjectId)"
}
示例结果:
There are 7 volumes to process!
NoErrorsFound
Repair-Volume : Cannot open drive for direct access
Activity ID: {c776ba79-43f4-4dc7-82cd-2f61273ea4e3}
At G:\BEKDocs\Scripts\Misc\Set-RepairVolumeOnAllVolumes.ps1:7 char:2
+ Repair-Volume -ObjectId "$($Vols[$($Cntr)].ObjectId)"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (StorageWMI:ROOT/Microsoft/...age/
MSFT_Volume) [Repair-Volume], CimException
+ FullyQualifiedErrorId : StorageWMI 43013,Repair-Volume
NoErrorsFound
NoErrorsFound
NoErrorsFound
NoErrorsFound
NoErrorsFound
这是我机器上的卷:
PS> $vols
DriveLetter FriendlyName FileSystemType DriveType HealthStatus OperationalStatu
s
----------- ------------ -------------- --------- ------------ ----------------
NTFS Fixed Healthy OK
D Unknown CD-ROM Healthy Unknown
H Misc NTFS Fixed Healthy OK
C NVME NTFS Fixed Healthy OK
NTFS Fixed Healthy OK
ESP FAT32 Fixed Healthy OK
G Data NTFS Fixed Healthy OK
您注意到 D 驱动器列表中的错误(CD/DVD w/no 光盘)。 您当然可以向命令添加更多参数以满足您的需要。您还可以使用 Try/Catch 块捕获错误。