diverse Änderungen
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
Set-StrictMode -Version Latest
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
$ExpectedDiskNumber = 0
|
||||
$ExpectedFriendlyName = "INTEL SSDSC2BW180A3L"
|
||||
$ExpectedSerialNumber = "CVCV3105053K180EGN"
|
||||
$MinSizeGB = 160
|
||||
$MaxSizeGB = 180
|
||||
|
||||
function Assert-Admin {
|
||||
$Identity = [Security.Principal.WindowsIdentity]::GetCurrent()
|
||||
$Principal = [Security.Principal.WindowsPrincipal]::new($Identity)
|
||||
if (-not $Principal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
|
||||
throw "Dieses Skript muss in PowerShell als Administrator ausgefuehrt werden."
|
||||
}
|
||||
}
|
||||
|
||||
Assert-Admin
|
||||
|
||||
$Disk = Get-Disk -Number $ExpectedDiskNumber
|
||||
$SizeGB = [math]::Round($Disk.Size / 1GB, 2)
|
||||
|
||||
Write-Host "Zieldatentraeger:"
|
||||
$Disk | Select-Object Number, FriendlyName, SerialNumber, HealthStatus, OperationalStatus, @{Name="SizeGB";Expression={[math]::Round($_.Size/1GB,2)}}, PartitionStyle | Format-Table -AutoSize
|
||||
|
||||
Write-Host "Aktuelle Partitionen auf Datentraeger ${ExpectedDiskNumber}:"
|
||||
Get-Partition -DiskNumber $ExpectedDiskNumber | Sort-Object PartitionNumber | Select-Object DiskNumber, PartitionNumber, DriveLetter, Type, @{Name="SizeGB";Expression={[math]::Round($_.Size/1GB,3)}} | Format-Table -AutoSize
|
||||
|
||||
if ($Disk.FriendlyName -ne $ExpectedFriendlyName) {
|
||||
throw "Abbruch: FriendlyName passt nicht. Erwartet '$ExpectedFriendlyName', gefunden '$($Disk.FriendlyName)'."
|
||||
}
|
||||
|
||||
if ($Disk.SerialNumber -ne $ExpectedSerialNumber) {
|
||||
throw "Abbruch: SerialNumber passt nicht. Erwartet '$ExpectedSerialNumber', gefunden '$($Disk.SerialNumber)'."
|
||||
}
|
||||
|
||||
if ($SizeGB -lt $MinSizeGB -or $SizeGB -gt $MaxSizeGB) {
|
||||
throw "Abbruch: Groesse passt nicht. Erwartet ca. 167 GB, gefunden $SizeGB GB."
|
||||
}
|
||||
|
||||
$SystemPartitions = Get-Partition -DiskNumber $ExpectedDiskNumber | Where-Object {
|
||||
$_.IsBoot -or $_.IsSystem -or $_.IsActive
|
||||
}
|
||||
|
||||
if ($SystemPartitions) {
|
||||
throw "Abbruch: Datentraeger $ExpectedDiskNumber enthaelt Boot/System/Aktiv-Partitionen."
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "WARNUNG: Datentraeger 0 wird jetzt komplett geleert."
|
||||
Write-Host "Das betrifft die alte Windows-SSD mit aktuell D: und Recovery-Partitionen."
|
||||
Write-Host "Andere Datentraeger werden nicht angefasst."
|
||||
Write-Host ""
|
||||
|
||||
$Confirmation = Read-Host "Tippe exakt LEEREN um fortzufahren"
|
||||
if ($Confirmation -ne "LEEREN") {
|
||||
throw "Abbruch: Bestaetigung wurde nicht eingegeben."
|
||||
}
|
||||
|
||||
Clear-Disk -Number $ExpectedDiskNumber -RemoveData -RemoveOEM -Confirm:$false
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "Datentraeger $ExpectedDiskNumber wurde geleert."
|
||||
Write-Host "Ergebnis:"
|
||||
Get-Disk -Number $ExpectedDiskNumber | Select-Object Number, FriendlyName, HealthStatus, OperationalStatus, @{Name="SizeGB";Expression={[math]::Round($_.Size/1GB,2)}}, PartitionStyle | Format-Table -AutoSize
|
||||
Get-Partition -DiskNumber $ExpectedDiskNumber -ErrorAction SilentlyContinue | Format-Table -AutoSize
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "Naechster Schritt: Vom Windows-USB-Stick booten und Windows auf den nicht zugeordneten Speicher von Datentraeger 0 installieren."
|
||||
Reference in New Issue
Block a user