Entfernen Sie alle Volumes von allen angeschlossenen Festplatten - Diskpart

1947
Bilfred

Wie kann ich alle Volumes in einer WinPE-Umgebung mithilfe von Powershell oder WMIC-Aufrufen von den Festplattenlaufwerken entfernen? Das WinPE-Image wird zuvor mithilfe von DISM mit den erforderlichen Paketen injiziert. Ich möchte keine USB-Festplatten oder externen Speicher, einschließlich iSCSI-Verbindungen, löschen

Beachten Sie, dass dies als Teil einer Implementierungsumgebung verwendet wird, in der das System gelöscht wird, bevor ein Image angewendet wird. Die Implementierungsumgebung soll völlig unbeaufsichtigt sein, je besser also der Bildschirm herunterfliegt, desto besser.

0
Sie möchten also alle physischen Festplatten in einem Computer formatieren? Beinhaltet das angeschlossene USB-Festplatten? Kinnectus vor 9 Jahren 0
Zuletzt habe ich überprüft, dass DISKPART ein Windows-Befehl ist und in MS-DOS nicht vorhanden ist. grawity vor 9 Jahren 1
@BigChris enthält keine USB-Festplatten. Ich werde das jetzt aktualisieren Bilfred vor 9 Jahren 0
Können Sie auch Ihre Frage bezüglich der von Ihnen bevorzugten Technologie aktualisieren ... DISKPART kann nicht unter MS-DOS ausgeführt werden ... Kinnectus vor 9 Jahren 0
Ich beziehe mich nicht auf das Ausführen durch MS-DOS? Bilfred vor 9 Jahren 0
Ihr Fragentitel hatte ursprünglich "MS-DOS" am Ende - daher hat auch Grawity das kommentiert :). Sie können ein Skript, das Sie auf Ihrer WinPE-Festplatte ablegen, in WMIC oder PowerShell auf dem lokalen Computer schreiben und die lokalen physischen Festplatten identifizieren. Sie können diese Ausgabe dann verwenden, um ein DISKPART-Skript zum Formatieren der Festplatten zu erstellen. Der einzige Nachteil von WinPE ist, dass es standardmäßig keine WMIC- oder PowerShell-Unterstützung bietet. Sie können Support hinzufügen und es gibt überall Tutorials, die dies erreichen - es ist ganz einfach! Kinnectus vor 9 Jahren 1
Ja, ich habe das gesehen, aber vergessen, meinen Kommentar zu bearbeiten :) Ich könnte die Pakete über DISM und die Referenz über Powershell einbinden und die Ausgabe in eine benutzerdefinierte Batchdatei umwandeln, aus der Powershell dann nach dem Auffinden der lokalen Laufwerke aufruft? Bilfred vor 9 Jahren 0

2 Antworten auf die Frage

3
Michael B

Um das gleiche durch Powershell zu tun, können Sie verwenden

Mit äußerster Vorsicht kann dieses Skript Festplatten löschen!

(Get-Disk).where({$_.BusType -like "ATA"}) | Clear-Disk -Confirm -Whatif -RemoveData -RemoveOEM 

(Ich habe - Bestätigen - Was muss entfernt werden, damit die Benutzer ihren gesamten Comp nicht zufällig löschen können! - Entfernen Sie sie, um Ihren gesamten Comp zu löschen.)

Offensichtlich müssen Sie den "ATA" -Teil zu dem machen, was Sie brauchen, und Sie benötigen möglicherweise ein Bestätigungs-Flag für die Clear-Disk (ich hatte keine Ersatzdiskette, um sie zu testen!)

Sie können verwenden

get-disk | fl * 

Um eine Liste aller Festplatten zu erhalten, die mit allen Variablen verbunden sind, nach denen Sie filtern können.

-1
Michael B

(Beantworten der vorbearbeiteten Frage, wenn Sie gefragt werden, wie dies über die Eingabeaufforderung / diskpart erfolgen soll)

select disk 0 clean select disk 1 clean ... 

Dadurch werden alle Partitionen von den Datenträgern entfernt und an Raw-Geräte zurückgegeben.

Wenn Sie mehr Datenträger auswählen, als Sie wissen, wird es bei den nicht vorhandenen Datenträgern zu Fehlern kommen.

Um es dann selektiver zu machen, müssten Sie ein Skript schreiben, das die Ausgabe von überprüft

select disk x disk detail  

Um zu prüfen, ob es sich um eine ATA-Diskette handelt, können Sie ggf. den Clean-Befehl ausführen

Dies ist eine naheliegende Methode, enthält jedoch eine ganze Menge nicht benötigten Codes, da ich manchmal erwarte, Maschinen mit bis zu 12 physischen Festplatten und darüber zu aktualisieren. Wenn ich nur mit ein paar Datenträgern gerechnet hätte, habe ich vielleicht darüber nachgedacht, und es sieht auch sehr hässlich aus, wenn eine riesige Reihe von Fehlern auf dem Bildschirm vor allem für ahnungslose Benutzer vorbeiziehen. Dies ist eine unbeaufsichtigte Bereitstellung. Deshalb schaue ich mir den Weg der Verwendung von PowerShell und WMIC an. Ich sollte die Frage wahrscheinlich auch damit aktualisieren. Danke, dass du wenigstens geantwortet hast. Bilfred vor 9 Jahren 0
Außerdem benutze Powershell eine Referenz, zu der ich zurückkehren kann, also weiß ich, wie viele Festplatten es gibt, um sogar formatieren / reformatieren / image / mount etc Bilfred vor 9 Jahren 0
Ich beantwortete die Pre-Change-Frage einer Eingabeaufforderung / diskpart;) und wie bei jeder anderen Skriptsprache ist es durchaus möglich, Fehlermeldungen auszublenden oder ganz zu entfernen, indem überprüft wird, welche Festplatten vor der Hand vorhanden sind. Dies erfordert jedoch eleganteres Scripting Michael B vor 9 Jahren 1
Stimmt, und wenn ich in den nächsten Tagen keine soliden Antworten bekomme, benutze ich wahrscheinlich diese Methode. Ich bin bei Powershell nicht besonders beeindruckend, aber ich versuche, die Google-Suche zu triangulieren. Bilfred vor 9 Jahren 0