用PowerShell 脚本,用于获取所有硬盘,禁用并删除不包含系统盘及USB设备和系统盘的所有分区,清除磁盘签名,创建风区并格式化
时间: 2024-03-01 10:55:59 浏览: 17
好的,以下是用 PowerShell 脚本来实现你所说的功能:
```powershell
# 获取所有硬盘
$disks = Get-Disk | Where-Object MediaType -eq "Fixed"
# 获取系统盘
$systemDrive = $env:SystemDrive.TrimEnd("\")
$systemDisk = Get-Disk | Where-Object Number -eq (Get-Partition -DriveLetter $systemDrive).DiskNumber
# 禁用并删除不包含系统盘及USB设备和系统盘的所有分区,清除磁盘签名
foreach ($disk in $disks) {
# 跳过系统盘和 USB 设备
$usbDevices = Get-PnpDevice -Class "Win32_DiskDrive" | Where-Object {$_.InterfaceType -eq "USB"}
if (($usbDevices.PNPDeviceID -contains $disk.DeviceID) -or ($disk.Number -eq $systemDisk.Number)) {
continue
}
$driveLetters = Get-Partition -DiskNumber $disk.Number | Select-Object -ExpandProperty DriveLetter
if ($driveLetters) {
$driveLetters | ForEach-Object {
Disable-Partition -DriveLetter $_ -Confirm:$false
Remove-Partition -DriveLetter $_ -Confirm:$false
}
Clear-Disk -Number $disk.Number -RemoveData -Confirm:$false
}
}
# 创建分区并格式化
foreach ($disk in $disks) {
# 跳过系统盘和 USB 设备
if (($usbDevices.PNPDeviceID -contains $disk.DeviceID) -or ($disk.Number -eq $systemDisk.Number)) {
continue
}
New-Partition -DiskNumber $disk.Number -UseMaximumSize -AssignDriveLetter | Format-Volume -FileSystem NTFS -Confirm:$false
}
```
这个脚本首先获取所有硬盘和系统盘,然后禁用并删除不包含系统盘及 USB 设备和系统盘的所有分区,并清除磁盘签名。最后,它会为每个硬盘创建分区并格式化为 NTFS 文件系统。