#!/bin/bash udm_output=$(udm computers/windows list) while read -d $'\0' record; do if [ -z "$record" ]; then continue fi ol_dn=$(sed -n 's/^DN: //p' <<<"$record") name=$(sed -n 's/^ name: //p' <<<"$record") ldif=$(ldbsearch -H /var/lib/samba/private/sam.ldb \ "(&(objectClass=computer)(CN=$name))" sAMAccountName) sAMAccountName=$(sed -n 's/^sAMAccountName: //p' <<<"$ldif") if [ -z "$sAMAccountName" ]; then echo "Script error: sAMAccountName not found for CN=$name" break fi if [ "${name^^}\$" = "${sAMAccountName^^}" ]; then continue fi echo udm computers/windows modify --dn "$ol_dn" --set name="${sAMAccountName::-1}" udm computers/windows modify --dn "$ol_dn" --set name="${sAMAccountName::-1}" done < <(sed -e 's/^$/\x00/' < <(printf "$udm_output\n\n"))