8
0

The complete folder structure has been changed or updated

This commit is contained in:
2025-09-19 18:24:40 +02:00
parent 796473a8c9
commit 1f0d1613a5
216 changed files with 330971 additions and 809 deletions

View File

@@ -0,0 +1,130 @@
cls
#MK / 15.11.2024
import-module SQLPS -Scope Local -Force
Set-Variable Servername -Value "DD-VMP02-DB01\ZEIT" -Scope global
Set-Variable SicherungsPfad -Value "E:\Sicherung\SQL" -Scope global
Set-Variable holedatum -Value (get-date -Format 'yyyyMMdd_HHmm') -Scope global
Set-Variable SicherungsPfadTemp -Value "$($SicherungsPfad)\$holedatum" -Scope global
Set-Variable SicherungsPfadTempExists -Value $False -Scope global
Set-Variable SicherungsPfadTempIsClean -Value $False -Scope global
Set-Variable SicherungsPfadFinal -Value "\\dd-sto01\f$\DD-STO01-A3\Backup\Computer\DD-VMP02-DB01\SQL\" -Scope global
$dbs = Get-SqlDatabase -ServerInstance $Servername
#######################################################################################################################
Function Backup-SQLDatabases {
# Parameter definieren
param(
[parameter(mandatory=$true)]
[validatecount(1, 10)]
[string[]]$instanzen,
[parameter(mandatory=$true)]
[validatepattern("[A-Z]")]
[validatecount(1,99)]
[string]$dbs
)
if( -not (test-path -Path $SicherungsPfadTemp)){
try {
new-item -path $SicherungsPfad -Name $holedatum -ItemType Directory -ErrorAction Stop | Out-Null
$SicherungsPfadTempExists = $True
} catch {
write-host "Ordner für Backup konnte nicht erstellt werden" -ForegroundColor Yellow
$SicherungsPfadTempExists = $False
}
} else{
write-host "Backup-Ordner existiert bereits" -ForegroundColor Yellow
$SicherungsPfadTempExists = $True
}
IF ($SicherungsPfadTempExists = $True) {
# For-Schleife für mehrere Instanzen
for($i = 0; $instanzen.count -gt $i; $i++){
write-host "Backup von der Datenbank $dbs auf der Instanz $($instanzen[$i]) wird erstellt" -ForegroundColor Yellow
# Backup für remote Instanzen
if($instanzen[$i] -ne $Servername -and !$instanzen[$i] -eq $false){
Write-host $args[1].Substring(1, 15)
Write-Host $args[0]
Invoke-Command -ComputerName $instanzen[$i].Substring(1, 15) -ScriptBlock {
Backup-SqlDatabase -ServerInstance $args[1].Substring(1, 15) -Database $args[0] -BackupFile "$($args[2])\$($args[0]).bak"
} -ArgumentList $dbs, $instanzen[$i], $pfadzumbackup, $holedatum
}
# Backup für eine lokale Instanz
elseif($instanzen[$i] -eq $Servername -and !$instanzen[$i] -eq $false){
Backup-SqlDatabase -ServerInstance $instanzen[$i] -Database $dbs -BackupFile "$SicherungsPfadTemp\$($dbs).bak"
} else{
write-host "$($instanzen[$i]) existiert nicht"
}
} # ende von for-schleife
}
}
#######################################################################################################################
#Call backup task for every db
#target must be online
if ((test-path -Path $SicherungsPfadFinal) -and (New-Item -Path $SicherungsPfadFinal -Name "AccessTest.tmp" -ItemType "file" -Force -ErrorAction Stop)) {
Write-Host "Final Path is reachable"
Remove-Item -Path "$SicherungsPfadFinal\AccessTest.tmp" -Force -ErrorAction Continue
Write-Host "Checking for garbage in: $SicherungsPfad"
$Items = Get-ChildItem -LiteralPath $SicherungsPfad -Recurse:$False -Force -ErrorAction SilentlyContinue | Where-Object { $_.PSIsContainer }
If ($Items) {
Try {
FOREACH ($Item in $Items) {
Write-Host "Moving '$($Item.FullName)' to '$SicherungsPfadFinal'"
Move-Item -Path $($Item.FullName) -Destination $SicherungsPfadFinal -Force -ErrorAction Stop
}
$SicherungsPfadTempIsClean = $True
} Catch {
Write-Host "Cannot clean up temp dir!"
Write-Host $Error[0].ToString()
$SicherungsPfadTempIsClean = $False
}
} Else {
$SicherungsPfadTempIsClean = $True
}
If ($SicherungsPfadTempIsClean -eq $True) {
FOREACH ($db in $dbs) {
[string]$db = $db
$db = ($db.replace("[",""))
$db = ($db.replace("]",""))
If ($db -ne "tempdb" -and $db -ne "master" -and $db -ne "model" -and $db -ne "msdb") {
Write-Host "Sicherung von $db"
Backup-SQLDatabases -instanzen $Servername -dbs $db
}
}
#######################################################################################################################
#move dir incl. backup files to sto01
Try {
write-host $SicherungsPfadTemp
Move-Item -Path $SicherungsPfadTemp -Destination $SicherungsPfadFinal -Force -ErrorAction Stop
} Catch {
Write-Host "Error moving files!"
Write-Host $Error[0].ToSting()
}
}
} Else {
Write-Host "Target is offline!"
}

View File

@@ -0,0 +1,45 @@
@ECHO OFF
TITLE DIGITAL DATA - Run all files in directory with current permissions
ECHO -
ECHO Batch Script
ECHO Run all files in directory with current permissions
ECHO -
ECHO Digital Data
ECHO Ludwig-Rinn-Strasse 16
ECHO 35452 Heuchelheim
ECHO Tel.: 0641 / 202360
ECHO E-Mail: info@didalog.de
ECHO -
ECHO Version 1.0.0.0
ECHO Date: 13.08.2015
ECHO -
ECHO Program Startup %date% at %time:~0,8% oclock, on %computername%.
REM --------------------------------------------------------------
REM ------------------------set variables-------------------------
REM --------------------------------------------------------------
setlocal enableextensions
SET DIRECTORY="%cd%"
SET FILEEXTENSION=*.ps1
SET COUNT=0
REM --------------------------------------------------------------
REM ---------------------Program 1 / Script 1---------------------
REM --------------------------------------------------------------
FOR /F "tokens=*" %%f in ('dir /S /b %FILEEXTENSION%') do (ECHO %%f && set /a count+=1)
ECHO -
ECHO Found %count% File(s) with File Extension %FILEEXTENSION% in Directory:
ECHO %DIRECTORY%.
ECHO -
ECHO Running this/them now, with your permissions!
FOR /F "tokens=*" %%f in ('dir /S /b %FILEEXTENSION%') do (PowerShell.exe -Command "& {Start-Process PowerShell.exe -WindowStyle hidden '-ExecutionPolicy Bypass -File "%%f"'}")
ECHO -
ECHO This Window will close in:
#timeout /T 10
endlocal
exit