mirror of
https://github.com/dockur/windows.git
synced 2026-08-03 12:37:20 +01:00
fix: Remove local account configuration when AD is used (#1924)
This commit is contained in:
+22
-15
@@ -440,6 +440,11 @@ updateXML() {
|
|||||||
sed -i -E "s|<VerticalResolution>[^<]*</VerticalResolution>|<VerticalResolution>$HEIGHT</VerticalResolution>|g" "$asset" || return 1
|
sed -i -E "s|<VerticalResolution>[^<]*</VerticalResolution>|<VerticalResolution>$HEIGHT</VerticalResolution>|g" "$asset" || return 1
|
||||||
sed -i -E "s|<HorizontalResolution>[^<]*</HorizontalResolution>|<HorizontalResolution>$WIDTH</HorizontalResolution>|g" "$asset" || return 1
|
sed -i -E "s|<HorizontalResolution>[^<]*</HorizontalResolution>|<HorizontalResolution>$WIDTH</HorizontalResolution>|g" "$asset" || return 1
|
||||||
|
|
||||||
|
if [ -n "$HOST" ]; then
|
||||||
|
host=$(escapeXMLSed "$HOST") || return 1
|
||||||
|
sed -i -E "s|<ComputerName>[^<]*</ComputerName>|<ComputerName>$host</ComputerName>|g" "$asset" || return 1
|
||||||
|
fi
|
||||||
|
|
||||||
culture=$(getLanguage "$language" "culture") || return 1
|
culture=$(getLanguage "$language" "culture") || return 1
|
||||||
|
|
||||||
if [ -n "$culture" ] && [[ "${culture,,}" != "en-us" ]]; then
|
if [ -n "$culture" ] && [[ "${culture,,}" != "en-us" ]]; then
|
||||||
@@ -465,11 +470,6 @@ updateXML() {
|
|||||||
sed -i "s|<InputLocale>0409:00000409</InputLocale>|<InputLocale>$value</InputLocale>|g" "$asset" || return 1
|
sed -i "s|<InputLocale>0409:00000409</InputLocale>|<InputLocale>$value</InputLocale>|g" "$asset" || return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$HOST" ]; then
|
|
||||||
host=$(escapeXMLSed "$HOST") || return 1
|
|
||||||
sed -i -E "s|<ComputerName>[^<]*</ComputerName>|<ComputerName>$host</ComputerName>|g" "$asset" || return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
domain="$DOMAIN"
|
domain="$DOMAIN"
|
||||||
workgroup="$WORKGROUP"
|
workgroup="$WORKGROUP"
|
||||||
|
|
||||||
@@ -544,19 +544,16 @@ updateXML() {
|
|||||||
sed -i "s|<Username>Docker</Username>|<Username>$user_xml</Username>|g" "$asset" || return 1
|
sed -i "s|<Username>Docker</Username>|<Username>$user_xml</Username>|g" "$asset" || return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -n "$domain" ]; then
|
|
||||||
pass="admin"
|
|
||||||
else
|
|
||||||
[ -n "$PASSWORD" ] && pass="$PASSWORD" || pass="admin"
|
[ -n "$PASSWORD" ] && pass="$PASSWORD" || pass="admin"
|
||||||
|
|
||||||
|
pw=$(printf '%s' "${pass}Password" | iconv -f utf-8 -t utf-16le | base64 -w 0) || return 1
|
||||||
|
admin=$(printf '%s' "${pass}AdministratorPassword" | iconv -f utf-8 -t utf-16le | base64 -w 0) || return 1
|
||||||
|
|
||||||
|
sed -i -z -E "s#(<Password>[[:space:]]*<Value)([[:space:]]*/>|>[^<]*</Value>)#\1>$pw</Value>#g" "$asset" || return 1
|
||||||
|
sed -i -z -E "s#(<AdministratorPassword>[[:space:]]*<Value)([[:space:]]*/>|>[^<]*</Value>)#\1>$admin</Value>#g" "$asset" || return 1
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
pw=$(printf '%s' "${pass}Password" | iconv -f utf-8 -t utf-16le | base64 -w 0) || return 1
|
|
||||||
admin=$(printf '%s' "${pass}AdministratorPassword" | iconv -f utf-8 -t utf-16le | base64 -w 0) || return 1
|
|
||||||
|
|
||||||
sed -i -z -E "s#(<Password>[[:space:]]*<Value)([[:space:]]*/>|>[^<]*</Value>)#\1>$pw</Value>#g" "$asset" || return 1
|
|
||||||
sed -i -z -E "s#(<AdministratorPassword>[[:space:]]*<Value)([[:space:]]*/>|>[^<]*</Value>)#\1>$admin</Value>#g" "$asset" || return 1
|
|
||||||
sed -i -E "s|<PlainText>[^<]*</PlainText>|<PlainText>false</PlainText>|g" "$asset" || return 1
|
sed -i -E "s|<PlainText>[^<]*</PlainText>|<PlainText>false</PlainText>|g" "$asset" || return 1
|
||||||
|
|
||||||
if [ -n "$domain" ]; then
|
if [ -n "$domain" ]; then
|
||||||
@@ -569,6 +566,14 @@ updateXML() {
|
|||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if ! sed -i -E \
|
||||||
|
-e '/^[[:space:]]*<LocalAccounts([[:space:]>])/,/^[[:space:]]*<\/LocalAccounts>[[:space:]]*$/d' \
|
||||||
|
-e '/^[[:space:]]*<AdministratorPassword([[:space:]>])/,/^[[:space:]]*<\/AdministratorPassword>[[:space:]]*$/d' \
|
||||||
|
"$asset"; then
|
||||||
|
error "Failed to remove local account configuration from answer file!"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
elif [ -n "$workgroup" ]; then
|
elif [ -n "$workgroup" ]; then
|
||||||
|
|
||||||
if ! updateWorkgroup "$asset" "$workgroup"; then
|
if ! updateWorkgroup "$asset" "$workgroup"; then
|
||||||
@@ -697,6 +702,8 @@ detectLegacy() {
|
|||||||
local dir="$1"
|
local dir="$1"
|
||||||
local find
|
local find
|
||||||
|
|
||||||
|
[[ "${PLATFORM,,}" != "x64" ]] && return 1
|
||||||
|
|
||||||
find=$(find "$dir" -maxdepth 1 -type d -iname WIN95 -print -quit)
|
find=$(find "$dir" -maxdepth 1 -type d -iname WIN95 -print -quit)
|
||||||
[ -n "$find" ] && DETECTED="win95" && return 0
|
[ -n "$find" ] && DETECTED="win95" && return 0
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user