在 Windows 10 和 11 中,CMD.exe(命令提示符)命令可以根据功能进行分类。以下是一个表格,列出了常见的命令及其分类。

diskpart 全命令 → PowerShell 原生 Storage Cmdlet 完整配套映射链

整体前置逻辑:
 
diskpart.exe 本质是独立控制台 COM 客户端,全程依赖vds.exe(VDS虚拟磁盘服务)完成所有磁盘操作;
 
PowerShell Storage 模块(Microsoft.PowerShell.Storage.Commands.dll)分为两套调用链路:
  1. 首选链路:WMI Storage 命名空间(ROOT\Microsoft\Windows\Storage)MSFT 磁盘类,不依赖 VDS 也可操作;
  2. 兼容链路:内部复用 VDS COM 接口,和 diskpart 底层同源;
     
    二者底层硬件指令完全一致,仅上层会话、参数交互、返回形态不同。

一、diskpart 全局前置操作对应 PS 配套(会话初始化、磁盘选择、环境前置)

1. diskpart 进入交互环境

cmd
 
 
 
diskpart
 
PowerShell 无需交互式 Shell,直接在终端执行存储命令,模块自动加载:
powershell
 
 
 
# 强制加载存储模块(异常场景手动加载)
Import-Module Storage
 

2. diskpart 基础磁盘选择核心映射

表格
 
 
 
diskpart 交互命令 PowerShell 等价命令 配套说明  
list disk Get-Disk 列出全部物理磁盘,DiskNumber、状态、GPT/MBR、只读、Offline  
sel disk X Get-Disk -Number X 选定磁盘(PS 以对象管道传递,无 “选中全局变量”)  
list partition Get-Partition -DiskNumber X 列出指定磁盘所有分区  
sel partition X Get-Partition -DiskNumber X -PartitionNumber X 选中分区对象  
list volume Get-Volume 列出所有逻辑卷(含盘符、文件系统、大小、状态、RAW 识别)  
sel volume X Get-Volume -DriveLetter Z / Get-Volume -Index X 选中逻辑卷  
attributes disk `Get-Disk -Number X Select-Object Number,IsReadOnly,IsOffline` 查看磁盘属性:只读、脱机
attributes disk clear readonly Set-Disk -Number X -IsReadOnly $false 清除磁盘只读标记  
attributes disk set readonly Set-Disk -Number X -IsReadOnly $true 设置磁盘只读  
online disk Set-Disk -Number X -IsOnline $true 脱机磁盘上线  
offline disk Set-Disk -Number X -IsOnline $false 磁盘脱机(虚拟机快照、异地磁盘挂载常用)  

二、磁盘初始化、清空、分区表转换(diskpart 核心初始化链路)

1. clean 清空整盘分区表(全盘擦除分区结构)

diskpart:
plaintext
 
 
 
sel disk X
clean
# 彻底清空扇区 clean all
clean all
 
PowerShell 配套:
powershell
 
 
 
# 快速清空(仅擦分区表头)
Get-Disk X | Clear-Disk -RemoveData -Confirm:$false
# clean all 全盘扇区清零(等同于diskpart clean all)
Get-Disk X | Clear-Disk -RemoveData -RemoveAllData -Confirm:$false
 
配套依赖:Clear-Disk直接调用 VDS 磁盘清零接口,和 diskpart 共用内核IOCTL_DISK_DELETE_DRIVE_LAYOUT控制码。

2. convert gpt /convert mbr 分区表格式转换

diskpart:
plaintext
 
 
 
sel disk X
convert gpt
convert mbr
 
PowerShell:
powershell
 
 
 
# 转为GPT
Initialize-Disk -Number X -PartitionStyle GPT
# 转为MBR
Initialize-Disk -Number X -PartitionStyle MBR
 
配套前置:磁盘必须clean清空后才能转换,和 diskpart 约束完全一致。

三、GPT 标准分区创建(EFI 分区、MSR 保留分区、主数据分区)

diskpart 标准装机分区脚本

plaintext
 
 
 
sel disk X
create partition efi size=100
create partition msr size=16
create partition primary
 
PowerShell 完整等价链式脚本(精准匹配分区类型 GUID、大小、4K 自动对齐)
powershell
 
 
 
$disk = Get-Disk X
# EFI系统分区 GPT固定GUID
New-Partition -Disk $disk -Size 100MB -GptType "{c12a7328-f81f-11d2-ba4b-00a0c93ec93b}"
# MSR微软保留分区
New-Partition -Disk $disk -Size 16MB -GptType "{e3c9e316-0b5c-4db8-817d-f92df00215ae}"
# 剩余全部空间创建主分区
$DataPartition = New-Partition -Disk $disk -UseMaximumSize
 
关键配套优势:New-Partition原生自动 4K 扇区对齐,diskpart 无自动对齐逻辑,容易 SSD 性能异常。

MBR 分区创建(老旧 BIOS 磁盘)

diskpart
plaintext
 
 
 
create partition primary size=50000
create partition extended
create partition logical
 
PowerShell
powershell
 
 
 
# MBR主分区
New-Partition -DiskNumber X -Size 50000MB -MbrType 0x07
# MBR扩展分区、逻辑分区(Storage模块原生支持)
New-Partition -DiskNumber X -Size 100GB -MbrType 0x0F
 

分区删除

diskpart
plaintext
 
 
 
sel partition 1
delete partition override
 
PowerShell
powershell
 
 
 
Get-Partition -DiskNumber X -PartitionNumber 1 | Remove-Partition -Confirm:$false
 

四、分区格式化、文件系统创建(对应 diskpart format + Windows format.exe)

diskpart 内置格式化:
plaintext
 
 
 
sel partition X
format fs=ntfs quick
format fs=exfat
assign letter=Z
 
PowerShell 配套链路(分区→格式化→分配盘符一体化管道)
powershell
 
 
 
# 快速格式化为NTFS
$DataPartition | Format-Volume -FileSystem NTFS -Quick -Confirm:$false
# 完整格式化(坏道检测+全盘清零,无-quick)
$DataPartition | Format-Volume -FileSystem NTFS -Confirm:$false
# exFAT/FAT32格式化
$DataPartition | Format-Volume -FileSystem exFAT -Quick
# 分配盘符Z
$DataPartition | Add-PartitionAccessPath -DriveLetter Z
# 删除盘符
$DataPartition | Remove-PartitionAccessPath -DriveLetter Z
 
