Ich lief Get-PhysicalDisk
in einer virtuellen Maschine, die 4 Festplatten hat. Das Ergebnis war:
FriendlyName SerialNumber CanPool OperationalStatus HealthStatus Usage Size
------------ ------------ ------- ----------------- ------------ ----- ----
VMware, VMware Virtual S False OK Healthy Auto-Select 60 GB
VMware, VMware Virtual S False OK Healthy Auto-Select 100 GB
VMware, VMware Virtual S False OK Healthy Auto-Select 200 GB
VMware, VMware Virtual S False OK Healthy Auto-Select 400 GB
Es gab keine Seriennummer oder eine andere eindeutige ID, die ich im Ergebnis oben sehen konnte.
Jetzt muss ich rennen Set-PhysicalDisk
. Alle Beispiele im Web verwenden den eindeutigen FriendlyName oder ähnliches PhysicalDisk1
. Erstens gibt es 4 Festplatten mit den gleichen FriendlyNames, so dass ich glaube, ich kann es nicht verwenden. Zweitens dachte ich, PhysicalDisk{number}
es wäre ein besonderer Name, um eine Platte nach dem Index zu kennzeichnen, aber es schien nicht zu funktionieren.
Was soll ich Set-PhysicalDisk
tun, wenn ich die zweite Festplatte (Größe = 100 GB) angeben möchte?
PS C:\Users\Administrator> Set-PhysicalDisk -FriendlyName "VMware, VMware Virtual S" -Usage Retired
Set-PhysicalDisk : Not Supported
At line:1 char:1
+ Set-PhysicalDisk -FriendlyName "VMware, VMware Virtual S" -Usage Reti ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (StorageWMI:ROOT/Microsoft/..._StorageCmdlets) [Set-PhysicalDisk], CimException
+ FullyQualifiedErrorId : StorageWMI 1,Set-PhysicalDisk
PS C:\Users\Administrator> Set-PhysicalDisk PhysicalDisk1 -Usage Retired
Set-PhysicalDisk : The requested object could not be found.
At line:1 char:1
+ Set-PhysicalDisk PhysicalDisk1 -Usage Retired
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (PS_StorageCmdlets:ROOT/Microsoft/..._StorageCmdlets) [Set-PhysicalDisk], CimException
powershell
Verdammtes Gemüse
quelle
quelle
UniqueID
einzelnen Datenträger überprüft ? Versuchen Sie esGet-PhysicalDisk | Select-Object SerialNumber,UniqueID
. Sie sollten in der Lage sein ,Set-PhysicalDisk
durchUniqueID
statt demFriendlyName
.-Set-PhysicalDisk -UniqueId "{7a1... lonng hex... }"
Get-Help
für ein Cmdlet finden (z. B. Get-Help Get-PhysicalDisk -full), können mit Select-ObjectAntworten:
Sie können
Set-PhysicalDisk
mit demUniqueID
.Um die abzurufen
UniqueID
,Um Updates zu machen , basierend auf dem
UniqueID
,quelle
Sie können dieses Datenträger- "Objekt" einer Variablen zuweisen . Mit dieser Variablen können Sie die Operationen an der Variablen selbst ausführen - und das alles, ohne einen FriendlyName oder eine Seriennummer zu benötigen
Einzelheiten
In meinem Fall hatte ich keine
FriendlyName
oder keineSerialNumber
:Das Einfachste, worauf ich schreiben konnte, war, dass der OperationalStatus sagte
Lost Communication
:Von dort aus kann ich diese Festplatte einer Variablen zuweisen:
Jetzt, da ich ein variables Objekt habe, kann ich diese Platte als zurückgezogen markieren:
Reparieren Sie anschließend alle betroffenen Volumes auf dem Speicherplatz, um das Ganze abzurunden:
Sie können bestätigen, dass eine virtuelle Festplatte repariert wird, indem Sie feststellen, dass der Betriebsstatus wie folgt lautet
InService
:Und schließlich können Sie den Fortschritt der Reparatur überwachen:
Vielen Dank an Matthew Hodgkins . ( Archiv )
ps Die Person, die PowerShell für eine gute Idee hält, sollte erschossen werden
quelle