首页 > 系统相关 >SCCM多硬盘部署查找并自动分区、格式化PowerShell脚本

SCCM多硬盘部署查找并自动分区、格式化PowerShell脚本

时间:2022-10-24 12:38:07浏览次数:67  
标签:格式化 Format Partition SCCM Volume diskaa FileSystem new PowerShell

系统盘的盘符在$OSDdisk这个变量里,任务序列中增加2个PS脚本分区任务,分别添加UEFI和BIOS的自动分区脚本。两个脚本是分开的,在文章下面有,不能放错了,UEFI分区时有前面多一个EFI分区。

脚本分区时针对100G以下,128G、256G、500G、1TB以上这几种常用硬盘查找并分区,小于等于256G都只分一个区,500G分2个区,1TB分3个区,系统分区固定200GB。

系统盘放在容量最小的磁盘上,SSD的容量一般都比HDD的小,所以直接通过容量来查找要安装系统的磁盘。脚本自动兼容单硬盘模式,当硬盘只有一个时,按上面容量大小分区。至于分区容量可以根据自己需要修改即可。

注意:如果环境中有SSD比HDD大的情况,这就需要自己另外写个判断了。此脚本会给查找到的所有磁盘重新分区、格式化,绝对要注意只能应用到新电脑任务上,千万不要放在旧电脑重装系统上,由于放错任务序列,数据丢失自行负责。

SCCM多硬盘部署查找并自动分区、格式化PowerShell脚本_powershell脚本分区