配套联动:Format-Volume上层封装 Win32 格式化 API,底层和format.exe、diskpart 格式化共用同一文件系统格式化驱动。

五、卷、盘符、挂载点管理(mountpoint 目录挂载)

表格
 
 
 
diskpart 命令 PowerShell 实现 用途
assign Add-PartitionAccessPath 自动分配空闲盘符
assign mount=C:\MountDisk Add-PartitionAccessPath -AccessPath C:\MountDisk 文件夹挂载(无盘符挂载)
remove letter=Z Remove-PartitionAccessPath -DriveLetter Z 移除盘符
detach vdisk Dismount-VHD 分离 VHD 虚拟磁盘
attach vdisk Mount-VHD 挂载 VHD/VHDX

六、VHD 虚拟磁盘全套(diskpart vdisk 子命令完整映射)

diskpart VHD 操作全集:
plaintext
 
 
 
create vdisk file="D:\disk.vhdx" maximum=50000 type=expandable
attach vdisk
sel vdisk
detach vdisk
 
PowerShell 原生虚拟磁盘命令(Storage 模块原生,无需 diskpart)
powershell
 
 
 
# 创建动态扩展VHDX
New-VHD -Path D:\disk.vhdx -SizeBytes 50GB -Dynamic
# 挂载虚拟磁盘
Mount-VHD -Path D:\disk.vhdx
# 卸载虚拟磁盘
Dismount-VHD -Path D:\disk.vhdx
# 获取VHD磁盘对象
Get-VHD -Path D:\disk.vhdx
 
配套链:VHD 底层由vdisk.sys虚拟磁盘驱动支撑,PS 与 diskpart 调用一致内核驱动。

七、动态磁盘、RAID、镜像卷(diskpart 高级卷操作)

  1. 动态磁盘转换
     
    diskpart:convert dynamic
     
    PowerShell:ConvertTo-DynamicDisk -Number X
  2. 创建条带卷 / 镜像卷
     
    diskpart create volume stripe
     
    PowerShell:New-Volume 配合存储池 / 动态磁盘实现多盘 RAID。

八、boot 启动分区引导修复(diskpart bootsect 配套)

diskpart 常用引导修复:
plaintext
 
 
 
sel volume Z
active
 
PowerShell 设置活动分区(仅 MBR 磁盘生效)
powershell
 
 
 
Get-Partition -DiskNumber X -PartitionNumber 1 | Set-Partition -IsActive $true
 
引导扇区修复(diskpart 无 bootsect,调用外部工具)
 
PS 直接调用bootsect.exe兼容:
powershell
 
 
 
bootsect /nt60 Z: /force
 

九、diskpart 完整运维脚本 → PowerShell 重构对照示例

原版 diskpart 批处理脚本(diskpart.txt 应答文件)

txt
 
 
 
sel disk 1
clean
convert gpt
create partition efi size=100
create partition msr size=16
create partition primary
format fs=ntfs quick
assign letter=D
 

等价 PowerShell 一体化脚本(无交互、对象链式、可判断容错)

powershell
 
 
 
$diskNum = 1
# 清空磁盘
Get-Disk $diskNum | Clear-Disk -RemoveData -Confirm:$false
# GPT初始化
Initialize-Disk -Number $diskNum -PartitionStyle GPT
# EFI分区
New-Partition -DiskNumber $diskNum -Size 100MB -GptType '{c12a7328-f81f-11d2-ba4b-00a0c93ec93b}'
# MSR分区
New-Partition -DiskNumber $diskNum -Size 16MB -GptType '{e3c9e316-0b5c-4db8-817d-f92df00215ae}'
# 数据分区格式化挂载
$mainPart = New-Partition -DiskNumber $diskNum -UseMaximumSize
$mainPart | Format-Volume -FileSystem NTFS -Quick -Confirm:$false
$mainPart | Add-PartitionAccessPath -DriveLetter D
 

十、底层配套依赖总链(diskpart VS PowerShell Storage)

1. diskpart 完整依赖链路

cmd.exe → diskpart.exe(独立进程) → VDS COM接口 → vds.exe服务 → vdsbas.dll/vdsdyn.dll → DeviceIoControl内核磁盘控制码 → disk.sys/stornvme.sys → 物理磁盘
  • 缺点:每次执行重启 diskpart 进程,重复初始化 VDS COM 连接,无状态复用;文本交互无异常对象捕获。

2. PowerShell Storage Cmdlet 依赖链路

pwsh/powershell.exe → Microsoft.PowerShell.Storage.Commands.dll → 双链路自适应
  1. WMI 链路(首选):storwmi.dll → 内核 IO 控制码
  2. VDS 兼容链路(降级):OLE32.dll → VDS COM → vds.exe
  • 优势:PowerShell 会话内 VDS/WMI 长连接复用、管道对象传递、Try/Catch 异常捕获、并行多盘处理。

十一、配套辅助排查命令(二者共用系统工具)

  1. 磁盘坏道检测:chkdsk.exe(PS 可直接调用,或Repair-Volume原生命令)
powershell
 
 
 
Repair-Volume -DriveLetter D -Scan
 
  1. 磁盘空间查询:Get-Volume | Select DriveLetter,SizeRemaining,Size
  2. 存储池运维:Get-StoragePool(diskpart 完全不支持存储空间)

十二、选型使用边界

  1. 老旧 WinPE(无 PowerShell):只能使用 diskpart 应答文件部署;
  2. Windows 10/11、Server 自动化部署、批量硬盘初始化、虚拟机自动化:全部使用 PowerShell Storage 模块;
  3. 临时手动单条磁盘操作:diskpart 上手成本更低。

Windows format.exe 完整对标 PowerShell 命令 + 底层配套全链路拆解

前置总览

CMD format.exe 是独立可执行格式化工具,存在两种使用形态:
  1. CMD 直接执行 format D: /q /fs:ntfs
  2. diskpart 内部 format fs=xxx quick(内部调用 format 底层 API,复用 VDS)
