install-pcvisit-remotehost.sh aktualisiert

This commit is contained in:
2026-01-28 00:13:04 +01:00
parent 0329c13375
commit da2ea878e8

View File

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