#!/bin/bash # ===================================================== # Proxmox PCVISIT Master Installer # Führt das Remote-Host Installationsscript auf ausgewählten Windows-VMs aus # Enter = alle, oder Index-Zahlen wie 0 2 3 # ===================================================== # ---- Farben / Layout ---- BOLD="\033[1m" GREEN="\033[32m" YELLOW="\033[33m" CYAN="\033[36m" RED="\033[31m" RESET="\033[0m" INDENT=" " PCVISIT_URL="https://gitea.vmd55888.de/manuel.maier/install-pcvisit-remotehost/raw/branch/main/install-pcvisit-remotehost.bat" # ---- Root Check ---- if [[ $EUID -ne 0 ]]; then echo -e "${RED}${BOLD}${INDENT}Bitte als Root ausführen!${RESET}" exit 1 fi # ---- Alle Windows VMs abfragen ---- echo -e "${CYAN}${BOLD}${INDENT}Lese alle Windows VMs aus...${RESET}" mapfile -t WINDOWS_VMS < <(qm list | awk 'NR>1 {print $1, $2}') if [ ${#WINDOWS_VMS[@]} -eq 0 ]; then echo -e "${YELLOW}${INDENT}Keine Windows VMs gefunden.${RESET}" exit 1 fi # ---- Gefundene VMs anzeigen ---- echo -e "${CYAN}${BOLD}${INDENT}Gefundene Windows VMs:${RESET}" for i in "${!WINDOWS_VMS[@]}"; do echo -e "${INDENT}[${YELLOW}$i${RESET}] ${WINDOWS_VMS[$i]}" done # ---- Auswahl der VMs ---- echo read -p "${INDENT}Welche VMs sollen installiert werden? (Enter = alle, z.B. 0 2 3): " CHOICE SELECTED=() if [[ -z "$CHOICE" ]]; then SELECTED=("${WINDOWS_VMS[@]}") else for index in $CHOICE; do if [[ $index =~ ^[0-9]+$ ]] && [[ -n "${WINDOWS_VMS[$index]}" ]]; then SELECTED+=("${WINDOWS_VMS[$index]}") else echo -e "${RED}${INDENT}Ungültiger Index: $index${RESET}" fi done fi # ---- Installation auf ausgewählten VMs ---- for vm in "${SELECTED[@]}"; do VMID=$(echo $vm | awk '{print $1}') VMNAME=$(echo $vm | awk '{print $2}') echo -e "\n${CYAN}${BOLD}${INDENT}----------------------------------------${RESET}" echo -e "${GREEN}${INDENT}Installiere PCVisit auf VMID $VMID ($VMNAME)...${RESET}" echo -e "${INDENT} -> Erstelle C:\\TMP..." qm guest exec $VMID -- powershell -Command "mkdir C:\TMP" >/dev/null 2>&1 echo -e "${INDENT} -> Lade Batch-Script herunter..." qm guest exec $VMID -- powershell -Command "Invoke-WebRequest -Uri '$PCVISIT_URL' -OutFile 'C:\TMP\install-pcvisit-remotehost.bat'" >/dev/null 2>&1 echo -e "${INDENT} -> Starte Installation..." qm guest exec $VMID -- cmd /c "C:\TMP\install-pcvisit-remotehost.bat" echo -e "${GREEN}${INDENT} -> Fertig mit VMID $VMID ($VMNAME)!${RESET}" done echo -e "\n${GREEN}${BOLD}${INDENT}✅ Installation auf allen ausgewählten VMs abgeschlossen!${RESET}"