PowerShell 核心对标命令:Format-Volume(Storage 模块原生 Cmdlet,1:1 覆盖 format 全部参数)
 
补充配套:Get-Volume(前置卷识别)、Get-Partition(分区绑定卷)、Clear-Disk(全盘擦除前置)
整体底层共性:二者最终调用 Windows 内核文件系统格式化 API,仅上层参数解析、会话、状态输出、前置校验逻辑不同。

一、format.exe 全部参数 ↔ PowerShell Format-Volume 参数映射表

1. 基础格式化开关对照

表格
 
 
 
CMD format 参数 作用 PowerShell Format-Volume 等价参数
D: 目标盘符 -DriveLetter D
/Q / /QUICK 快速格式化(仅清空文件分配表,不扫描坏道、不清零扇区) -Quick
/FS:NTFS /FS:exFAT /FS:FAT32 指定文件系统 -FileSystem NTFS / exFAT / FAT32 / ReFS
/V:DATA 设置卷标(磁盘名称) -NewFileSystemLabel "DATA"
/A:4096 自定义簇大小(分配单元大小) -AllocationUnitSize 4096
/P:3 全盘 3 次扇区覆写清零(安全擦除) -Full 基础全盘校验 + 搭配 Clear-Disk 实现多轮覆写
/S DOS 系统盘(老旧废弃) 无原生支持,需调用 bootsect.exe
/Y 静默确认,不弹窗提示 -Confirm:$false
/X 强制卸载分区、解除占用,强制格式化 -Force
/R 坏扇区重读恢复(完整格式化坏道检测) -Full 开启完整坏道扫描
/T:tracks / /N:sectors 老旧软盘参数 无对应,已淘汰

2. 最简命令对标示例

CMD format 快速格式化

cmd
 
 
 
format D: /Q /FS:NTFS /V:WorkDisk /Y /X
 

等价 PowerShell

powershell
 
 
 
Format-Volume -DriveLetter D -FileSystem NTFS -Quick -NewFileSystemLabel "WorkDisk" -Force -Confirm:$false
 

CMD 完整全盘格式化(坏道检测)

cmd
 
 
 
format D: /FS:NTFS /Y
 

PowerShell

powershell
 
 
 
Format-Volume -DriveLetter D -FileSystem NTFS -Full -Confirm:$false
 

CMD 全盘 2 次覆写安全格式化

cmd
 
 
 
format D: /FS:NTFS /P:2 /Y
 

PowerShell 实现方案

powershell
 
 
 
# 方式1:格式化前全盘覆写(等价/P)
Get-Volume -DriveLetter D | Get-Partition | Clear-Disk -RemoveAllData -PassThru
# 再格式化
Format-Volume -DriveLetter D -FileSystem NTFS -Quick -Confirm:$false
 

二、完整业务配套链路(格式化全流程:分区→卷→格式化→挂载)

链路 1:Diskpart+Format 老式完整流程

plaintext
 
 
 
diskpart
sel disk 1
create partition primary
assign letter=D
exit
format D: /q /fs:ntfs
 

链路 2:PowerShell 一体化管道链路(无间断对象流转,无字符串解析)

powershell
 
 
 
# 选定磁盘→创建分区→绑定卷→格式化→设置卷标一步到位
Get-Disk 1 | New-Partition -UseMaximumSize | Format-Volume -FileSystem NTFS -Quick -NewFileSystemLabel "Data" -Confirm:$false | Add-PartitionAccessPath -DriveLetter D
 
核心优势:分区对象直接传递给格式化命令,不需要通过盘符字符串匹配,杜绝盘符错乱误格式化。

三、底层依赖解构(format.exe VS Format-Volume)

1. format.exe 依赖链路

plaintext
 
 
 
CMD.exe → format.exe(独立进程)
├─ 调用 kernel32.dll DeviceIoControl
├─ 调用 VDS 服务(vds.exe) 卷格式化接口(diskpart内嵌格式化共用此链路)
├─ 内核下发IRP到对应文件系统驱动:ntfs.sys / fastfat.sys / exfat.sys
└─ 控制台文本进度条实时刷新(高频控制台IO,大硬盘格式化轻微性能损耗)
 
依赖文件:format.exevds.exevdsbas.dllkernel32.dll、文件系统驱动。

2. Format-Volume 依赖链路(双链路自适应)

plaintext
 
 
 
PowerShell进程(powershell.exe/pwsh.exe)
↓
Microsoft.PowerShell.Storage.Commands.dll(存储模块核心程序集)
├─ 主链路:Storage WMI (storwmi.dll) → DeviceIoControl 格式化控制码
├─ 降级链路:VDS COM接口连接vds.exe(WMI异常时自动切VDS,和format底层同源)
↓
内核文件系统驱动(ntfs.sys等)完成格式化写入
↓
以结构化对象输出格式化结果(总大小、簇大小、文件系统、状态)
 
关键区别:
  1. 进程复用:无额外 format.exe 子进程创建,减少进程创建销毁开销;
  2. 进度是结构体数据,而非文本刷屏,大硬盘格式化 CPU 占用更低;
  3. 支持 Try/Catch 捕获格式化异常(磁盘掉线、写保护、分区占用)。

3. 共用底层核心系统 API(二者完全一致)

  1. IOCTL_VOLUME_FORMAT_TRACKING 格式化控制指令
  2. IOCTL_DISK_GET_LENGTH_INFO 获取分区总大小
  3. IOCTL_DISK_SET_DISK_ATTRIBUTES 磁盘属性修改
  4. 文件系统驱动负责构建:MBR/PBR 引导扇区、$MFT、FAT 表、日志文件系统元数据。

四、上下游配套 Cmdlet(Format-Volume 完整配套链)

上游前置命令(格式化前校验 / 准备)

表格
 
 
 
上游命令 作用 配套场景
Get-Disk 获取物理磁盘,判断是否脱机、只读 避免格式化脱机磁盘报错
Set-Disk -IsOnline $true 磁盘上线 离线磁盘先上线才能格式化
Set-Disk -IsReadOnly $false 清除磁盘只读锁 解除磁盘写保护
Get-Partition 定位目标分区 直接基于分区格式化,不依赖盘符
Get-Volume 查看现有卷、判断是否 RAW 格式 仅格式化 RAW 故障分区
Remove-PartitionAccessPath 预先卸载盘符 等同于 format /X 强制解除占用

