PowerShell – die besten Beiträge

Komplett-Formatierung bei interner SSD. Wie?

Schönen Nachmittag! :)

Ich würde gerne meine interne SSD, eine WD_Black SN850X NVMe SSD, formattieren, am Besten vollständig, da ich mir eine neue gekauft habe, und die vorherige verkaufen möchte. Somit wäre es auch hilfreich, wenn ich ebenfalls Windows komplett runterlöschen könnte. Also ungefär in einen ähnlichen Zustand versetzen, wie ich sie gekauft habe.

Was ich bereits probiert habe:

Die WD Dashboard Software, angeblich zum vollständigen formattieren von Western Digital Drives, hat überhaupt nichts gebracht, da weder das Windows Boot Menu, noch mein UEFI von meinem durch das WD Dashboard formattierte USB Stick booten konnte. Das führte nur zu Fehlermeldungen ("...kann nicht verwendet werden") und Skips durch das WinBoot Menu.

Genauso wenig sinnvoll ist mit Sicherheit die Methode über die PowerShell mit Befehlen wie "Select Drive 0", "Clear all" (soweit war ich schon bis zu "Clear all"), was natürlich nicht funktionieren wird, wenn die Hauptfestplatte in Verwendung ist.

Daher würde ich gerne eine Möglichkeit zur (am Besten) vollständigen Formattierung der internen Haupt-SSD wissen, da natürlich das "Zurücksetzen nur im Windows Boot Menu" für einen Verkauf der Festplatte deutlich unzureichend wäre (aufgrund wohl der "overprovisioned blocks" und "Disk Mappings, die wohl dadurch nicht angetastet werden).

Vielen Grüße und schon mal vielen Dank

Z0NNEBL0EM

PS:

UEFI (von Insyde) des Laptops hat keine Funktion zum Formattieren der Festplatte

Computer, Datenschutz, Software, Windows, löschen, entfernen, Sicherheit, Hardware, Festplatte, Daten, Speicher, formatieren, zurücksetzen, Privatsphäre, BIOS, SSD, Verkauf, WD, western-digital, PowerShell, Solid-State-Drive, Windows 10, UEFI, Laptop

Powershell Error aber wo?

Ich hab ein Python error, suche seit hundert Jahren, wo der Fehler sein könnte, ich versteh nichts mehr, nach fast 36 Stunden Programmieren.

Spoofing...
Fehler: In C:\Users\Marcel\Documents\programmieren\aimware\spoofer\spoofer.ps1:17 Zeichen:13
+     } catch {
+             ~
Die schlieáende "}" fehlt im Anweisungsblock oder der Typdefinition.
In C:\Users\Marcel\Documents\programmieren\aimware\spoofer\spoofer.ps1:8 Zeichen:25
+ function Set-MacAddress {
+                         ~
Die schlieáende "}" fehlt im Anweisungsblock oder der Typdefinition.
In C:\Users\Marcel\Documents\programmieren\aimware\spoofer\spoofer.ps1:62 Zeichen:151
+ ... lÇôschen, MAC-Adresse ÇÏndern, neue UUID generieren)? (y/n)") -eq "y" ...
+                                                                 ~
Unerwartetes Token ")" in Ausdruck oder Anweisung.
In C:\Users\Marcel\Documents\programmieren\aimware\spoofer\spoofer.ps1:62 Zeichen:160
+ ... schen, MAC-Adresse ÇÏndern, neue UUID generieren)? (y/n)") -eq "y") {
+                                                                       ~
Unerwartetes Token ")" in Ausdruck oder Anweisung.
In C:\Users\Marcel\Documents\programmieren\aimware\spoofer\spoofer.ps1:79 Zeichen:3
+ } else {
+   ~~~~
Unerwartetes Token "else" in Ausdruck oder Anweisung.
In C:\Users\Marcel\Documents\programmieren\aimware\spoofer\spoofer.ps1:83 Zeichen:37
+ Write-Host "Press any key to exit..."
+                                     ~
Die Zeichenfolge hat kein Abschlusszeichen: ".
In C:\Users\Marcel\Documents\programmieren\aimware\spoofer\spoofer.ps1:79 Zeichen:8
+ } else {
+        ~
Die schlieáende "}" fehlt im Anweisungsblock oder der Typdefinition.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : MissingEndCurlyBrace



Script:

function Generate-RandomMacAddress {
    $rand = New-Object Random
    $macBytes = @(0..5 | ForEach-Object { $rand.Next(256) })
    $macBytes[0] = ($macBytes[0] -bor 2) -band 254
    return -join ($macBytes | ForEach-Object { "{0:X2}" -f $_ }) -replace '(.{2})', '$1-' | ForEach-Object { $_.TrimEnd('-') }
}


function Set-MacAddress {
    param (
        [string]$adapterName,
        [string]$macAddress
    )


    try {
        Get-NetAdapter -Name $adapterName | Set-NetAdapter -MacAddress $macAddress -Confirm:$false
        Write-Host "MAC-Adresse von $adapterName geändert auf $macAddress"
    } catch {
        Write-Host "Fehler beim Ändern der MAC-Adresse: $_"
    }
}


function Remove-RegistryKeys {
    $registryPath = "HKLM:\SOFTWARE"
    $epicGamesKeys = Get-ChildItem -Path $registryPath -Recurse | Where-Object { $_.Name -like "*Fortnite*" -or $_.Name -like "*Epic Games*" }
    foreach ($key in $epicGamesKeys) {
        try {
            Remove-Item -Path $key.PSPath -Recurse -Force
            Write-Host "Registry-Schlüssel gelöscht: $($key.PSPath)"
        } catch {
            Write-Host "Fehler beim Löschen des Schlüssels $($key.PSPath): $_"
        }
    }
}


function Remove-GameFolders {
    $fortnitePath = "C:\Program Files\Epic Games\Fortnite"
    $epicGamesPath = "C:\Program Files\Epic Games"


    if (Test-Path $fortnitePath) {
        Remove-Item -Path $fortnitePath -Recurse -Force
        Write-Host "Fortnite gelöscht: $fortnitePath"
    } else {
        Write-Host "Fortnite nicht gefunden: $fortnitePath"
    }


    if (Test-Path $epicGamesPath) {
        Remove-Item -Path $epicGamesPath -Recurse -Force
        Write-Host "Epic Games gelöscht: $epicGamesPath"
    } else {
        Write-Host "Epic Games nicht gefunden: $epicGamesPath"
    }
}


function Get-MainboardUUID {
    return (Get-WmiObject Win32_ComputerSystemProduct).UUID
}


function Generate-NewUUID {
    return [Guid]::NewGuid().ToString()
}


if ((Read-Host "Möchten Sie alle Änderungen vornehmen (Registry löschen, Spiele-Ordner löschen, MAC-Adresse ändern, neue UUID generieren)? (y/n)") -eq "y") {
    Remove-RegistryKeys
    Remove-GameFolders


    if ((Get-NetAdapter | Where-Object { $_.Status -eq "Up" }).Count -gt 0) {
        $networkAdapterName = "Ethernet"
        $newMacAddress = Generate-RandomMacAddress
        Set-MacAddress -adapterName $networkAdapterName -macAddress $newMacAddress
    } else {
        Write-Host "Kein aktiver Netzwerkadapter gefunden."
    }


    $mainboardUUID = Get-MainboardUUID
    Write-Host "Aktuelle Mainboard UUID: $mainboardUUID"


    $newMainboardUUID = Generate-NewUUID
    Write-Host "Neue zufällige Mainboard UUID: $newMainboardUUID"
} else {
    Write-Host "Änderungen übersprungen."
}


Write-Host "Press any key to exit..."
[System.Console]::ReadKey() | Out-Null

abgesehen davon das die Powershell sich nach dem Start direkt schließt.

Wer weiß, wo das Problem ist, wäre Top.


Script, PowerShell

Meistgelesene Beiträge zum Thema PowerShell