首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Chkdsk所有卷,没有来自powershell的字母

Chkdsk所有卷,没有来自powershell的字母
EN

Stack Overflow用户
提问于 2021-09-19 20:16:59
回答 1查看 88关注 0票数 0

此命令列出所有卷。

代码语言:javascript
复制
GWMI -namespace root\cimv2 -class win32_volume | FL -property  DeviceID 

输出:

代码语言:javascript
复制
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?

代码语言:javascript
复制
GWMI -namespace root\cimv2 -class win32_volume | FL -property  DeviceID | foreach  {Write-Host chkdsk FL -property  DeviceID /f}

输出

代码语言:javascript
复制
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做些什么。

代码语言:javascript
复制
chkdsk "\\?\Volume{62f86aa7-0000-0000-0000-100000000000}\" /f
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-19 21:49:32

请使用PowerShell替换的Repair-Volume cmdlet,而不要使用ChkDsk。

代码语言:javascript
复制
$Vols = Get-Volume

"There are $($Vols.Count) volumes to process!"

For ($Cntr = 0 ; $Cntr -lt $Vols.Count; $Cntr++) {
 
 Repair-Volume -ObjectId "$($Vols[$($Cntr)].ObjectId)"

}

示例结果:

代码语言:javascript
复制
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

下面是我机器上的卷:

代码语言:javascript
复制
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)。当然,您可以向该命令添加更多参数以满足您的需要。您还可以使用Try/Catch块捕获错误。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69246792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档