windows10使用Powershell脚本自动初始化磁盘
如下为脚本内容:
1 首先使用get-disk命令检测未被初始化的磁盘,磁盘为被初始化属性会为raw,使用rawdisk变量获取未被初始化的磁盘。
2 判断rawdisk是否有值,如果有,则存在未被初始化磁盘,条件为真,进行下一步。如果空值,则说明系统没有未被初始化的磁盘,输出:没有找到未格式化的磁盘或 RAW 参数不为 True。
3 将磁盘初始化为GPT格式,windows默认MBR格式不支持超过2TB的磁盘,所以建议使用GPT格式,实现可以在windows上使用超过2T的数据盘。
3 在初始化的磁盘上面创建新的分区,这里就默认使用全部空间的。
4 为新建的分区分配驱动器符号,首先进行了一个判断,如果自定义设置的驱动器盘符被占用了,系统则自动顺延未被使用的驱动器符号。如果未被占用,则使用自定义设置的,这里设置了Q盘符
5 脚本运行成功后,会弹出格式化磁盘窗口,无需理会即可,退出窗口即可,然后进入我的电脑即可发现新初始化的磁盘。
$rawDisk = Get-Disk | Where-Object { $_.OperationalStatus -eq 'Offline' -and $_.PartitionStyle -eq 'RAW' } if ($rawDisk) { $diskNumber = $rawDisk.Number # 将磁盘进行初始化为 GPT 格式 Initialize-Disk -Number $diskNumber -PartitionStyle GPT # 在磁盘上创建新分区 $partition = New-Partition -DiskNumber $diskNumber -UseMaximumSize -AssignDriveLetter $driveLetter = $partition.DriveLetter if ($driveLetter -ne 'H') { # 检查驱动器符号是否已被使用 $isDriveLetterUsed = (Get-Partition | Where-Object { $_.DriveLetter -eq 'H' }).Count -gt 0 if ($isDriveLetterUsed) { Write-Host "驱动器符号 H 已被使用,寻找顺延的未使用的驱动器符号。" # 查找未被使用的驱动器符号 $availableDriveLetters = [System.IO.DriveInfo]::GetDrives() | Where-Object { $_.DriveType -eq 'NoRootDirectory' } | ForEach-Object { $_.Name.Substring(0,1) } $availableDriveLetters = $availableDriveLetters | Where-Object { $_ -ge 'I' } if ($availableDriveLetters.Count -gt 0) { $nextAvailableDriveLetter = $availableDriveLetters[0] Write-Host "将驱动器符号修改为 $nextAvailableDriveLetter。" Set-Partition -DriveLetter $driveLetter -NewDriveLetter $nextAvailableDriveLetter $driveLetter = $nextAvailableDriveLetter } else { Write-Host "没有找到顺延的未使用的驱动器符号。" } } else { Write-Host "驱动器符号 Q 未被使用,将驱动器符号修改为 。" Set-Partition -DriveLetter $driveLetter -NewDriveLetter 'H' $driveLetter = 'Q' } } # 格式化分区为 NTFS 文件系统 Format-Volume -DriveLetter $driveLetter -FileSystem NTFS -Confirm:$false } else { Write-Host "没有找到未格式化的磁盘或 RAW 参数不为 True。" }