同模块协同命令

  1. New-Partition:产出分区对象直接管道给 Format-Volume(最常用组合)
  2. Resize-Partition:分区扩容后重新格式化 / 调整文件系统
  3. Repair-Volume:格式化前磁盘坏道修复(对标 chkdsk)

下游后置命令(格式化完成后)

  1. Add-PartitionAccessPath:分配盘符或文件夹挂载点
  2. Set-Volume:后期修改卷标、压缩、碎片整理
  3. Get-Volume | Export-Csv:格式化结果日志落地(审计)

五、特色功能差异化(format.exe 不具备,PowerShell 独有)

1. ReFS 文件系统格式化(服务器存储)

format.exe 不支持 ReFS,Format-Volume 原生支持:
powershell
 
 
 
Format-Volume -DriveLetter E -FileSystem ReFS -Quick
 

2. 基于分区直接格式化(无盘符场景)

磁盘只有分区无盘符,format.exe 无法直接格式化,PS 可以:
powershell
 
 
 
Get-Partition -DiskNumber 2 -PartitionNumber 1 | Format-Volume -FileSystem NTFS -Quick
 

3. 批量并行多盘格式化

powershell
 
 
 
# 并行格式化所有数据盘(跳过系统盘Disk0)
Get-Disk | Where-Object Number -ne 0 | ForEach-Object -Parallel {
    $_ | New-Partition -UseMaximumSize | Format-Volume -FileSystem NTFS -Quick -Confirm:$false
}
 
CMD 的 format 只能串行执行,多硬盘批量格式化耗时成倍增加。

4. 格式化异常容错

powershell
 
 
 
try{
    Format-Volume -DriveLetter D -FileSystem NTFS -Full -Confirm:$false
}
catch{
    Write-Warning "格式化失败:$_"
    # 故障处理:卸载磁盘、跳过坏盘
}
 
CMD format 报错仅返回 ErrorLevel,无法精细化判断故障类型(写保护 / 磁盘离线 / 硬件故障)。

六、特殊场景:RAW 分区修复格式化

CMD 方案

cmd
 
 
 
format D: /q /y
 

PowerShell 精准处理

powershell
 
 
 
# 筛选RAW格式卷直接格式化
Get-Volume | Where-Object FileSystem -eq RAW | Format-Volume -FileSystem NTFS -Quick -Confirm:$false
 

七、故障排查链路对比

format.exe 故障排查链路

命令报错 → 检查 format.exe 完整性 → VDS 服务状态 → 磁盘只读 / 离线 → 磁盘驱动 → 硬件故障

Format-Volume 故障排查链路

命令报错 → 确认 Storage 模块加载 → WMI 存储服务 (storwmi.dll) → VDS 服务降级校验 → 磁盘状态(Get-Disk)→ 分区状态 → 文件系统驱动 → 硬件

八、落地选型总结

  1. 临时手动快速格式化、老旧 PE 无 PowerShell 环境:使用 CMD format
  2. 自动化装机、批量硬盘、服务器 ReFS 部署、无盘符分区格式化、运维日志审计、故障容错脚本:强制使用Format-Volume
  3. 全盘数据安全擦除:PowerShell Clear-Disk -RemoveAllData + Format-Volume 组合,远强于 format /P 覆写。

mountvol.exe 对标 PowerShell 完整命令映射、底层原理、上下游配套全链路

前置总览

mountvol.exe 是 Windows 原生盘符管理、卷挂载点(文件夹挂载)、删除盘符、列出卷 GUID、脱机卷挂载的独立控制台工具,底层依托卷管理器 mountmgr.sys + VDS + 磁盘 IO 控制码
 
