Notifications
Clear all

Remove-VMSnapshot - letzten 3 Snapshots  

  RSS

Roman_Wien
(@werom-edv)
Estimable Member
Beigetreten: 7 Monaten zuvor
Beiträge: 101
31. März 2020 12:24  

Hallo!

Ich würde gerne ein Skript erstellen, dass von einer VM automatisch einen Snapshot macht. Wenn bereits 3 Snapshots vorhanden sind, soll der letzte gelöscht werden und dann ein neuer erstellt werden.

Mein Skript funktioniert dazu schon, aber leider nur mittels den Tagen:

Get-VMSnapshot -VMName TestVM | Where-Object {$_.CreationTime -lt (Get-Date).AddDays(-2) } | Remove-VMSnapshot

Damit werden alle Snapshots gelöscht, die älter als 2 Tage sind.
Ich hätte gerne die Änderung dazu, dass nur die letzten X-Versionen behalten werden.

Leider weiß ich nicht, wie man herausfindet, welche Optionen es noch bgei Where-Object gibt. Weder Powershell noch Internet gibt mir da die möglichen Objects zu dem Befehl Get-Vmsnapshot. 

Bitte um Hilfe,

danke,

Roman


Zitat
Roman_Wien
(@werom-edv)
Estimable Member
Beigetreten: 7 Monaten zuvor
Beiträge: 101
31. März 2020 23:21  

Hab hier einen weiteren Codezeile mit den letzten Stunden gefunden. Ich vermute mit .AddMinutes würde es ebenfalls funktionieren? Das kommt dem Behalten der letzten X Versionen sehr nahe, weils jetzt nur mehr eine Zeitsache für die Ausführung des Skripts ist. 

Falls es aber doch jemand gibt, der eine einfache Änderung des Skripts sieht, wäre das Behalten der letzten X Versionen die bessere Code-Idee. Mich würde dann auch interessieren, woher das Wissen kommt und ob es ein Glossar solche Properties/Parameters gibt. In dem offiziellen Dokument zu Remove-VMSnapshot scheinen keine Infos dazu aufgelistet zu sein.

 

Get-VM | Get-VMSnapshot | Where-Object {$_.CreationTime -lt (Get-Date).AddHours(-3)} | Remove-VMSnapshot

Get-VM | Get-VMSnapshot | Where-Object {$_.CreationTime -lt (Get-Date).AddMinutes(-3)} | Remove-VMSnapshot

AntwortZitat
Share: