Quantcast
Channel: Windows PowerShell Forum
Viewing all articles
Browse latest Browse all 2314

wbadmin start backup funktioniert erst beim zweiten mal starten

$
0
0

Hallo liebe Community,

ich schreibe zur Zeit ein PowerShell Skript, dass den Start eines Systemabbildes anstoßen soll. Das Skript willl ich dann in einem Java Programm benutzten. Deshalb muss es auf Anhieb klappen.

Folgendes Problem: Ich klicke in der ISE auf ausführen und das Skript gibt mir den Fehler zurück, dass der Parameter "include" fehlt. Drücke ich ohne etwas zu ändern nochmal auf ausführen, startet die Sicherung!

Was mache ich falsch?

Hier mein Skript:

#Schritt 1: Variablen definieren

$Index1 = 0 # Index-Variable für spätere Abfrage
$AnzahlSicherungen = 2 #Anzahl vorzuhaltender Sicherungen
#Start-Sleep -s 1
$Zeitstempel = get-date -format "dd.MM.yyyy_HH-mm-ss" # Zeitstempel erstellen
$hostname =$env:COMPUTERNAME # Computername Zwischenspeichern
$ZielVZ = "\\meinServer\meinOrdner\"+$hostname+"\" # Netzwerkfreigabe
$gciVZ= "\\meinServer\meinOrdner\"+$hostname #Pfad für die Get-Childitem-Abfrage
$Dateiname = $hostname+"_" # Ordner Name mit PC Name. Danach wird der Zeitstempel angehangen.
$VZ = $ZielVZ + $Dateiname + $Zeitstempel #Pfad für Sicherungsdateien zusammenfügen.
$befehl= "C:\Windows\System32\wbadmin.exe start backup ""-backupTarget:$VZ"" -quiet ""-include:$ZuSicherndeSL"" -allCritical"""""

# Schritt 2: Neues Verzeichnis anlegen
# und die älteste Sicherung, bis auf die vorzuhaltenden Sicherungen, löschen
md $VZ
$PSFolder = gci $ZielVZ |? {$_.name -like $hostname + "*" } |Sort-Object name -descending
Foreach ($Folder in $PSFolder) #überprüfe für jeden Ordner in der Liste $PSFolder
{
   $Index1++ ##index Variable hochzählen
 
   # Alte Sicherungen, die nicht mehr benötigt werden, wieder löschen.
   If ($Index1 -gt $AnzahlSicherungen)
   {
      Remove-Item $Folder.FullName -recurse
   }
 
}

# Schritt 3: Zu sichernde Systemlaufwerke ermitteln
# Ermitteln der GUID des Boot Volume
$BootVolume = get-wmiobject Win32_Volume -filter "BootVolume='True'"
$ZuSicherndeSL = $BootVolume.DeviceId

# Schritt 4: Befehl zum Start der Erstellung des Systemabbildes
invoke-expression $befehl #genauer Befehl in variable zwischengespeichert

Grundlage für das Skript war ein post von tomshardware (google) ich darf noch keinen link posten



Viewing all articles
Browse latest Browse all 2314