ในบทความนี้ เราจะพิจารณาเกี่ยวกับการจัดการดิสก์ พาร์ติชั่น และโวลุ่มจากคอนโซล PowerShell คุณสามารถดำเนินการทั้งหมดจาก PowerShell ในการจัดการดิสก์และพาร์ติชันในเครื่อง ซึ่งคุณคุ้นเคยกับการดำเนินการจาก GUI "การจัดการดิสก์" (diskmgmt.msc) หรือจากเครื่องมือบรรทัดคำสั่ง diskpart.exe cmdlet ของการจัดการดิสก์รวมอยู่ใน ที่เก็บข้อมูล โมดูลที่มีอยู่ใน PowerShell 3.0 เราจะพิจารณาวิธีการเริ่มต้นดิสก์ สร้างตารางพาร์ติชั่นบนดิสก์ สร้างโวลุ่ม และฟอร์แมต คำสั่งด้านล่างจะทำงานใน Windows 10 / Server 2016 และ Windows 8.1 / Server 2012 R2 (สำหรับ Windows เวอร์ชันก่อนหน้า คุณจะต้องอัปเดต PowerShell ก่อน)
มี 160 PowerShell cmdlets ในโมดูลการจัดเก็บข้อมูลใน Windows 10 หากต้องการแสดงคำสั่งที่มีอยู่ทั้งหมดที่เกี่ยวข้องกับการจัดการดิสก์ ให้เรียกใช้คำสั่งต่อไปนี้:
Get-Command -Module Storage
สำคัญ . ระวังให้มากเมื่อจัดการดิสก์และพาร์ติชั่นจาก PowerShell เพื่อไม่ให้ลบหรือฟอร์แมตพาร์ติชั่นที่มีข้อมูลโดยไม่ได้ตั้งใจ
PowerShell:แสดงรายการดิสก์และพาร์ติชันในเครื่อง
ก่อนอื่น ให้ลองแสดงรายการของโลคัลดิสก์ที่มีอยู่ในระบบของคุณในระดับตรรกะ เรียกใช้คำสั่งนี้:
Get-Disk | ft -AutoSize
หากต้องการเลือกเฉพาะดิสก์ระบบที่ติดตั้ง Windows ให้ป้อนคำสั่งต่อไปนี้:
Get-Disk | Where-Object IsSystem -eq $True | fl
อย่างที่คุณเห็น คำสั่งได้ส่งคืนแอตทริบิวต์ต่อไปนี้ของดิสก์ระบบ (คุณสามารถใช้ตัวเลือกเหล่านี้ในการเลือกได้เช่นกัน):
UniqueId : SCSI\DISK&VEN_VMWARE&PROD_VIRTUAL_DISK\5&1EC51BF7&0&000000:DESKTOP-JOPF9 Number : 0 Path : \\?\scsi#disk&ven_vmware&prod_virtual_disk#5&1ec42ba7&0&000000#{21f23456-a6bf-12d0-94f2-001efb8b} Manufacturer : VMware Model : Virtual disk SerialNumber : Size : 98 GB AllocatedSize : 98432321434 LogicalSectorSize : 512 PhysicalSectorSize : 512 NumberOfPartitions : 2 PartitionStyle : MBR IsReadOnly : False IsSystem : True IsBoot : True
คุณสามารถแสดงดิสก์ออฟไลน์เท่านั้น:
Get-Disk | Where-Object IsOffline –Eq $True| ft –AutoSize
หากคุณต้องการข้อมูลเกี่ยวกับฟิสิคัลดิสก์ (ลักษณะและสถานะของฟิสิคัลดิสก์บนคอมพิวเตอร์) ให้ใช้ Get-PhysicalDisk cmdlet (ก่อนหน้านี้เราได้แสดงวิธีตรวจหาฟิสิคัลดิสก์ที่ล้มเหลวใน Storage Spaces Direct โดยใช้ Get-PhysicalDisk cmdlet และวิธีใช้งานจากนั้นกำหนดค่าที่เก็บข้อมูล S2D ที่ทนต่อข้อผิดพลาด)
คุณสามารถตรวจหาประเภทของดิสก์ที่เชื่อมต่อได้:SSD, HDD (โดยปกติจะเชื่อมต่อผ่านบัส SATA) หรือแฟลชไดรฟ์ USB (ประเภทสื่อที่ไม่ระบุ)
DeviceId Model MediaType BusType Size ——— —— ——— ——- —- 0 TOSHIBA MK3775VSXP HDD SATA 500156374016 1 Samsung SSD 840 PRO Series SSD SATA 128060514304 2 Transcend UnSpecified USB 128169757184
คุณสามารถแสดงรายการพาร์ติชั่นบนดิสก์ทั้งหมดได้:
Get-Partition
หรือพาร์ติชั่นบนดิสก์ที่ระบุเท่านั้น:
Get-Partition –DiskNumber 1,2
หากต้องการแสดงรายการโวลุ่มทั้งหมดใน Windows ให้เรียกใช้คำสั่งนี้:
Get-Volume
โปรดทราบว่าการกำหนดหมายเลขดิสก์เริ่มต้นจาก 0 และการกำหนดหมายเลขพาร์ติชัน – จาก 1
การเริ่มต้นดิสก์ใน PowerShell
ในตัวอย่างก่อนหน้านี้ คุณได้เห็นแล้วว่าหนึ่งในดิสก์ออฟไลน์และมีป้ายกำกับ RAW ในคอลัมน์สไตล์พาร์ติชัน มาลองเริ่มต้นกัน สร้างตารางพาร์ติชั่น GPT หรือ MBR และสร้างพาร์ติชั่นใหม่บนมัน
ก่อนอื่น คุณต้องดาวน์โหลดดิสก์ออนไลน์:
Get-Disk | Where-Object IsOffline –Eq $True | Set-Disk –IsOffline $False
ตอนนี้คุณสามารถเริ่มต้นได้ (ดัชนีของมันคือ 1):
Initialize-Disk -Number 1
ตามค่าเริ่มต้น ตารางพาร์ติชั่น GPT (GUID) จะถูกสร้างขึ้นบนดิสก์ แต่ถ้าคุณต้องการ MBR ให้รันคำสั่งนี้:
Initialize-Disk 1 –PartitionStyle MBR
เพื่อไม่ให้ระบุหมายเลขดิสก์ คุณสามารถเริ่มต้นดิสก์ทั้งหมดด้วยตารางพาร์ติชั่น RAW:
Get-Disk | Where-Object PartitionStyle –Eq 'RAW' | Initialize-Disk
จะสร้างพาร์ติชั่นบนดิสก์ได้อย่างไร
ในการสร้างพาร์ติชันใหม่บนดิสก์ พาร์ติชั่นใหม่ ใช้ cmdlet มาสร้างพาร์ติชั่น 10 GB และกำหนดตัวอักษร L:ให้กับมัน:
New-Partition –DiskNumber 1 -Size 10gb -DriveLetter L
หากคุณต้องการให้พาร์ติชันใช้พื้นที่ดิสก์ที่มีอยู่ทั้งหมด ให้ใช้ UseMaximumSize คุณลักษณะ. ในการกำหนดจดหมายโดยอัตโนมัติ AssignDriveLetter ใช้พารามิเตอร์ ( บางครั้ง Windows ไม่ได้กำหนดอักษรระบุไดรฟ์โดยอัตโนมัติ)
New-Partition –DiskNumber 1 -AssignDriveLetter –UseMaximumSize
คุณสามารถเปลี่ยนตัวอักษรที่กำหนดโดยใช้คำสั่งนี้:
Set-Partition –DriveLetter L -NewDriveLetter U
หากคุณต้องการขยายพาร์ติชั่นที่มีอยู่ ก่อนอื่นให้แสดงพื้นที่ว่างที่ไม่ได้ปันส่วนเพื่อขยายพาร์ติชั่นนี้:
Get-PartitionSupportedSize -DriveLetter L | Format-List
จากนั้นคุณสามารถขยายขนาดพาร์ติชั่นให้ใหญ่สุดได้:
$MaxSize = (Get-PartitionSupportedSize -DriveLetter L).SizeMax
Resize-Partition -DriveLetter L -Size $MaxSize
หากคุณต้องการทำให้พาร์ติชันใช้งานได้ คำสั่งนี้จะถูกใช้:
Set-Partition -DriveLetter U -IsActive $true
การจัดรูปแบบพาร์ติชันด้วย PowerShell
มาฟอร์แมตพาร์ติชั่นใหม่ใน NTFS และตั้งฉลากโวลุ่ม DBData:
Format-Volume -DriveLetter L -FileSystem NTFS -NewFileSystemLabel DBData -Confirm:$false
จะลบพาร์ติชั่นออกจากดิสก์ได้อย่างไร
หากต้องการลบพาร์ติชั่นทั้งหมดในดิสก์ 1 และ 2 โดยไม่ต้องมีการยืนยัน ให้รันคำสั่งนี้:
Get-Partition –DiskNumber 1,2 | Remove-Partition -Confirm:$false
หากต้องการลบพาร์ติชั่นทั้งหมดออกจากดิสก์และล้างข้อมูลทั้งหมด ให้รันคำสั่ง
Clear-Disk -Number 1 -RemoveData -Confirm:$false
หากมีพาร์ติชั่น OEM บนดิสก์ (พาร์ติชั่นการกู้คืน OEM, พาร์ติชั่น EFI, System Reserved) ให้ใช้ RemoveOEM พารามิเตอร์ที่จะลบออก:
Clear-Disk -Number 1 -RemoveData –RemoveOEM
One-liner ของ PowerShell ตัวถัดไปจะเริ่มต้นดิสก์ประเภท RAW ที่เชื่อมต่อใหม่ทั้งหมด สร้างตารางพาร์ติชั่นในนั้น และสร้างพาร์ติชั่น NTFS ด้วยขนาดสูงสุดที่พร้อมใช้งาน สะดวกในการใช้เมื่อเชื่อมต่อดิสก์ใหม่:
Get-Disk |Where-Object PartitionStyle -eq 'RAW' |Initialize-Disk -PartitionStyle MBR -PassThru |New-Partition -AssignDriveLetter -UseMaximumSize |Format-Volume -FileSystem NTFS -Confirm:$false