Backup von Hyper-V Maschinen per PowerShell Script & Cloudberry Backup

LukWindows

Cadet 2nd Year
Registriert
Apr. 2020
Beiträge
17
Guten Tag,
Ich möchte ein Script schreiben welches sich die VM Namen raussucht und diese dann in einen Backup Plan reineditiert. Das Problem ist das er nicht in einer Schleife die VM's hintereinander reinschreiben kann sondern alle in einen Befehl packen muss. (Er überschreibt die sonst vorherigen VM's im Backup Plan)

Nun habe ich folgenden Code:

Code:
$args3 = ""

Get-VM | Where-Object { $_.Notes -like 'Test'} | % {
$Name = $_.Name
$arg = "-v $Name "
$args3 += $arg
$args3
}
.\cbb editHyperVPlan -n luktest -v $args4

//ist nur zur Abfrage der Plan details
.\cbb getPlanDetails -n luktest

als Ausgabe bekomme ich dann:

Virtual Machine name: test1 -v test2 -v test3

anstatt

Virtual Machine name: test1
Virtual Machine name: test2
Virtual Machine name: test3

Könntet Ihr mir was das angeht weiterhelfen? Es scheint so als ob die CLI von Cloudberry echt bescheidene Funktionen hat ..
 
Viel zu kompliziert gedacht.

Was genau erwartet das CBB als Parameter? Bau doch mal einen Aufruf mit bspw. test1 und test2.

und ist $args4 ein Typo und müsste $args3 heissen?
 
@VDC Also wenn ich das ohne automatisierung machen wollen würde würde es so aussehen:

Code:
.\cbb editHyperVPlan -n luktest (Name des Backupplans) -v TestVM1 (Name der VM) -v TestVM2 -v TestVM3

Damit klappt es ohne irgendwelche Probleme.

$args4 ist ein schreibfehler heißt eigt. args3! sorry aber funktioniert trotzdem nicht!
 
Zuletzt bearbeitet:
Code:
Get-VM | Where-Object { $_.Notes -like 'Test'} | % {
$args4 += " -v "+$_.Name.ToString()
}

.\cbb editHyperVPlan -n luktest$args4

Leerzeichen vorm letzten $args4 ist die Frage ob das rennt.#

V1.1
Code:
Get-VM | Where-Object { $_.Notes -like 'Test'} | % {
$args4 += "-v "+$_.Name.ToString()+" "
}

.\cbb editHyperVPlan -n luktest $args4
 
Zuletzt bearbeitet:
@VDC Sorry für die späte Antwort, leider funktioniert das nicht! Gibt dann Error: Error occurred in command line: Object reference not set to an instance of an Object.
 
Dann nimm halt nicht $args4 sondern $temptemp, da $args ja eigentlich Übergabeparameter definiert. Alternativ kann es natürlich daran liegen dass das nicht auf $Null gesetzt wurde.
 
Zurück
Oben