Files

247 lines
4.9 KiB
PowerShell
Executable File

#Requires -RunAsAdministrator
<#
===========================================================================
Veeam Backup & Replication v13 Enterprise Installer
Version : 2.0
Author : ChatGPT + Benutzer
Part 1
===========================================================================
Enthält:
- Grundeinstellungen
- Konfiguration
- Logging
- Fehlerbehandlung
- Arbeitsverzeichnisse
- Initialisierung
===========================================================================
#>
$ErrorActionPreference = "Stop"
############################################################
# VERSION
############################################################
$Script:Version = "2.0"
############################################################
# VERZEICHNISSE
############################################################
$Script:WorkDir = "C:\Temp\VeeamInstall"
$Script:LogDir = Join-Path $WorkDir "Logs"
$Script:StateFile = Join-Path $WorkDir "State.json"
$Script:ResumeFlag = Join-Path $WorkDir "Resume.flag"
$Script:InstallLog = Join-Path $LogDir "Install.log"
############################################################
# INSTALLATIONSQUELLEN
############################################################
$Script:DVDSource = "E:\"
$Script:NetworkSource = "\\172.68.1.1\Sources"
############################################################
# SQL
############################################################
$Script:SQLInstance = "VEEAMSQLSERVER"
$Script:DatabaseName = "VeeamBackup"
$Script:SQLAuthentication = 0
############################################################
# INSTALLATIONSPFADE
############################################################
$Script:InstallPath = "F:\Program Files\Veeam\Backup and Replication"
$Script:CatalogPath = "H:\VBRCatalog"
$Script:IRCachePath = "F:\ProgramData\Veeam\Backup\IRCache"
############################################################
# PORTS
############################################################
$Script:GuestCatalogPort = 9393
$Script:VeeamServicePort = 9392
$Script:SecureConnectionPort = 9401
$Script:RestServicePort = 9419
############################################################
# OPTIONEN
############################################################
$Script:AutoReboot = $true
$Script:UseLicense = $false
$Script:UseServiceAccount = $false
############################################################
# PLUGINS
############################################################
$Script:Plugins = @{
AHV_INSTALL = 0
KVM_INSTALL = 0
PVE_INSTALL = 0
SCP_INSTALL = 0
AWS_INSTALL = 0
AZURE_INSTALL = 0
GCP_INSTALL = 0
KASTEN_INSTALL = 0
}
############################################################
# LOGGING
############################################################
function Write-Log {
param(
[Parameter(Mandatory)]
[string]$Message
)
$Time = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
$Line = "$Time - $Message"
Write-Host $Line
Add-Content `
-Path $InstallLog `
-Value $Line
}
############################################################
# FEHLER
############################################################
function Stop-Installation {
param(
[string]$Message
)
Write-Log ""
Write-Log "########################################"
Write-Log "INSTALLATION ABGEBROCHEN"
Write-Log $Message
Write-Log "########################################"
exit 1
}
############################################################
# VERZEICHNISSE
############################################################
function Initialize-Directories {
if(Test-Path $WorkDir)
{
Remove-Item `
$WorkDir `
-Recurse `
-Force
}
New-Item `
-ItemType Directory `
-Path $WorkDir `
-Force | Out-Null
New-Item `
-ItemType Directory `
-Path $LogDir `
-Force | Out-Null
}
############################################################
# STARTBANNER
############################################################
function Show-Banner {
Clear-Host
Write-Host ""
Write-Host "==============================================="
Write-Host " Veeam Backup & Replication v13"
Write-Host " Enterprise Installer"
Write-Host ""
Write-Host " Version $Version"
Write-Host "==============================================="
Write-Host ""
}
############################################################
# INITIALISIERUNG
############################################################
function Initialize-Installer {
Show-Banner
Initialize-Directories
Write-Log "======================================="
Write-Log "Installer Version $Version"
Write-Log "Computer: $env:COMPUTERNAME"
Write-Log "Benutzer: $env:USERNAME"
Write-Log "======================================="
}