diff --git a/misc/update-lxcs.sh b/misc/update-lxcs.sh
index 4c293179..b8176b46 100644
--- a/misc/update-lxcs.sh
+++ b/misc/update-lxcs.sh
@@ -26,7 +26,7 @@ GN=$(echo "\033[1;92m")
 CL=$(echo "\033[m")
 header_info
 while true; do
-  read -p "This Will Update All LXC Containers. Proceed(y/n)?" yn
+  read -p "This Will Update Selected LXC Containers. Proceed(y/n)?" yn
   case $yn in
   [Yy]*) break ;;
   [Nn]*) exit ;;
@@ -34,7 +34,20 @@ while true; do
   esac
 done
 clear
-excluded_containers=("$@")
+TITLE="Containers on node"
+while read -r line; do
+  TAG=$(echo "$line" | awk '{print $1}')
+  ITEM=$(echo "$line" | awk '{print substr($0,36)}')
+  OFFSET=2
+  if [[ $((${#ITEM} + $OFFSET)) -gt ${MSG_MAX_LENGTH:-} ]]; then
+    MSG_MAX_LENGTH=$((${#ITEM} + $OFFSET))
+  fi
+  CTID_MENU+=("$TAG" "$ITEM " "OFF")
+done < <(pct list | awk 'NR>1')
+excluded_containers=$(whiptail --title "$TITLE" --checklist \
+  "\nSelect containers to skip from updates:\n" \
+  16 $(($MSG_MAX_LENGTH + 23)) 6 \
+  "${CTID_MENU[@]}" 3>&1 1>&2 2>&3 | tr -d '"') || exit
 function update_container() {
   container=$1
   header_info
@@ -56,14 +69,7 @@ function update_container() {
 }
 header_info
 for container in $(pct list | awk '{if(NR>1) print $1}'); do
-  excluded=false
-  for excluded_container in "${excluded_containers[@]}"; do
-    if [ "$container" == "$excluded_container" ]; then
-      excluded=true
-      break
-    fi
-  done
-  if [ "$excluded" == true ]; then
+  if [[ " ${excluded_containers[@]} " =~ " $container " ]]; then
     header_info
     echo -e "${BL}[Info]${GN} Skipping ${BL}$container${CL}"
     sleep 1
@@ -85,4 +91,4 @@ for container in $(pct list | awk '{if(NR>1) print $1}'); do
 done
 wait
 header_info
-echo -e "${GN} Finished, All Containers Updated. ${CL} \n"
+echo -e "${GN} Finished, Selected Containers Updated. ${CL} \n"