$systemDrive = (Get-CimInstance -ClassName Win32_OperatingSystem).SystemDrive $systemPartition = Get-Partition | Where-Object {$_.AccessPaths -like "$systemDrive*"} $systemDiskNumber = $systemPartition.DiskNumber $additionalDisks = Get-Disk | Where-Object {$_.Number -ne $systemDiskNumber} $additionalDiskNumbers = $additionalDisks | ForEach-Object { $_.Number } $offlineDisks = Get-Disk | Where-Object { $_.OperationalStatus -eq 'Offline' } foreach ($offlinedisk in $offlineDisks) { $offlinediskNumber = $offlinedisk.Number Set-Disk -Number $offlinediskNumber -IsOffline $false Set-Disk -Number $offlinediskNumber -IsReadOnly $false } foreach ($diskNumber in $additionalDiskNumbers) { $disk = Get-Disk -Number $diskNumber $partition = Get-Partition -DiskNumber $diskNumber -ErrorAction SilentlyContinue try { if ($partition) { $partition | Remove-Partition -Confirm:$false } $disk | New-Partition -AssignDriveLetter -UseMaximumSize | Format-Volume -FileSystem NTFS -Confirm:$false } catch { Write-Host "Error: $($_.Exception.Message)" } }