87 lines
2.4 KiB
PowerShell
87 lines
2.4 KiB
PowerShell
#############################################################################
|
|
# Michael Grote - 21.11.2019 #
|
|
# Kopierscript für Daueraufgaben #
|
|
# Script "mirrored" bis zu 6 komplette Ordner #
|
|
# Es wird jeweils ein Log pro Kopiervorgang angelegt #
|
|
# nicht benötigt Ordner MÜSSEN auskommentiert werden #
|
|
# - sowohl bei den Variablen als auch de Kopiervorgängen selber #
|
|
# Programme können auch auskommentiert werden wenn nciht benötigt #
|
|
#############################################################################
|
|
|
|
|
|
#Variablen
|
|
#Variablen setzen
|
|
#variablendeklaration pfade
|
|
#scriptpfad ermitteln
|
|
#funktion get-scriptdirectory definieren
|
|
function Get-ScriptDirectory {
|
|
$Invocation = (Get-Variable MyInvocation -Scope 1).Value
|
|
Split-Path $Invocation.MyCommand.Path
|
|
}
|
|
#funktion an variable zuweisen
|
|
$scriptpfad = Get-ScriptDirectory
|
|
#hostname
|
|
$hostname_ist = $env:computername
|
|
$hostname_soll = "irantu"
|
|
#ziele/quellen
|
|
$quelle1 = "C:\VM"
|
|
$quelle2 = "C:\Portable_Programme"
|
|
$quelle3 = "C:\Users\mg\Desktop"
|
|
$ziel1="$scriptpfad\$hostname_ist\VM"
|
|
$ziel2="$scriptpfad\$hostname_ist\Portable_Programme"
|
|
$ziel3="$scriptpfad\$hostname_ist\Desktop"
|
|
# Hostname prüfen
|
|
if ($hostname_ist -eq $hostname_soll)
|
|
{
|
|
Write-Host "Host = $hostname_ist"
|
|
}
|
|
else
|
|
{
|
|
Write-Host "Falscher Host(SOLL: '$hostname_soll' IST:$hostname_ist)"
|
|
start-sleep 5
|
|
Exit 1
|
|
}
|
|
|
|
|
|
|
|
# Prüfungen Ordner existend und kopieren
|
|
if(Test-Path $ziel1)
|
|
{
|
|
robocopy $quelle1 $ziel1 /MIR /ETA /R:3 /W:10
|
|
}
|
|
else
|
|
{
|
|
New-Item "$ziel1" -ItemType Directory
|
|
robocopy $quelle1 $ziel1 /MIR /ETA /R:3 /W:10
|
|
}
|
|
if(Test-Path $ziel2)
|
|
{
|
|
robocopy $quelle2 $ziel2 /MIR /ETA /R:3 /W:10
|
|
}
|
|
else
|
|
{
|
|
New-Item "$ziel2" -ItemType Directory
|
|
robocopy $quelle2 $ziel2 /MIR /ETA /R:3 /W:10
|
|
}
|
|
if(Test-Path $ziel3)
|
|
{
|
|
robocopy $quelle3 $ziel3 /MIR /ETA /R:3 /W:10
|
|
}
|
|
else
|
|
{
|
|
New-Item "$ziel3" -ItemType Directory
|
|
robocopy $quelle3 $ziel3 /MIR /ETA /R:3 /W:10
|
|
}
|
|
#Rückgabecoce robocopy auswerten
|
|
#robocopy exit codes
|
|
#https://support.microsoft.com/en-us/help/954404/return-codes-that-are-used-by-the-robocopy-utility-in-windows-server-2
|
|
if ($lastexitcode -eq 1)
|
|
{
|
|
write-host "Keine Fehler!"
|
|
}
|
|
else
|
|
{
|
|
#`n ist newline
|
|
write-host `n`n`n`n`n`n`n`n`n`n`n`n"Es sind Fehler aufgetreten!"`n`n`n`n`n`n`n`n`n`n`n`n
|
|
start-sleep 43200
|
|
}
|