#BIOS模式多硬盘自动分区
$numdisk = (get-PhysicalDisk | measure).Count
$TSEnv = New-Object -COMObject Microsoft.SMS.TSEnvironment
$OSDdisk = ""
$diskdx = Get-PhysicalDisk | sort size | Select-Object -ExpandProperty DeviceID -first 1
if($numdisk -ge 2 ){
Write-Host "多硬盘"
$b = Get-Disk
foreach ( $diskaa in $b ) {
$disksize = $diskaa.size/1gb
if ($disksize -lt "100" ) { #100G以下硬盘分区
$diskaa |Clear-Disk -RemoveData -Confirm:$false
Initialize-Disk -number $diskaa.Number -PartitionStyle MBR -PassThru
$diskbb = get-Partition $diskaa.Number
$diskbb |Remove-Partition -Confirm:$false
$diskaa |new-Partition -UseMaximumSize -AssignDriveLetter -IsActive |Format-Volume -FileSystem NTFS -NewFileSystemLabel system
}
if ($disksize -ge "110" -or $diskaa.size -le "150" ) { #128G下硬盘分区
$diskaa |Clear-Disk -RemoveData -Confirm:$false
Initialize-Disk -number $diskaa.Number -PartitionStyle MBR -PassThru
$diskbb = get-Partition $diskaa.Number
$diskbb |Remove-Partition -Confirm:$false
$diskaa |new-Partition -UseMaximumSize -AssignDriveLetter -IsActive |Format-Volume -FileSystem NTFS -NewFileSystemLabel system
}
if ($disksize -ge "200" -or $diskaa.size -le "300" ) { #256G硬盘分区
$diskaa |Clear-Disk -RemoveData -Confirm:$false
Initialize-Disk -number $diskaa.Number -PartitionStyle MBR -PassThru
$diskbb = get-Partition $diskaa.Number
$diskbb |Remove-Partition -Confirm:$false
$diskaa |new-Partition -UseMaximumSize -AssignDriveLetter -IsActive |Format-Volume -FileSystem NTFS -NewFileSystemLabel system
}
if ($disksize -ge "400" -or $diskaa.size -le "600" ) { #1TB以下硬盘分区
$diskaa |Clear-Disk -RemoveData -Confirm:$false
Initialize-Disk -number $diskaa.Number -PartitionStyle MBR -PassThru
$diskbb = get-Partition $diskaa.Number
$diskbb |Remove-Partition -Confirm:$false
if ($diskaa.Number -eq $diskdx) {
$diskaa |new-Partition -Size ($diskaa.size/2) -AssignDriveLetter -IsActive | Format-Volume -FileSystem NTFS
$diskaa |new-Partition -UseMaximumSize -AssignDriveLetter |Format-Volume -FileSystem NTFS
}else{
$diskaa |new-Partition -Size ($diskaa.size/2) -AssignDriveLetter | Format-Volume -FileSystem NTFS
$diskaa |new-Partition -UseMaximumSize -AssignDriveLetter |Format-Volume -FileSystem NTFS
}
}
if ($disksize -ge "900" ) { #1TB以上硬盘分区
$diskaa |Clear-Disk -RemoveData -Confirm:$false
Initialize-Disk -number $diskaa.Number -PartitionStyle MBR -PassThru
$diskbb = ""
$diskbb = get-Partition $diskaa.Number
$diskbb |Remove-Partition -Confirm:$false
$diskaa |new-Partition -Size ($diskaa.size/3) -AssignDriveLetter | Format-Volume -FileSystem NTFS
$diskaa |new-Partition -Size ($diskaa.size/3) -AssignDriveLetter |Format-Volume -FileSystem NTFS
$diskaa |new-Partition -UseMaximumSize -AssignDriveLetter |Format-Volume -FileSystem NTFS
}
}
}
else {
Write-Host "单硬盘"
$diskaa = Get-Disk
$disksize = $diskaa.size/1gb
if ($disksize -le "150" ) {
$diskaa |Clear-Disk -RemoveData -Confirm:$false
Initialize-Disk -number $diskaa.Number -PartitionStyle MBR -PassThru
$diskbb = get-Partition $diskaa.Number
$diskbb |Remove-Partition -Confirm:$false
$diskaa |new-Partition -UseMaximumSize -AssignDriveLetter -IsActive |Format-Volume -FileSystem NTFS -NewFileSystemLabel system
}
if ($disksize -ge "150" -and $diskaa.size -le "300" ) {
$diskaa |Clear-Disk -RemoveData -Confirm:$false
Initialize-Disk -number $diskaa.Number -PartitionStyle MBR -PassThru
$diskbb = get-Partition $diskaa.Number
$diskbb |Remove-Partition -Confirm:$false
$diskaa |new-Partition -Size 200GB -AssignDriveLetter -IsActive | Format-Volume -FileSystem NTFS -NewFileSystemLabel system
$diskaa |new-Partition -UseMaximumSize -AssignDriveLetter |Format-Volume -FileSystem NTFS
}
if ($disksize -ge "300" ) {
$diskaa |Clear-Disk -RemoveData -Confirm:$false
Initialize-Disk -number $diskaa.Number -PartitionStyle MBR -PassThru
$diskbb = ""
$diskbb = get-Partition $diskaa.Number
$diskbb |Remove-Partition -Confirm:$false
$diskaa |new-Partition -Size 200GB -AssignDriveLetter -IsActive| Format-Volume -FileSystem NTFS -NewFileSystemLabel system
$diskaa |new-Partition -Size (($diskaa.size-"200GB")/2) -AssignDriveLetter | Format-Volume -FileSystem NTFS
$diskaa |new-Partition -UseMaximumSize -AssignDriveLetter | Format-Volume -FileSystem NTFS
}
}
$diskpar = ((Get-Partition -DiskNumber $diskdx )|where-Object{$_.Type -eq "basic"}).DriveLetter[0]
$OSDdisk = "$diskpar"+":"
$tsenv.Value("OSDdisk") = "$OSDdisk"



