#!/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 # ===================================================== PCVISIT_URL="https://gitea.vmd55888.de/manuel.maier/install-pcvisit-remotehost/raw/branch/main/install-pcvisit-remotehost.bat" # ---- Alle Windows VMs abfragen ---- echo "Lese alle Windows VMs aus..." mapfile -t WINDOWS_VMS < <(qm list | awk 'NR>1 {print $1, $2}') if [ ${#WINDOWS_VMS[@]} -eq 0 ]; then echo "Keine VMs gefunden." exit 1 fi echo "Gefundene VMs:" for i in "${!WINDOWS_VMS[@]}"; do echo "[$i] ${WINDOWS_VMS[$i]}" done echo read -p "Welche VMs sollen installiert werden? (Enter = alle, z.B. 0 2 3): " CHOICE # ---- Ausgewählte VMs ermitteln ---- SELECTED=() if [[ -z "$CHOICE" ]]; then # Enter gedrückt -> alle VMs SELECTED=("${WINDOWS_VMS[@]}") else # Index-Zahlen for index in $CHOICE; do if [[ $index =~ ^[0-9]+$ ]] && [[ -n "${WINDOWS_VMS[$index]}" ]]; then SELECTED+=("${WINDOWS_VMS[$index]}") fi done fi # ---- Script auf jeder VM ausführen ---- for vm in "${SELECTED[@]}"; do VMID=$(echo $vm | awk '{print $1}') VMNAME=$(echo $vm | awk '{print $2}') echo "----------------------------------------" echo "Installiere PCVisit auf VMID $VMID ($VMNAME)..." echo " -> Erstelle C:\\TMP..." qm guest exec $VMID -- powershell -Command "mkdir C:\TMP" >/dev/null echo " -> Lade Batch-Script herunter..." qm guest exec $VMID -- powershell -Command "Invoke-WebRequest -Uri '$PCVISIT_URL' -OutFile 'C:\TMP\install-pcvisit-remotehost.bat'" >/dev/null echo " -> Starte Installation..." qm guest exec $VMID -- cmd /c "C:\TMP\install-pcvisit-remotehost.bat" echo " -> Fertig!" done echo echo "✅ Installation auf allen ausgewählten VMs abgeschlossen!"