Powershell:用Powershell取代Diskpart
#Update @ 2021/04/21:新增移除OEM磁區參數
一直以來都很習慣使用Diskpart來執行磁碟機操作,利用呼叫Diskpart搭配參數給他txt檔,很放便可以做成批次執行。當然用Powershell也能這樣呼叫Diskpart帶參數也可以。不過如果能用Powershell直接對磁碟進行操作當然是更好的。
列出所有磁碟
Get-Disk
列出所有分割區
Get-Partition
列出磁碟 0 的分割區
Get-Partition -DiskNumber 0
清除磁碟【警告:清除之前請確認磁碟號碼】
Get-disk 4 | Clear-Disk -RemoveData
清除磁碟(移除OEM區塊)【警告:清除之前請確認磁碟號碼】
Get-disk 3 | clear-disk -RemoveData -RemoveOEM
建立分割區,使用全部空間
New-Partition -DiskNumber 4 -UseMaximumSize
建立分割區,先使用部分空間32GB,然後再使用剩下空間(分割為兩個磁碟區)
New-Partition -DiskNumber 4 -Size 32GB
New-Partition -DiskNumber 4 -UseMaximumSize
格式化磁碟4分割區1為NTFS
Get-Partition -DiskNumber 4 -PartitionNumber 1 | Format-Volume -FileSystem NTFS
格式化磁碟4分割區2為FAT32
Get-Partition -DiskNumber 4 -PartitionNumber 2 | Format-Volume -FileSystem FAT32
指定磁碟4分割區1磁碟機代號為L指定磁碟4分割區2磁碟機代號為M
Set-Partition -DiskNumber 4 -PartitionNumber 1 -NewDriveLetter L
Set-Partition -DiskNumber 4 -PartitionNumber 2 -NewDriveLetter M
更換磁碟機代號L為Q
Set-Partition -DriveLetter L -NewDriveLetter Q
下面是一段我寫在批次檔裡面使用Diskpart 叫用文字檔當參數的內容
環境大概是主機裡有一顆500G硬碟,已經切了200G做C,剩下的尚未指定。
當下的隨身碟是D,因此我必須先將隨身碟變更磁碟機代號為E,然後將本機硬碟剩下的空間分割為D並快速格式化NTFS,本機硬碟磁區0/1為EFI/還原用保護磁區,磁區3為C,所以選擇磁碟4來分割操作。
select disk 1
select partition 1
assign letter=e
select disk 0
create partition primary
select partition 4
FORMAT FS=NTFS LABEL="DATA" quick
assign letter=d
exit
換成Powershell,兩行搞定
Set-Partition -DriveLetter D -NewDriveLetter E
New-Partition -DiskNumber 0 -UseMaximumSize -IsActive -DriveLetter D | Format-Volume -FileSystem NTFS -NewFileSystemLabel Data
關於MBR / GPT轉換,Powershell預設操作Clear-Disk完就是GPT,要轉回MBR目前看來只能找Diskpart
Select disk 4
convert mbr