#UEFI模式多硬盘自动分区
$numdisk = (Get-PhysicalDisk | measure).count
$TSEnv = New-Object -COMObject Microsoft.SMS.TSEnvironment
$OSDdisk = ""
$diskdx = Get-PhysicalDisk | sort size | Select-Object -ExpandProperty DeviceID -first 1
if($numdisk -ge 2 ){
Write-Host "多硬盘"
$b = Get-Disk
foreach ( $diskaa in $b ) {
$disksize = $diskaa.size/1gb
if ($disksize -lt "100" ) { #100G以下硬盘分区
$diskaa |Clear-Disk -RemoveData -Confirm:$false
Initialize-Disk -number $diskaa.Number -PartitionStyle GPT -PassThru
$diskbb = get-Partition $diskaa.Number
$diskbb |Remove-Partition -Confirm:$false
if ($diskaa.Number -eq $diskdx) {
$diskaa |New-Partition -Size 300MB -GptType '{c12a7328-f81f-11d2-ba4b-00a0c93ec93b}' | Format-Volume -FileSystem FAT32
$diskaa |new-Partition -UseMaximumSize -AssignDriveLetter |Format-Volume -FileSystem NTFS -NewFileSystemLabel system
}else{
$diskaa |new-Partition -UseMaximumSize -AssignDriveLetter |Format-Volume -FileSystem NTFS -NewFileSystemLabel system
}
}
if ($disksize -ge "110" -or $diskaa.size -le "150" ) { #128G硬盘分区
$diskaa |Clear-Disk -RemoveData -Confirm:$false
Initialize-Disk -number $diskaa.Number -PartitionStyle GPT -PassThru
$diskbb = get-Partition $diskaa.Number
$diskbb |Remove-Partition -Confirm:$false
if ($diskaa.Number -eq $diskdx) {
$diskaa |New-Partition -Size 300MB -GptType '{c12a7328-f81f-11d2-ba4b-00a0c93ec93b}'| Format-Volume -FileSystem FAT32
$diskaa |new-Partition -UseMaximumSize -AssignDriveLetter |Format-Volume -FileSystem NTFS -NewFileSystemLabel system
}else{
$diskaa |new-Partition -UseMaximumSize -AssignDriveLetter |Format-Volume -FileSystem NTFS -NewFileSystemLabel system
}
}
if ($disksize -ge "200" -or $diskaa.size -le "300" ) { #256G硬盘分区
$diskaa |Clear-Disk -RemoveData -Confirm:$false
Initialize-Disk -number $diskaa.Number -PartitionStyle GPT -PassThru
$diskbb = get-Partition $diskaa.Number
$diskbb |Remove-Partition -Confirm:$false
if ($diskaa.Number -eq $diskdx) {
$diskaa |New-Partition -Size 300MB -GptType '{c12a7328-f81f-11d2-ba4b-00a0c93ec93b}'| Format-Volume -FileSystem FAT32
$diskaa |new-Partition -UseMaximumSize -AssignDriveLetter |Format-Volume -FileSystem NTFS -NewFileSystemLabel system
}else{
$diskaa |new-Partition -UseMaximumSize -AssignDriveLetter |Format-Volume -FileSystem NTFS -NewFileSystemLabel system
}
}
if ($disksize -ge "400" -or $diskaa.size -le "600" ) { #500GB硬盘分区
$diskaa |Clear-Disk -RemoveData -Confirm:$false
Initialize-Disk -number $diskaa.Number -PartitionStyle GPT -PassThru
$diskbb = get-Partition $diskaa.Number
$diskbb |Remove-Partition -Confirm:$false
if ($diskaa.Number -eq $diskdx) {
$diskaa |New-Partition -Size 300MB -GptType '{c12a7328-f81f-11d2-ba4b-00a0c93ec93b}'| Format-Volume -FileSystem FAT32
$diskaa |new-Partition -Size ($diskaa.size/2) -AssignDriveLetter | Format-Volume -FileSystem NTFS
$diskaa |new-Partition -UseMaximumSize -AssignDriveLetter |Format-Volume -FileSystem NTFS
}else{
$diskaa |new-Partition -Size ($diskaa.size/2) -AssignDriveLetter | Format-Volume -FileSystem NTFS
$diskaa |new-Partition -UseMaximumSize -AssignDriveLetter |Format-Volume -FileSystem NTFS
}
}
if ($disksize -ge "600" -or $diskaa.size -le "1200" ) { #1TB硬盘分区
$diskaa |Clear-Disk -RemoveData -Confirm:$false
Initialize-Disk -number $diskaa.Number -PartitionStyle GPT -PassThru
$diskbb = ""
$diskbb = get-Partition $diskaa.Number
$diskbb |Remove-Partition -Confirm:$false
if ($diskaa.Number -eq $diskdx) {
$diskaa |New-Partition -Size 300MB -GptType '{c12a7328-f81f-11d2-ba4b-00a0c93ec93b}'| Format-Volume -FileSystem FAT32
$diskaa |new-Partition -Size ($diskaa.size/3) -AssignDriveLetter | Format-Volume -FileSystem NTFS
$diskaa |new-Partition -Size ($diskaa.size/3) -AssignDriveLetter |Format-Volume -FileSystem NTFS
$diskaa |new-Partition -UseMaximumSize -AssignDriveLetter |Format-Volume -FileSystem NTFS
}else{
$diskaa |new-Partition -Size ($diskaa.size/3) -AssignDriveLetter | Format-Volume -FileSystem NTFS
$diskaa |new-Partition -Size ($diskaa.size/3) -AssignDriveLetter |Format-Volume -FileSystem NTFS
$diskaa |new-Partition -UseMaximumSize -AssignDriveLetter |Format-Volume -FileSystem NTFS
}
if ($disksize -ge "1400" ) { #1.5TB以上硬盘分区
$diskaa |Clear-Disk -RemoveData -Confirm:$false
Initialize-Disk -number $diskaa.Number -PartitionStyle GPT -PassThru
$diskbb = ""
$diskbb = get-Partition $diskaa.Number
$diskbb |Remove-Partition -Confirm:$false
if ($diskaa.Number -eq $diskdx) {
$diskaa |New-Partition -Size 300MB -GptType '{c12a7328-f81f-11d2-ba4b-00a0c93ec93b}'| Format-Volume -FileSystem FAT32
$diskaa |new-Partition -Size ($diskaa.size/3) -AssignDriveLetter | Format-Volume -FileSystem NTFS
$diskaa |new-Partition -Size ($diskaa.size/3) -AssignDriveLetter |Format-Volume -FileSystem NTFS
$diskaa |new-Partition -UseMaximumSize -AssignDriveLetter |Format-Volume -FileSystem NTFS
}else{
$diskaa |new-Partition -Size ($diskaa.size/3) -AssignDriveLetter | Format-Volume -FileSystem NTFS
$diskaa |new-Partition -Size ($diskaa.size/3) -AssignDriveLetter |Format-Volume -FileSystem NTFS
$diskaa |new-Partition -UseMaximumSize -AssignDriveLetter |Format-Volume -FileSystem NTFS
}
}
}
}
}
else {
Write-Host "单硬盘"
$diskaa = Get-Disk
$disksize = $diskaa.size/1gb
if ($disksize -le "150" ) {
$diskaa |Clear-Disk -RemoveData -Confirm:$false
Initialize-Disk -number $diskaa.Number -PartitionStyle GPT -PassThru
$diskbb = get-Partition $diskaa.Number
$diskbb |Remove-Partition -Confirm:$false
$diskaa |New-Partition -Size 300MB -GptType '{c12a7328-f81f-11d2-ba4b-00a0c93ec93b}' |Format-Volume -FileSystem FAT32
$diskaa |new-Partition -UseMaximumSize -AssignDriveLetter |Format-Volume -FileSystem NTFS -NewFileSystemLabel system
}
if ($disksize -ge "150" -and $diskaa.size -le "300" ) {
$diskaa |Clear-Disk -RemoveData -Confirm:$false
Initialize-Disk -number $diskaa.Number -PartitionStyle GPT -PassThru
$diskbb = get-Partition $diskaa.Number
$diskbb |Remove-Partition -Confirm:$false
$diskaa |New-Partition -Size 300MB -GptType '{c12a7328-f81f-11d2-ba4b-00a0c93ec93b}' |Format-Volume -FileSystem FAT32
$diskaa |new-Partition -Size 200GB -AssignDriveLetter | Format-Volume -FileSystem NTFS -NewFileSystemLabel system
$diskaa |new-Partition -UseMaximumSize -AssignDriveLetter |Format-Volume -FileSystem NTFS
}
if ($disksize -ge "300" ) {
$diskaa |Clear-Disk -RemoveData -Confirm:$false
Initialize-Disk -number $diskaa.Number -PartitionStyle GPT -PassThru
$diskbb = ""
$diskbb = get-Partition $diskaa.Number
$diskbb |Remove-Partition -Confirm:$false
$diskaa |New-Partition -Size 300MB -GptType '{c12a7328-f81f-11d2-ba4b-00a0c93ec93b}' |Format-Volume -FileSystem FAT32
$diskaa |new-Partition -Size 200GB -AssignDriveLetter | Format-Volume -FileSystem NTFS -NewFileSystemLabel system
$diskaa |new-Partition -Size (($diskaa.size-"200GB")/2) -AssignDriveLetter | Format-Volume -FileSystem NTFS
$diskaa |new-Partition -UseMaximumSize -AssignDriveLetter | Format-Volume -FileSystem NTFS
}
}
$diskpar = ((Get-Partition -DiskNumber $diskdx )|where-Object{$_.Type -eq "basic"}).DriveLetter[0]
$OSDdisk = "$diskpar"+":"
$tsenv.Value("OSDdisk") = "$OSDdisk"




标签:格式化,Format,Partition,SCCM,Volume,diskaa,FileSystem,new,PowerShell
From: https://blog.51cto.com/de320/5789364

相关文章