Šta je novo?

Powershell

hogarnp

Banned
Banovan
Učlanjen(a)
02.01.2014
Poruke
844
Poena
70
Drugari, dobio sam zadatak da sredim malo powershell kod, ali nisam baš vičan u tome. Potrebno je napraviti skriptu koja radi bekap određenih fajlova, i šalje korisniku obaveštenje na mail. Malo sam guglao, ali ono što sam našao se dosta razlikuje od onoga što sam dobio da prepravim. Nadam se da će neko moći da mi pomogne. Potrebno je pronaći grešku u sledećem kodu :


Script:

#Set-ExecutionPolicy RemoteSigned


# Schritt 1: Variablen-Definition
$Index1 = 0
$SAGen = 7 # Anzahl vorzuhaltender Sicherungen
Start-Sleep -s 1

$SAZielVZ = "\\192.168.99.49\DatensicherungVirtServer\flexword\flexexchange_x_91\" # Netzwerkfreigabe
$SAVZPraefix = "flexexchange" # Systemabbild
$SAZeitstempel = get-date -format "yyyyMMdd_HHmmss" # Zeitstempel erstellen
$SAVZ = $SAZielVZ + $SAVZPraefix + $SAZeitstempel

# Schritt 2: Neues Verzeichnis anlegen
# und die alten Sicherungen bis auf die vorzuhaltenden SA Generationen löschen
#md $SAVZ
New-Item -Path $SAVZ -ItemType directory

$PSFolder = gci $SAZielVZ |? {$_.name -like $SAVZPraefix + "*" } |? {$_.extension -Eq ""} |Sort-Object name -descending
Foreach ($Folder in $PSFolder)
{
# $Folder.name
$Index1++

# Alte Sicherungen, die nicht mehr benötigt werden, wieder löschen.
If ($Index1 -gt $SAGen)
{
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


# Ermitteln der GUID des System Volume
$SystemVolume = get-wmiobject Win32_Volume -filter "Label='SYSTEM-RESERVIERT' AND BootVolume='False'"

if ([string]$SystemVolume.DeviceId)
{
$ZuSicherndeSL = $ZuSicherndeSL + "," + $SystemVolume.DeviceId
}

# Schritt 4: Systemabbilder erstellen
invoke-expression -command "wbadmin start backup ""-backupTarget:$SAVZ"" -vssfull -quiet -systemState ""-include:$ZuSicherndeSL"" -allCritical"
 
Pa kakvu gresku ti vraca?
Kod je cini mi se dobar, ali nigde ne vidim liniju za slanje mejlova. Ovde jedino mogu da ti prave problemaputanje do backup target foldera \\192.168.99.49... ili label na sakrivenoj particiji.
 
Osim greške IP adresa, koja na mom kompu ne može da radi jer nisam u tom okruženju, pojavljuje mi se da je greška kod "Start-Sleep -s 1". Tako je, koda za slanje mejla nema, to mi i fali...
 
Kod start-sleep nema nista sporno, realno mozes i da izbrises tu liniju, ne radi nista konkretno u ovom slucaju.
Za slanje mejlova mozes da koristis send-mailmessage cmdlet, trebace ti adresa mail servera i kredencijali za nalog sa kojeg saljes mejl ili da koristis combject Outlook.Application pa da ti salje mejlove iz Outlook-a. Prva varijanta je daleko jednostavnija.
 
Nazad
Vrh Dno