PowerShell 核心对标命令集合:
  1. Add-PartitionAccessPath(新增盘符 / 文件夹挂载点,核心等价 mountvol X: /D反向、mountvol 挂载路径
  2. Remove-PartitionAccessPath(删除盘符 / 挂载点,等价 mountvol X: /D
  3. Get-Volume(枚举所有卷、卷 GUID、盘符、挂载状态,等价纯mountvol无参数列举)
  4. Get-Partition(关联分区与卷,定位卷来源)
  5. New-Volume / Set-Volume(辅助卷配置)
底层同源:mountvol.exe 与 PowerShell 存储 Cmdlet 最终调用kernel32.dll::DefineDosDeviceWDeviceIoControl下发挂载控制指令,由内核mountmgr.sys盘符管理器落地。

一、mountvol 全部参数 → PowerShell 精准映射对照表

mountvol 语法总览

cmd
 
 
 
mountvol [盘符:] [挂载路径]
mountvol 盘符: /D       # 删除盘符
mountvol 挂载路径 /D    # 删除文件夹挂载点
mountvol 盘符: /L       # 查询对应卷的唯一GUID路径
mountvol                # 列出全部卷、GUID、盘符、挂载点
mountvol /E             # 启用新建卷自动分配盘符(系统默认开启)
mountvol /N             # 禁用新建卷自动分配盘符
 
表格
 
 
 
mountvol 用法 功能说明 等价 PowerShell 命令  
mountvol(无参数) 列出所有逻辑卷、卷 GUID、已分配盘符、NTFS 文件夹挂载点 `Get-Volume Select DriveLetter,UniqueId,FileSystemLabel,FileSystem`
mountvol Z: C:\Mount\DiskZ 将分区挂载到空 NTFS 文件夹(无盘符挂载) Add-PartitionAccessPath -AccessPath C:\Mount\DiskZ  
mountvol Z: 给分区分配盘符 Z: Add-PartitionAccessPath -DriveLetter Z  
mountvol Z: /D 删除盘符 Z:,卷保留、分区不删除 Remove-PartitionAccessPath -DriveLetter Z -Confirm:$false  
mountvol C:\Mount\DiskZ /D 删除文件夹挂载点 Remove-PartitionAccessPath -AccessPath C:\Mount\DiskZ -Confirm:$false  
mountvol D: /L 查看 D 盘对应卷的\\?\Volume{GUID}\唯一标识 (Get-Volume -DriveLetter D).UniqueId  
mountvol /N 关闭磁盘上新卷自动分配盘符 修改注册表:HKLM:\SYSTEM\CurrentControlSet\Services\MountMgr\NoAutoMount = 1  
mountvol /E 开启磁盘上新卷自动分配盘符 修改注册表:HKLM:\SYSTEM\CurrentControlSet\Services\MountMgr\NoAutoMount = 0  

极简实操等价示例

示例 1:CMD 删除盘符

cmd
 
 
 
mountvol F: /D
 
PowerShell:
powershell
 
 
 
Remove-PartitionAccessPath -DriveLetter F -Confirm:$false
 

示例 2:CMD 将分区挂载至文件夹

cmd
 
 
 
mountvol C:\MountPoint\Data
 
PowerShell:
powershell
 
 
 
# 先获取目标分区,再挂载到目录
$part = Get-Partition -DiskNumber 2 -PartitionNumber 2
$part | Add-PartitionAccessPath -AccessPath "C:\MountPoint\Data"
 

示例 3:查询盘符对应卷 GUID

cmd
 
 
 
mountvol E: /L
 
PowerShell:
powershell
 
 
 
Get-Volume -DriveLetter E | Select UniqueId
 

示例 4:关闭自动盘符分配(服务器磁盘批量挂载常用)

CMD:
cmd
 
 
 
mountvol /N
 
PowerShell:
powershell
 
 
 
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\MountMgr" -Name NoAutoMount -Value 1 -Force
# 生效需重启MountMgr服务或重启主机
Restart-Service MountMgr -Force
 

二、完整业务配套链路(mountvol 经典工作流 ↔ PowerShell 对象化链路)

老式 CMD 完整流程(diskpart+mountvol+format)

cmd
 
 
 
::1.磁盘分区
diskpart
sel disk 1
create partition primary
assign
exit
::2.格式化
format F: /q /fs:ntfs /y
::3.删除盘符,改为文件夹挂载
mountvol F: /D
mkdir C:\DiskMount\Disk1
mountvol C:\DiskMount\Disk1
 

PowerShell 一体化管道链路(全程对象传递,无字符串盘符硬编码)

powershell
 
 
 
# 1.磁盘初始化→分区→格式化
$disk = Get-Disk 1
$part = $disk | New-Partition -UseMaximumSize
$vol = $part | Format-Volume -FileSystem NTFS -Quick -Confirm:$false

# 2.自动分配盘符临时使用(可选)
$part | Add-PartitionAccessPath -DriveLetter F

# 3.移除盘符,挂载至文件夹
$part | Remove-PartitionAccessPath -DriveLetter F -Confirm:$false
# 创建挂载目录
New-Item -Path "C:\DiskMount\Disk1" -ItemType Directory -Force
# 文件夹挂载
$part | Add-PartitionAccessPath -AccessPath "C:\DiskMount\Disk1"
 
核心优势:依靠Partition/Volume对象绑定,不会因为盘符错乱挂载错误磁盘,适配多硬盘、存储池、异地磁盘挂载场景。

三、底层依赖解构:mountvol.exe VS PowerShell AccessPath Cmdlet

1. mountvol.exe 调用链路

plaintext
 
 
 
CMD.exe → mountvol.exe(独立EXE进程)
├─ 调用 kernel32.dll
   ├─ DefineDosDeviceW(盘符映射/删除)
   ├─ DeviceIoControl(IOCTL_VOLUME_ADD_MOUNT_POINT / IOCTL_VOLUME_REMOVE_MOUNT_POINT)
├─ 与系统服务 MountMgr(mountmgr.sys 内核驱动,挂载管理器核心)通信
├─ 可选调用VDS服务枚举卷信息
└─ 控制台文本格式化输出挂载列表
 
依赖核心文件:mountvol.exekernel32.dll、内核驱动mountmgr.sys、注册表HKLM\SYSTEM\CurrentControlSet\Services\MountMgr

2. PowerShell Add/Remove-PartitionAccessPath 调用链路

plaintext
 
 
 
powershell.exe/pwsh.exe
↓
Microsoft.PowerShell.Storage.Commands.dll 存储模块
├─ 主链路:Storage WMI (storwmi.dll) → 封装挂载点Win32 API
├─ 降级链路:VDS COM接口对接vds.exe获取卷信息
↓
kernel32.dll 挂载点系统调用(与mountvol完全一致API)
↓
mountmgr.sys 内核完成盘符注册、文件夹挂载绑定、Dos设备名创建
↓
返回结构化Partition/Volume对象,携带挂载路径属性
 
关键底层差异:
  1. mountvol是纯文本输入输出,需要手动解析盘符、GUID 字符串;PowerShell 直接操作分区对象,无字符串解析损耗;
  2. PowerShell 会话复用 VDS/WMI 连接,多次挂载操作不会重复创建独立进程;
  3. 支持前置校验:分区状态、文件系统是否为 NTFS(文件夹挂载仅支持 NTFS),mountvol非法挂载只会直接报错无前置提示。

共用核心内核控制码

  1. IOCTL_VOLUME_ADD_MOUNT_POINT:新增文件夹挂载点
  2. IOCTL_VOLUME_REMOVE_MOUNT_POINT:删除挂载点
  3. IOCTL_DISK_GET_VOLUME_BITMAP:读取卷唯一 GUID 标识
  4. DefineDosDeviceW:Windows Dos 盘符(C:/D:/Z:)设备映射。

四、上下游完整配套链(AccessPath 系列命令生态)

上游前置依赖(挂载操作前置条件)

表格
 
 
 
上游 Cmdlet 作用 配套场景
Get-Disk 校验磁盘 Online、非只读 离线磁盘无法创建挂载点
Set-Disk -IsOnline $true 上线脱机磁盘 导入外部磁盘、快照磁盘挂载
Get-Partition 精准定位目标分区(推荐) 绕过盘符直接操作,避免盘符冲突
Get-Volume 校验卷已完成格式化(RAW 卷无法挂载文件夹) 防止裸分区挂载失败
New-Item 创建空 NTFS 目录 文件夹挂载必须使用空目录

同模块协同存储命令

  1. Format-Volume:分区格式化后才能正常挂载读写
  2. Clear-Disk:清空磁盘后重建分区 + 挂载
  3. Resize-Partition:分区扩容后挂载路径自动保留,无需重新配置

下游后置配套(挂载完成后运维)

  1. Get-Volume | Select DriveLetter,UniqueId,MountPoints:导出全部挂载点审计清单
  2. Set-Volume:修改卷标、开启 NTFS 压缩
  3. Repair-Volume:挂载后磁盘文件系统修复
  4. Dismount-VHD / Mount-VHD:VHD 虚拟磁盘挂载后配套盘符管理

五、PowerShell 独有增强能力(mountvol 不支持)

1. 批量批量移除所有数据盘盘符(虚拟化快照常用)

powershell
 
 
 
# 排除系统盘Disk0,移除所有硬盘盘符
Get-Disk | Where-Object Number -ne 0 | Get-Partition | Where-Object DriveLetter | ForEach-Object {
    Remove-PartitionAccessPath -DriveLetter $_.DriveLetter -Confirm:$false
}
 
mountvol只能逐个盘符删除,批量需要 FOR 循环解析文本,稳定性差。

2. 根据卷 GUID 直接挂载(异地磁盘、故障磁盘恢复)

通过UniqueId卷 GUID 定位卷,无视盘符:
powershell
 
 
 
$targetVol = Get-Volume | Where-Object UniqueId -match "Volume\{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\}"
$targetVol | Get-Partition | Add-PartitionAccessPath -DriveLetter X
 

3. 挂载操作异常捕获容错

powershell
 
 
 
try {
    Get-Partition -DiskNumber 2 -PartitionNumber 1 | Add-PartitionAccessPath -DriveLetter Z -ErrorAction Stop
}
catch {
    Write-Error "挂载失败:$_"
    # 处理:目录不存在、分区RAW、磁盘写保护
}
 
mountvol仅返回 ERRORLEVEL 错误码,无法区分具体故障类型。

4. 挂载点配置导出备份

powershell
 
 
 
# 导出所有盘符+文件夹挂载配置为CSV备份
Get-Volume | Select DriveLetter,UniqueId,FileSystemLabel,MountPoints | Export-Csv -Path "DiskMountBackup.csv" -NoTypeInformation
 
便于重装系统后恢复挂载结构,mountvol无原生导出能力。

六、特殊场景适配

场景 1:NTFS 文件夹挂载(无盘符磁盘,数据库、存储服务器常用)

  • CMD:需要手动创建目录 +mountvol 路径
  • PS:目录创建 + 挂载一体化,增加前置文件系统校验

场景 2:移动硬盘安全卸载(删除盘符直接拔出)

powershell
 
 
 
# 移除U盘盘符后可直接热插拔
Get-Volume -DriveLetter G | Get-Partition | Remove-PartitionAccessPath -DriveLetter G -Confirm:$false
 

场景 3:关闭自动盘符分配(多盘存储池防止盘符漂移)

使用注册表 + 重启 MountMgr 服务,比mountvol /N更持久稳定,支持开机固化配置。

七、故障排查链路对比

mountvol.exe 故障排查链路

挂载报错 → mountvol.exe 文件完整性 → MountMgr 驱动状态 → 分区是否格式化 → 目录是否为空(文件夹挂载)→ 磁盘只读属性

PowerShell 挂载命令排查链路

命令报错 → Storage 模块加载 → Get-Disk 检查磁盘在线状态 → Get-Volume 校验文件系统 → 挂载目录权限 → MountMgr 内核驱动 → VDS/WMI 服务状态

八、选型落地建议

  1. 临时手动单条挂载 / 删除盘符、老旧 WinPE 无 PowerShell:使用mountvol.exe
  2. 服务器自动化部署、虚拟机磁盘编排、批量挂载管理、挂载配置备份、故障容错脚本:使用Add-PartitionAccessPath / Remove-PartitionAccessPath搭配Get-Volume对象操作;
  3. 存储池、存储空间、虚拟磁盘(VHDX)配套盘符管理,仅 PowerShell 原生适配。

 


在 Windows 10 和 11 中,CMD.exe(命令提示符)命令可以根据功能进行分类。以下是一个表格,列出了常见的命令及其分类。

分类 命令 描述
系统管理命令 chkdsk 检查磁盘并修复错误
  diskpart 磁盘分区管理
  shutdown 关机或重启计算机
  tasklist 列出当前运行的进程
  taskkill 结束指定的进程
  systeminfo 显示计算机的详细配置信息
  sfc 系统文件检查工具,修复损坏的系统文件
文件和目录操作命令 dir 列出目录中的文件和子目录
  copy 复制文件
  del 删除文件
  rename 重命名文件或目录
  move 移动文件或目录
  mkdir 创建新目录
  rmdir 删除目录(如果为空)
  xcopy 复制文件和目录(包括子目录)
网络相关命令 ping 测试网络连接
  ipconfig 显示和配置 IP 配置
  tracert 路由跟踪
  netstat 显示网络连接、路由表和网络接口统计信息
  nslookup 查询 DNS
  net 启动与网络共享、用户、服务相关的命令,如 net user 等
用户账户管理命令 net user 创建、修改或删除用户帐户
  net localgroup 管理本地组
  whoami 显示当前登录的用户名
  runas 使用不同的用户身份运行程序
环境变量与批处理 set 设置环境变量
  echo 显示消息或环境变量
  call 在批处理文件中调用另一个批处理文件
  pause 暂停批处理文件的执行,直到按键
  exit 退出 CMD
硬件和设备管理命令 wmic Windows 管理工具命令,查看硬件、操作系统信息
  driverquery 显示已安装的设备驱动程序
  devmgmt.msc 启动设备管理器
磁盘和文件系统命令 format 格式化磁盘
  defrag 磁盘碎片整理
  fsutil 执行文件系统任务
  vol 显示磁盘卷标和序列号
程序和应用管理命令 start 启动新进程(程序)
  taskkill 强制结束运行中的进程
  exit 退出命令提示符
  assoc 显示或修改文件扩展名关联
时间和日期相关命令 date 显示或设置日期
  time 显示或设置时间
安全性和权限管理命令 icacls 显示、修改文件和目录的权限
  cacls 管理文件权限(已被 icacls 替代)
  takeown 获取文件或文件夹的所有权
  secedit 配置安全策略
错误诊断和日志命令 eventvwr 打开事件查看器
  chkdsk 检查并修复磁盘错误
  sfc 执行系统文件检查
  driverquery 查询系统驱动程序信息
系统资源管理命令 tasklist 显示当前正在运行的进程
  taskkill 结束一个或多个进程
  perfmon 启动性能监视器

 

这些命令是 Windows 命令提示符(CMD.exe)中最常用的命令,它们根据功能被分为不同类别,用于系统管理、文件操作、网络设置、用户管理、安全性、硬件管理等不同任务。


提供更多的 Windows 10 和 11 中常见的 CMD 命令,进一步分类及描述:

分类 命令 描述
磁盘管理命令 diskpart 用于磁盘分区、格式化、删除、调整分区等操作
  chkdsk 检查并修复磁盘上的错误
  format 格式化磁盘或驱动器
  fsutil 进行文件系统管理,如查询磁盘空间、设置硬盘加密等
  mountvol 映射卷路径到一个驱动器或文件夹
硬件和设备管理命令 driverquery 列出已安装的所有驱动程序
  devmgmt.msc 打开设备管理器
  msinfo32 打开系统信息工具,提供关于硬件、操作系统和驱动程序的信息
内存和性能管理命令 tasklist 显示当前运行的所有进程及其资源消耗情况
  taskkill 结束一个或多个进程
  wmic 通过 WMI(Windows Management Instrumentation)接口查询硬件、软件、配置和网络设置
  perfmon 启动性能监视器,查看系统性能数据
远程管理命令 psexec 执行远程系统命令
  mstsc 启动远程桌面连接
  net use 连接、断开或管理网络共享
  telnet 使用 Telnet 协议连接远程主机
服务和进程管理命令 net start 启动服务
  net stop 停止服务
  sc 管理服务,包括启动、停止、配置服务等
  tasklist 显示当前系统运行的所有进程和线程的详细信息
系统日志和事件管理 eventvwr 打开事件查看器,查看应用程序和系统日志
  wevtutil 管理 Windows 事件日志,包括清除日志、导出日志等
用户与组管理命令 net user 创建、删除、修改用户账户
  net localgroup 管理本地用户组
  whoami 显示当前登录的用户名
日期与时间管理命令 date 显示或设置系统日期
  time 显示或设置系统时间
  tzutil 显示或设置时区
文件共享和权限管理命令 net share 配置文件和打印机共享
  net use 连接或断开网络共享
  icacls 查看或更改文件和文件夹的访问控制列表 (ACL) 权限
  cacls 修改文件的访问控制列表(已被 icacls 替代)
安全性命令 secedit 配置和管理安全设置
  cipher 管理加密文件和文件夹的设置
  takeown 获取文件或文件夹的所有权
备份和还原命令 wbadmin 启动备份和还原命令
  backup 启动备份工具
  restore 恢复文件或系统备份
Windows 更新管理命令 wuauclt 启动 Windows 更新检查和安装(Windows Update 客户端)
  ms-settings 打开 Windows 设置界面
系统信息和配置命令 msinfo32 打开系统信息工具,查看硬件和系统配置
  systeminfo 显示关于计算机的详细配置信息
  regedit 打开注册表编辑器
  reg 命令行方式管理 Windows 注册表(查看、导入、导出、修改等)
启动与关闭命令 shutdown 关机、重启或注销计算机
  restart-computer PowerShell 命令,重启计算机
远程管理与连接命令 netstat 显示网络连接状态和端口信息
  telnet 启动 Telnet 客户端,连接远程主机
批处理命令 batch 批处理文件(.cmd)自动化命令的编写
  call 在批处理文件中调用其他批处理文件
  exit 退出命令提示符或批处理文件
  pause 在批处理文件中暂停执行,等待用户输入

这些是一些额外的命令和它们的描述,覆盖了磁盘管理、硬件管理、用户管理、远程管理、系统配置、安全性、备份与恢复等多个方面。命令行工具(CMD)和 PowerShell 都是 Windows 系统管理中强大的工具,能够有效地执行各种操作。根据不同的需求,你可以使用适当的命令来执行任务。


更多的 Windows 10 和 Windows 11 中常见的 CMD 命令,继续按分类进行介绍:

分类 命令 描述
网络和互联网管理命令 ipconfig 显示和管理网络适配器的 IP 地址、子网掩码、默认网关等信息
  ping 测试网络连接,检查与远程计算机或网络设备的连接状态
  tracert 跟踪数据包从本机到目标主机的路径(路由)
  nslookup 查询域名系统(DNS),解析域名和 IP 地址
  netstat 显示网络连接、路由表和网络接口的详细信息
  netsh 配置网络接口、服务和防火墙等设置
  route 显示和管理网络路由表
  ftp 使用 FTP 协议连接和管理远程文件传输
  telnet 使用 Telnet 协议连接远程主机,常用于测试和调试
  net 用于网络命令(如管理用户、共享、服务等)
文件与文件夹操作命令 dir 列出指定目录的文件和文件夹
  cd 切换目录(Change Directory)
  md / mkdir 创建新目录(Make Directory)
  rd / rmdir 删除空目录(Remove Directory)
  del 删除一个或多个文件
  copy 复制文件
  xcopy 复制文件和目录,支持更多的复制选项
  robocopy 高级文件复制工具,支持断点续传和多线程复制
  move 移动文件或目录
  ren 重命名文件或文件夹
压缩和解压命令 compact 显示或压缩文件夹中的文件
  expand 解压缩文件
系统维护命令 sfc 系统文件检查工具,扫描并修复损坏或丢失的系统文件
  dism 使用部署映像服务和管理工具(DISM)来修复 Windows 映像或系统文件
  msconfig 配置启动选项和系统设置,帮助优化启动和排除故障
  chkdsk 检查并修复硬盘上的错误
  shutdown 关机、重启或注销计算机
电源管理命令 powercfg 配置和管理电源设置,创建、查看、修改电源计划
批处理文件命令 echo 在命令行或批处理文件中输出文本或信息
  set 设置或显示环境变量
  for 执行循环操作,遍历文件夹、变量或执行多次命令
  goto 用于在批处理文件中跳转到指定标签
  if 条件判断命令,用于批处理文件中实现条件执行
  call 在批处理文件中调用其他批处理文件
磁盘镜像与备份命令 wbadmin 使用 Windows 备份工具进行备份和恢复
  vssadmin 管理卷影复制服务(VSS)进行备份
Windows 防火墙命令 netsh advfirewall 配置和管理 Windows 防火墙设置
  firewall.cpl 打开 Windows 防火墙设置界面
文件系统命令 fsutil 文件系统实用工具,用于管理磁盘卷、文件和硬盘加密等功能
  attrib 显示或更改文件的属性,例如隐藏、只读、系统文件等
控制面板命令 control 打开控制面板的主界面
  control appwiz.cpl 打开程序和功能(卸载程序界面)
  control panel 打开控制面板
  control /name Microsoft.NetworkAndSharingCenter 打开“网络和共享中心”
安全性和权限命令 icacls 查看和更改文件或文件夹的访问控制列表(ACL)权限
  cacls 修改文件的访问控制列表(已被 icacls 替代)
远程桌面命令 mstsc 启动远程桌面连接,用于远程访问计算机
注册表操作命令 regedit 打开 Windows 注册表编辑器
  reg 操作 Windows 注册表,包括查看、导入、导出和修改
事件查看器命令 eventvwr.msc 打开事件查看器,查看系统、应用程序和安全日志
  wevtutil 管理 Windows 事件日志,包括导出、清理和查询日志
Windows 更新命令 wuauclt 强制启动 Windows 更新检查和安装
  ms-settings windowsupdate 打开 Windows 更新设置界面

这些命令不仅能够帮助你管理和调试系统、文件和网络,还可以提高系统管理效率。尤其在进行故障排查、批处理自动化任务、系统备份、更新管理等方面,掌握这些命令非常有帮助。


继续列出更多的 Windows 10 和 Windows 11 CMD 命令,按不同功能分类:

分类 命令 描述
系统信息命令 systeminfo 显示计算机的详细系统信息,如操作系统版本、内存、网络配置等
  hostname 显示计算机的主机名
  ver 显示 Windows 操作系统的版本信息
  tasklist 显示当前正在运行的所有进程和程序
  taskkill 终止指定进程或程序
磁盘管理命令 diskpart 分区和管理磁盘的工具,可以创建、删除和格式化磁盘分区
  format 格式化磁盘分区
  chkdsk 检查并修复硬盘上的错误
  fsutil 文件系统管理工具,用于管理文件系统特性,如文件加密、磁盘配额等
用户和组管理命令 net user 管理用户账户,添加、修改或删除用户
  net localgroup 管理本地组,查看或修改组成员
  net accounts 查看或修改计算机的密码策略
  net group 管理域组(在域环境下使用)
  net session 查看当前计算机的网络会话
  whoami 显示当前登录用户的用户名
  netsh wlan show profiles 查看已连接的无线网络配置文件
时间和日期命令 date 显示或设置系统的日期
  time 显示或设置系统的时间
  tzutil 显示或设置计算机的时区
打印机和打印任务命令 print 向指定的打印机发送文件
  lpq 显示打印队列中的任务
  lpr 向打印队列发送文件
服务和进程管理命令 sc 控制服务的启动、停止、配置等操作
  net start 启动指定服务
  net stop 停止指定服务
  taskkill /f /im <processname> 强制终止指定进程
内存和性能命令 wmic 使用 Windows Management Instrumentation (WMI) 获取系统信息
  perfmon 启动性能监视器,用于监控系统资源(CPU、内存、磁盘等)
  resmon 启动资源监视器,查看 CPU、内存、磁盘和网络的实时使用情况
驱动程序和硬件管理命令 driverquery 列出系统中安装的所有驱动程序
  pnputil 管理驱动程序包(安装、删除、列出)
脚本与批处理命令 forfiles 按文件时间、名称或其他条件执行命令
  setlocal 在批处理文件中开始局部变量的作用域
  endlocal 结束局部变量作用域
  call 调用另一个批处理文件或命令
应用程序和程序管理命令 start 启动指定的应用程序或打开文件
  assoc 显示或更改文件扩展名的关联程序
  ftype 显示或更改文件类型的程序关联
Windows 更新命令 wuauclt /detectnow 立即检测 Windows 更新
  wuauclt /reportnow 立即报告 Windows 更新状态
磁盘映像和备份命令 wbadmin start backup 开始创建备份
  wbadmin start recovery 执行备份恢复操作
  wbadmin get versions 列出可用的备份版本
事件查看与日志命令 wevtutil qe Application 查询应用程序日志
  wevtutil qe Security 查询安全日志
  wevtutil qe System 查询系统日志
Windows 注册表命令 reg add 向注册表中添加键或值
  reg delete 删除注册表中的键或值
  reg query 查询注册表中的键或值
  reg export 导出注册表的内容到文件
  reg import 从文件导入注册表内容
远程命令和连接命令 mstsc 启动远程桌面连接
  net use 映射网络驱动器或连接网络共享
  psexec 执行远程命令(需要 PsTools 工具集)
  ssh 通过 SSH 协议连接远程计算机(Windows 10/11 中可用)
文件和磁盘恢复命令 recovery 启动 Windows 恢复环境
  restore 恢复系统或文件
文件共享和远程访问命令 net share 查看、创建、删除网络共享
  net use 连接到共享文件夹或打印机
Windows 任务调度命令 schtasks 管理和安排定时任务
调试和故障排除命令 debug 启动调试器,进行系统级调试(通常在低级调试时使用)
  eventcreate 创建自定义事件日志条目

这些命令可以帮助你在 Windows 系统中进行更细致的管理和调试,尤其是在系统管理、性能监控、用户管理、网络诊断和自动化脚本等方面。掌握这些命令对于提高工作效率和解决问题非常有帮助。


 

posted @ 2024-12-28 15:02  suv789  阅读(644)  评论(0)    收藏  举报