mirror of
https://github.com/dockur/windows.git
synced 2026-08-03 20:47:12 +01:00
Compare commits
124 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f6fcb46958 | |||
| 4fdc3f0428 | |||
| 16f763912b | |||
| e00d1aead1 | |||
| 78ba661605 | |||
| bada80331d | |||
| c589e1be18 | |||
| 2ac9d71b32 | |||
| e7e637531e | |||
| b90ded928b | |||
| 0d0dd7be87 | |||
| 5b080ac6c8 | |||
| 6df58b5dc7 | |||
| 8929f7cdcd | |||
| aa6240ff99 | |||
| 3d3bab023d | |||
| 36d127d8cf | |||
| 2b7d7bf902 | |||
| 30d9858c7d | |||
| 09941ba0f6 | |||
| 828bdb1b29 | |||
| c64cf2313b | |||
| f45575c13f | |||
| 11b300149f | |||
| 605f31af72 | |||
| 4e35ead612 | |||
| 0a3bff5a7d | |||
| fdad5260cf | |||
| 0728b3e0a8 | |||
| 184ab1c481 | |||
| 4cf7dc005b | |||
| da7dd544b3 | |||
| 213245e5c9 | |||
| 240db47ae0 | |||
| 2ee0ae2e28 | |||
| bc17fdfe74 | |||
| 3d9ede8852 | |||
| 66d51a23c6 | |||
| 6bdfb06827 | |||
| ce1e7b877d | |||
| d1b3364471 | |||
| 4b5eb2c882 | |||
| fe36fe3ab8 | |||
| c64467596b | |||
| 28b5ee1f08 | |||
| 173b67b2af | |||
| b692649a4f | |||
| b721ba2320 | |||
| 6bfe2ff106 | |||
| c739e41e7e | |||
| 99ac4035c7 | |||
| b656a8a57f | |||
| 7f1f5510d5 | |||
| 2515318f89 | |||
| b310f56e78 | |||
| c0a48b23c8 | |||
| d3253830fe | |||
| 48150e7060 | |||
| 958d25d095 | |||
| a1047a8deb | |||
| b10e4d7fdc | |||
| c2f73db036 | |||
| 742f0bddee | |||
| 603fe5e491 | |||
| b1dc452ed2 | |||
| 21d628e924 | |||
| ef5ce4ad65 | |||
| 377337a625 | |||
| 49135eb09e | |||
| 598ff994f6 | |||
| ef49e7bb0b | |||
| a831593327 | |||
| da73600b14 | |||
| 1a698a3943 | |||
| 293166c428 | |||
| f193dac580 | |||
| c60aff232f | |||
| 4b9dbf8f1a | |||
| 31770bec44 | |||
| 43e209294f | |||
| 8bb131d4fe | |||
| b6a160c19e | |||
| 9f87b3a69b | |||
| 28d83e8aab | |||
| 7996bacb39 | |||
| 520be36ed5 | |||
| 577be226fe | |||
| c7514780c5 | |||
| df5b0e639f | |||
| 12be0a7d77 | |||
| e925d664d5 | |||
| c888801f4d | |||
| 092800903c | |||
| a67a6a26e8 | |||
| d29cca7f51 | |||
| f200781975 | |||
| ee94f2c0ae | |||
| bd147e236b | |||
| 2a24e1a4c7 | |||
| 421ba38b70 | |||
| 14b736567a | |||
| 4fb5ddd02f | |||
| 6233599f28 | |||
| 9409c06e32 | |||
| c9e09156a5 | |||
| 5642d3e045 | |||
| fbdcc7457c | |||
| 09bd2b2c4b | |||
| 05996b083b | |||
| 895d726b8b | |||
| 9caf1a9a3f | |||
| 59cba25705 | |||
| 19b354bccf | |||
| 810a53980f | |||
| f997e81e81 | |||
| 11a16d34f8 | |||
| 2f70dbde3c | |||
| 6119201d93 | |||
| bbe972d3e5 | |||
| 9e09567c73 | |||
| 378312cfa4 | |||
| 55ac87c0c4 | |||
| d75ed28b35 | |||
| ea19f2e5ed |
@@ -1,4 +1,5 @@
|
|||||||
version: 2
|
version: 2
|
||||||
|
|
||||||
updates:
|
updates:
|
||||||
- package-ecosystem: docker
|
- package-ecosystem: docker
|
||||||
directory: /
|
directory: /
|
||||||
@@ -6,9 +7,15 @@ updates:
|
|||||||
interval: weekly
|
interval: weekly
|
||||||
cooldown:
|
cooldown:
|
||||||
default-days: 7
|
default-days: 7
|
||||||
|
|
||||||
- package-ecosystem: github-actions
|
- package-ecosystem: github-actions
|
||||||
directory: /
|
directory: /
|
||||||
schedule:
|
schedule:
|
||||||
interval: weekly
|
interval: weekly
|
||||||
cooldown:
|
cooldown:
|
||||||
default-days: 7
|
default-days: 7
|
||||||
|
ignore:
|
||||||
|
- dependency-name: "*"
|
||||||
|
update-types:
|
||||||
|
- version-update:semver-minor
|
||||||
|
- version-update:semver-patch
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
on: [workflow_call]
|
on: [workflow_call]
|
||||||
|
|
||||||
name: "Check"
|
name: "Check"
|
||||||
|
|
||||||
permissions: {}
|
permissions: {}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
@@ -15,7 +17,13 @@ jobs:
|
|||||||
name: Run ShellCheck
|
name: Run ShellCheck
|
||||||
uses: ludeeus/action-shellcheck@master
|
uses: ludeeus/action-shellcheck@master
|
||||||
env:
|
env:
|
||||||
SHELLCHECK_OPTS: -x --source-path=src -e SC1091 -e SC2001 -e SC2002 -e SC2034 -e SC2064 -e SC2153 -e SC2317 -e SC2028
|
SHELLCHECK_OPTS: >-
|
||||||
|
-x
|
||||||
|
--source-path=src
|
||||||
|
-e SC1091
|
||||||
|
-e SC2034
|
||||||
|
-e SC2153
|
||||||
|
-e SC2317
|
||||||
-
|
-
|
||||||
name: Lint Dockerfile
|
name: Lint Dockerfile
|
||||||
uses: hadolint/hadolint-action@v3.3.0
|
uses: hadolint/hadolint-action@v3.3.0
|
||||||
@@ -31,6 +39,4 @@ jobs:
|
|||||||
file-endings: ".xml"
|
file-endings: ".xml"
|
||||||
-
|
-
|
||||||
name: Validate JSON and YML files
|
name: Validate JSON and YML files
|
||||||
uses: GrantBirki/json-yaml-validate@v5.0.0
|
uses: GrantBirki/json-yaml-validate@v5
|
||||||
with:
|
|
||||||
yaml_exclude_regex: ".*\\kubernetes\\.yml$"
|
|
||||||
|
|||||||
@@ -0,0 +1,763 @@
|
|||||||
|
name: Installation
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
name:
|
||||||
|
description: Display name for the Windows version
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
|
||||||
|
version:
|
||||||
|
description: VERSION value passed to the container
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
|
||||||
|
runner:
|
||||||
|
description: GitHub Actions runner
|
||||||
|
required: false
|
||||||
|
default: ubuntu-24.04
|
||||||
|
type: string
|
||||||
|
|
||||||
|
image:
|
||||||
|
description: Container image to test
|
||||||
|
required: false
|
||||||
|
default: ghcr.io/dockur/windows:latest
|
||||||
|
type: string
|
||||||
|
|
||||||
|
callback:
|
||||||
|
description: Guest script type
|
||||||
|
required: false
|
||||||
|
default: powershell
|
||||||
|
type: string
|
||||||
|
|
||||||
|
cpu:
|
||||||
|
description: CPU model exposed to Windows
|
||||||
|
required: false
|
||||||
|
default: host
|
||||||
|
type: string
|
||||||
|
|
||||||
|
expected_caption:
|
||||||
|
description: Text expected in the Windows caption
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
|
||||||
|
expected_edition:
|
||||||
|
description: Expected Windows EditionID
|
||||||
|
required: false
|
||||||
|
default: ""
|
||||||
|
type: string
|
||||||
|
|
||||||
|
minimum_build:
|
||||||
|
description: Minimum acceptable Windows build number
|
||||||
|
required: true
|
||||||
|
type: number
|
||||||
|
|
||||||
|
platform:
|
||||||
|
description: Expected Windows platform
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
install:
|
||||||
|
name: ${{ inputs.name }}
|
||||||
|
runs-on: ${{ inputs.runner }}
|
||||||
|
timeout-minutes: 180
|
||||||
|
|
||||||
|
env:
|
||||||
|
CONTAINER: windows-test
|
||||||
|
IMAGE: ${{ inputs.image }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Check KVM
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
set -Eeuo pipefail
|
||||||
|
|
||||||
|
test -c /dev/kvm
|
||||||
|
|
||||||
|
- name: Free disk space
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
set -Eeuo pipefail
|
||||||
|
|
||||||
|
sudo rm -rf \
|
||||||
|
/usr/local/.ghcup \
|
||||||
|
/usr/local/lib/android \
|
||||||
|
/usr/local/lib/node_modules \
|
||||||
|
/usr/local/share/boost \
|
||||||
|
/usr/local/share/chromium \
|
||||||
|
/usr/local/share/powershell \
|
||||||
|
/usr/share/dotnet \
|
||||||
|
/usr/share/swift \
|
||||||
|
/opt/az \
|
||||||
|
/opt/ghc \
|
||||||
|
/opt/google \
|
||||||
|
/opt/hostedtoolcache \
|
||||||
|
/opt/microsoft \
|
||||||
|
/opt/pipx
|
||||||
|
|
||||||
|
sudo apt-get clean
|
||||||
|
sudo rm -rf \
|
||||||
|
/var/cache/apt/* \
|
||||||
|
/var/lib/apt/lists/*
|
||||||
|
|
||||||
|
docker system prune \
|
||||||
|
--all \
|
||||||
|
--force \
|
||||||
|
--volumes > /dev/null || true
|
||||||
|
|
||||||
|
available_kb="$(df --output=avail / | tail -1)"
|
||||||
|
available_gb="$((available_kb / 1024 / 1024))"
|
||||||
|
|
||||||
|
echo "Available disk space: ${available_gb} GB"
|
||||||
|
|
||||||
|
if (( available_gb < 40 )); then
|
||||||
|
echo "At least 40 GB of free space is required."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Prepare installation test
|
||||||
|
id: test
|
||||||
|
shell: bash
|
||||||
|
env:
|
||||||
|
CALLBACK: ${{ inputs.callback }}
|
||||||
|
run: |
|
||||||
|
set -Eeuo pipefail
|
||||||
|
|
||||||
|
case "$CALLBACK" in
|
||||||
|
powershell | legacy)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unsupported guest script type: $CALLBACK"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
token="$(cat /proc/sys/kernel/random/uuid)"
|
||||||
|
|
||||||
|
mkdir -p \
|
||||||
|
"$RUNNER_TEMP/data" \
|
||||||
|
"$RUNNER_TEMP/oem" \
|
||||||
|
"$RUNNER_TEMP/storage"
|
||||||
|
|
||||||
|
printf '%s\n' "$token" > "$RUNNER_TEMP/data/readme.txt"
|
||||||
|
|
||||||
|
cat > "$RUNNER_TEMP/oem/sync-log.bat" <<'BATCH'
|
||||||
|
@echo off
|
||||||
|
setlocal
|
||||||
|
|
||||||
|
:sync
|
||||||
|
if exist C:\OEM\install.log (
|
||||||
|
copy /Y C:\OEM\install.log \\host.lan\Data\install.tmp >nul 2>&1
|
||||||
|
|
||||||
|
if not errorlevel 1 (
|
||||||
|
move /Y \\host.lan\Data\install.tmp \\host.lan\Data\install.log >nul 2>&1
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
if /I "%~1"=="once" exit /B
|
||||||
|
if exist C:\OEM\install.done exit /B
|
||||||
|
|
||||||
|
ping 127.0.0.1 -n 6 >nul
|
||||||
|
goto sync
|
||||||
|
BATCH
|
||||||
|
|
||||||
|
case "$CALLBACK" in
|
||||||
|
powershell)
|
||||||
|
cat > "$RUNNER_TEMP/oem/ready.ps1" <<'POWERSHELL'
|
||||||
|
param(
|
||||||
|
[Parameter(Mandatory = $true)]
|
||||||
|
[string]$Token
|
||||||
|
)
|
||||||
|
|
||||||
|
$ErrorActionPreference = "Stop"
|
||||||
|
|
||||||
|
while ($true) {
|
||||||
|
try {
|
||||||
|
$windows = Get-CimInstance Win32_OperatingSystem
|
||||||
|
$registry = Get-ItemProperty `
|
||||||
|
"HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion"
|
||||||
|
|
||||||
|
$platform = switch (
|
||||||
|
$env:PROCESSOR_ARCHITECTURE.ToUpperInvariant()
|
||||||
|
) {
|
||||||
|
"AMD64" {
|
||||||
|
"x64"
|
||||||
|
}
|
||||||
|
"ARM64" {
|
||||||
|
"arm64"
|
||||||
|
}
|
||||||
|
"X86" {
|
||||||
|
"x86"
|
||||||
|
}
|
||||||
|
default {
|
||||||
|
$env:PROCESSOR_ARCHITECTURE.ToLowerInvariant()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$share = (
|
||||||
|
Get-Content `
|
||||||
|
-LiteralPath "\\host.lan\Data\readme.txt" `
|
||||||
|
-Raw
|
||||||
|
).Trim()
|
||||||
|
|
||||||
|
$result = @{
|
||||||
|
token = $Token
|
||||||
|
caption = [string]$windows.Caption
|
||||||
|
edition = [string]$registry.EditionID
|
||||||
|
version = [string]$windows.Version
|
||||||
|
build = [string]$windows.BuildNumber
|
||||||
|
platform = $platform
|
||||||
|
share = $share
|
||||||
|
}
|
||||||
|
|
||||||
|
$json = $result | ConvertTo-Json -Compress
|
||||||
|
$temporary = "\\host.lan\Data\windows.tmp"
|
||||||
|
$destination = "\\host.lan\Data\windows.json"
|
||||||
|
$encoding = New-Object System.Text.UTF8Encoding($false)
|
||||||
|
|
||||||
|
[System.IO.File]::WriteAllText(
|
||||||
|
$temporary,
|
||||||
|
$json,
|
||||||
|
$encoding
|
||||||
|
)
|
||||||
|
|
||||||
|
Move-Item `
|
||||||
|
-LiteralPath $temporary `
|
||||||
|
-Destination $destination `
|
||||||
|
-Force
|
||||||
|
|
||||||
|
break
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
Write-Output "$(Get-Date -Format s) - Callback retry: $($_.Exception.Message)"
|
||||||
|
Start-Sleep -Seconds 10
|
||||||
|
}
|
||||||
|
}
|
||||||
|
POWERSHELL
|
||||||
|
|
||||||
|
cat > "$RUNNER_TEMP/oem/install.bat" <<EOF
|
||||||
|
@echo off
|
||||||
|
del /Q C:\OEM\install.done 2>nul
|
||||||
|
start "" /B cmd.exe /C C:\OEM\sync-log.bat
|
||||||
|
|
||||||
|
powershell.exe -NoProfile -ExecutionPolicy Bypass ^
|
||||||
|
-File C:\OEM\ready.ps1 ^
|
||||||
|
-Token "$token"
|
||||||
|
|
||||||
|
set "result=%errorlevel%"
|
||||||
|
type nul > C:\OEM\install.done
|
||||||
|
call C:\OEM\sync-log.bat once
|
||||||
|
exit /B %result%
|
||||||
|
EOF
|
||||||
|
;;
|
||||||
|
|
||||||
|
legacy)
|
||||||
|
cat > "$RUNNER_TEMP/oem/ready.vbs" <<'VBSCRIPT'
|
||||||
|
Option Explicit
|
||||||
|
|
||||||
|
Const ForReading = 1
|
||||||
|
Const ForWriting = 2
|
||||||
|
|
||||||
|
Dim arguments
|
||||||
|
Dim token
|
||||||
|
|
||||||
|
Set arguments = WScript.Arguments
|
||||||
|
|
||||||
|
If arguments.Count < 1 Then
|
||||||
|
WScript.Quit 1
|
||||||
|
End If
|
||||||
|
|
||||||
|
token = arguments(0)
|
||||||
|
|
||||||
|
Function EscapeJson(value)
|
||||||
|
Dim result
|
||||||
|
|
||||||
|
result = CStr(value)
|
||||||
|
result = Replace(result, "\", "\\")
|
||||||
|
result = Replace(result, Chr(34), "\" & Chr(34))
|
||||||
|
result = Replace(result, vbCr, "\r")
|
||||||
|
result = Replace(result, vbLf, "\n")
|
||||||
|
result = Replace(result, vbTab, "\t")
|
||||||
|
|
||||||
|
EscapeJson = result
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Function ReadRegistry(shell, path)
|
||||||
|
Dim value
|
||||||
|
|
||||||
|
value = ""
|
||||||
|
|
||||||
|
On Error Resume Next
|
||||||
|
value = shell.RegRead(path)
|
||||||
|
|
||||||
|
If Err.Number <> 0 Then
|
||||||
|
Err.Clear
|
||||||
|
value = ""
|
||||||
|
End If
|
||||||
|
|
||||||
|
On Error GoTo 0
|
||||||
|
|
||||||
|
ReadRegistry = CStr(value)
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Function ReadTextFile(filesystem, path)
|
||||||
|
Dim file
|
||||||
|
Dim value
|
||||||
|
|
||||||
|
value = ""
|
||||||
|
|
||||||
|
Set file = filesystem.OpenTextFile(path, ForReading, False)
|
||||||
|
value = file.ReadAll
|
||||||
|
file.Close
|
||||||
|
|
||||||
|
value = Replace(value, vbCr, "")
|
||||||
|
value = Replace(value, vbLf, "")
|
||||||
|
|
||||||
|
ReadTextFile = value
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Function GetPlatform(shell)
|
||||||
|
Dim architecture
|
||||||
|
|
||||||
|
architecture = UCase(shell.ExpandEnvironmentStrings("%PROCESSOR_ARCHITECTURE%"))
|
||||||
|
|
||||||
|
Select Case architecture
|
||||||
|
Case "AMD64"
|
||||||
|
GetPlatform = "x64"
|
||||||
|
Case "ARM64"
|
||||||
|
GetPlatform = "arm64"
|
||||||
|
Case "X86"
|
||||||
|
GetPlatform = "x86"
|
||||||
|
Case Else
|
||||||
|
GetPlatform = LCase(architecture)
|
||||||
|
End Select
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Dim filesystem
|
||||||
|
Dim shell
|
||||||
|
Dim locator
|
||||||
|
Dim service
|
||||||
|
Dim systems
|
||||||
|
Dim system
|
||||||
|
|
||||||
|
Dim caption
|
||||||
|
Dim edition
|
||||||
|
Dim version
|
||||||
|
Dim build
|
||||||
|
Dim platform
|
||||||
|
Dim share
|
||||||
|
|
||||||
|
Dim json
|
||||||
|
Dim temporary
|
||||||
|
Dim destination
|
||||||
|
Dim file
|
||||||
|
Dim success
|
||||||
|
|
||||||
|
temporary = "\\host.lan\Data\windows.tmp"
|
||||||
|
destination = "\\host.lan\Data\windows.json"
|
||||||
|
|
||||||
|
Do
|
||||||
|
success = False
|
||||||
|
|
||||||
|
On Error Resume Next
|
||||||
|
Err.Clear
|
||||||
|
|
||||||
|
Set filesystem = CreateObject("Scripting.FileSystemObject")
|
||||||
|
Set shell = CreateObject("WScript.Shell")
|
||||||
|
Set locator = CreateObject("WbemScripting.SWbemLocator")
|
||||||
|
Set service = locator.ConnectServer(".", "root\cimv2")
|
||||||
|
Set systems = service.ExecQuery("SELECT Caption, Version, BuildNumber FROM Win32_OperatingSystem")
|
||||||
|
|
||||||
|
caption = ""
|
||||||
|
version = ""
|
||||||
|
build = ""
|
||||||
|
|
||||||
|
If Err.Number = 0 Then
|
||||||
|
For Each system In systems
|
||||||
|
caption = CStr(system.Caption)
|
||||||
|
version = CStr(system.Version)
|
||||||
|
build = CStr(system.BuildNumber)
|
||||||
|
Exit For
|
||||||
|
Next
|
||||||
|
End If
|
||||||
|
|
||||||
|
If Err.Number = 0 Then
|
||||||
|
edition = ReadRegistry(shell, "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\EditionID")
|
||||||
|
platform = GetPlatform(shell)
|
||||||
|
share = ReadTextFile(filesystem, "\\host.lan\Data\readme.txt")
|
||||||
|
End If
|
||||||
|
|
||||||
|
If Err.Number = 0 Then
|
||||||
|
json = _
|
||||||
|
"{" & _
|
||||||
|
"""token"":""" & EscapeJson(token) & """," & _
|
||||||
|
"""caption"":""" & EscapeJson(caption) & """," & _
|
||||||
|
"""edition"":""" & EscapeJson(edition) & """," & _
|
||||||
|
"""version"":""" & EscapeJson(version) & """," & _
|
||||||
|
"""build"":""" & EscapeJson(build) & """," & _
|
||||||
|
"""platform"":""" & EscapeJson(platform) & """," & _
|
||||||
|
"""share"":""" & EscapeJson(share) & """" & _
|
||||||
|
"}"
|
||||||
|
|
||||||
|
Set file = filesystem.OpenTextFile(temporary, ForWriting, True)
|
||||||
|
file.Write json
|
||||||
|
file.Close
|
||||||
|
End If
|
||||||
|
|
||||||
|
If Err.Number = 0 Then
|
||||||
|
If filesystem.FileExists(destination) Then
|
||||||
|
filesystem.DeleteFile destination, True
|
||||||
|
End If
|
||||||
|
|
||||||
|
filesystem.MoveFile temporary, destination
|
||||||
|
End If
|
||||||
|
|
||||||
|
If Err.Number = 0 Then
|
||||||
|
success = True
|
||||||
|
Else
|
||||||
|
WScript.Echo _
|
||||||
|
Now & _
|
||||||
|
" - Callback retry: 0x" & _
|
||||||
|
Hex(Err.Number) & _
|
||||||
|
" - " & _
|
||||||
|
Err.Description
|
||||||
|
End If
|
||||||
|
|
||||||
|
Err.Clear
|
||||||
|
On Error GoTo 0
|
||||||
|
|
||||||
|
If success Then
|
||||||
|
Exit Do
|
||||||
|
End If
|
||||||
|
|
||||||
|
WScript.Sleep 10000
|
||||||
|
Loop
|
||||||
|
VBSCRIPT
|
||||||
|
|
||||||
|
cat > "$RUNNER_TEMP/oem/install.bat" <<EOF
|
||||||
|
@echo off
|
||||||
|
del /Q C:\OEM\install.done 2>nul
|
||||||
|
start "" /B cmd.exe /C C:\OEM\sync-log.bat
|
||||||
|
|
||||||
|
cscript.exe //B //NoLogo C:\OEM\ready.vbs "$token"
|
||||||
|
|
||||||
|
set "result=%errorlevel%"
|
||||||
|
type nul > C:\OEM\install.done
|
||||||
|
call C:\OEM\sync-log.bat once
|
||||||
|
exit /B %result%
|
||||||
|
EOF
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
echo "token=$token" >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
|
- name: Pull image
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
set -Eeuo pipefail
|
||||||
|
|
||||||
|
docker pull "$IMAGE"
|
||||||
|
|
||||||
|
docker image inspect "$IMAGE" \
|
||||||
|
--format 'Digest: {{index .RepoDigests 0}}'
|
||||||
|
|
||||||
|
- name: Install and validate Windows
|
||||||
|
shell: bash
|
||||||
|
env:
|
||||||
|
CPU: ${{ inputs.cpu }}
|
||||||
|
EXPECTED_TOKEN: ${{ steps.test.outputs.token }}
|
||||||
|
EXPECTED_CAPTION: ${{ inputs.expected_caption }}
|
||||||
|
EXPECTED_EDITION: ${{ inputs.expected_edition }}
|
||||||
|
EXPECTED_PLATFORM: ${{ inputs.platform }}
|
||||||
|
MINIMUM_BUILD: ${{ inputs.minimum_build }}
|
||||||
|
VERSION: ${{ inputs.version }}
|
||||||
|
DISPLAY_NAME: ${{ inputs.name }}
|
||||||
|
run: |
|
||||||
|
set -Eeuo pipefail
|
||||||
|
|
||||||
|
docker run --detach \
|
||||||
|
--name "$CONTAINER" \
|
||||||
|
--device /dev/kvm \
|
||||||
|
--device /dev/net/tun \
|
||||||
|
--cap-add NET_ADMIN \
|
||||||
|
--stop-timeout 120 \
|
||||||
|
--env "VERSION=$VERSION" \
|
||||||
|
--env "RAM_SIZE=half" \
|
||||||
|
--env "CPU_CORES=half" \
|
||||||
|
--env "CPU_MODEL=$CPU" \
|
||||||
|
--env "LOG=Y" \
|
||||||
|
--env "DISK_SIZE=64G" \
|
||||||
|
--volume "$RUNNER_TEMP/data:/shared" \
|
||||||
|
--volume "$RUNNER_TEMP/oem:/oem:ro" \
|
||||||
|
--volume "$RUNNER_TEMP/storage:/storage" \
|
||||||
|
"$IMAGE"
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "Container log:"
|
||||||
|
echo "------------------------------------------------------------"
|
||||||
|
|
||||||
|
docker logs \
|
||||||
|
--follow \
|
||||||
|
--timestamps \
|
||||||
|
"$CONTAINER" &
|
||||||
|
|
||||||
|
logs_pid="$!"
|
||||||
|
guest_log="$RUNNER_TEMP/data/install.log"
|
||||||
|
|
||||||
|
(
|
||||||
|
offset=0
|
||||||
|
snapshot="$RUNNER_TEMP/install-log.snapshot"
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
if cp "$guest_log" "$snapshot" 2>/dev/null; then
|
||||||
|
size="$(stat -c %s "$snapshot" 2>/dev/null || echo 0)"
|
||||||
|
|
||||||
|
if (( size < offset )); then
|
||||||
|
offset=0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if (( size > offset )); then
|
||||||
|
tail -c "+$((offset + 1))" "$snapshot" 2>/dev/null |
|
||||||
|
sed -u 's/^/[install.bat] /' || true
|
||||||
|
offset="$size"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
sleep 2
|
||||||
|
done
|
||||||
|
) &
|
||||||
|
|
||||||
|
guest_logs_pid="$!"
|
||||||
|
|
||||||
|
stop_logs() {
|
||||||
|
kill "$logs_pid" "$guest_logs_pid" 2>/dev/null || true
|
||||||
|
wait "$logs_pid" "$guest_logs_pid" 2>/dev/null || true
|
||||||
|
}
|
||||||
|
|
||||||
|
trap stop_logs EXIT
|
||||||
|
|
||||||
|
deadline=$((SECONDS + 9000))
|
||||||
|
reboot_timeout=1800
|
||||||
|
minimum_reboots=1
|
||||||
|
boot_loop_limit=5
|
||||||
|
first_bios_start=-1
|
||||||
|
|
||||||
|
while (( SECONDS < deadline )); do
|
||||||
|
state="$(
|
||||||
|
docker inspect \
|
||||||
|
--format '{{.State.Status}}' \
|
||||||
|
"$CONTAINER" 2>/dev/null || true
|
||||||
|
)"
|
||||||
|
|
||||||
|
if [[ "$state" != "running" ]]; then
|
||||||
|
echo
|
||||||
|
echo "------------------------------------------------------------"
|
||||||
|
echo "Container stopped before Windows became ready."
|
||||||
|
echo "Container state: ${state:-missing}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
container_log="$(docker logs "$CONTAINER" 2>&1 || true)"
|
||||||
|
|
||||||
|
if grep -Eqi \
|
||||||
|
'KVM internal error|KVM: entry failed|hardware error 0x[0-9a-f]+|Triple fault' \
|
||||||
|
<<< "$container_log"; then
|
||||||
|
echo
|
||||||
|
echo "------------------------------------------------------------"
|
||||||
|
echo "Detected a fatal QEMU or KVM error."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if grep -Eqi \
|
||||||
|
'CDBOOT: Cannot boot from CD.*Code: 5' \
|
||||||
|
<<< "$container_log"; then
|
||||||
|
echo
|
||||||
|
echo "------------------------------------------------------------"
|
||||||
|
echo "The installation media could not be booted."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
bios_starts="$(
|
||||||
|
grep -Fci 'SeaBIOS (version ' <<< "$container_log" || true
|
||||||
|
)"
|
||||||
|
|
||||||
|
hard_disk_boots="$(
|
||||||
|
grep -Fci 'Booting from Hard Disk' <<< "$container_log" || true
|
||||||
|
)"
|
||||||
|
|
||||||
|
dvd_boots="$(
|
||||||
|
grep -Fci 'Booting from DVD/CD' <<< "$container_log" || true
|
||||||
|
)"
|
||||||
|
|
||||||
|
not_bootable_disk="$(
|
||||||
|
grep -Fci \
|
||||||
|
'Boot failed: not a bootable disk' \
|
||||||
|
<<< "$container_log" || true
|
||||||
|
)"
|
||||||
|
|
||||||
|
unreadable_boot_disk="$(
|
||||||
|
grep -Fci \
|
||||||
|
'Boot failed: could not read the boot disk' \
|
||||||
|
<<< "$container_log" || true
|
||||||
|
)"
|
||||||
|
|
||||||
|
no_bootable_device="$(
|
||||||
|
grep -Fci 'No bootable device.' <<< "$container_log" || true
|
||||||
|
)"
|
||||||
|
|
||||||
|
bootmgr_missing="$(
|
||||||
|
grep -Fci 'BOOTMGR is missing' <<< "$container_log" || true
|
||||||
|
)"
|
||||||
|
|
||||||
|
reboots=$((bios_starts > 0 ? bios_starts - 1 : 0))
|
||||||
|
|
||||||
|
if (( first_bios_start < 0 && bios_starts > 0 )); then
|
||||||
|
first_bios_start=$SECONDS
|
||||||
|
fi
|
||||||
|
|
||||||
|
if (( first_bios_start >= 0 &&
|
||||||
|
SECONDS - first_bios_start >= reboot_timeout &&
|
||||||
|
reboots < minimum_reboots )); then
|
||||||
|
echo
|
||||||
|
echo "------------------------------------------------------------"
|
||||||
|
echo "The installation did not reboot within" \
|
||||||
|
"$((reboot_timeout / 60)) minutes after the first BIOS start."
|
||||||
|
echo "Observed reboots: $reboots"
|
||||||
|
echo "Required reboots: $minimum_reboots"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if (( bios_starts >= boot_loop_limit )) &&
|
||||||
|
(( hard_disk_boots >= boot_loop_limit ||
|
||||||
|
dvd_boots >= boot_loop_limit ||
|
||||||
|
not_bootable_disk >= boot_loop_limit ||
|
||||||
|
unreadable_boot_disk >= boot_loop_limit ||
|
||||||
|
no_bootable_device >= boot_loop_limit ||
|
||||||
|
bootmgr_missing >= boot_loop_limit )); then
|
||||||
|
echo
|
||||||
|
echo "------------------------------------------------------------"
|
||||||
|
echo "Detected a repeated BIOS boot loop."
|
||||||
|
echo "SeaBIOS starts: $bios_starts"
|
||||||
|
echo "Hard disk boots: $hard_disk_boots"
|
||||||
|
echo "DVD boots: $dvd_boots"
|
||||||
|
echo "Not-bootable disk failures: $not_bootable_disk"
|
||||||
|
echo "Unreadable boot-disk failures: $unreadable_boot_disk"
|
||||||
|
echo "No-bootable-device failures: $no_bootable_device"
|
||||||
|
echo "BOOTMGR failures: $bootmgr_missing"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
response=""
|
||||||
|
|
||||||
|
if [[ -s "$RUNNER_TEMP/data/windows.json" ]]; then
|
||||||
|
response="$(cat "$RUNNER_TEMP/data/windows.json")"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n "$response" ]]; then
|
||||||
|
stop_logs
|
||||||
|
trap - EXIT
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "------------------------------------------------------------"
|
||||||
|
echo "Received response:"
|
||||||
|
|
||||||
|
if ! jq . <<< "$response"; then
|
||||||
|
echo "$response"
|
||||||
|
echo "The guest returned invalid JSON."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
token="$(jq -r '.token // empty' <<< "$response")"
|
||||||
|
caption="$(jq -r '.caption // empty' <<< "$response")"
|
||||||
|
edition="$(jq -r '.edition // empty' <<< "$response")"
|
||||||
|
version="$(jq -r '.version // empty' <<< "$response")"
|
||||||
|
build="$(jq -r '.build // empty' <<< "$response")"
|
||||||
|
platform="$(jq -r '.platform // empty' <<< "$response")"
|
||||||
|
share="$(jq -r '.share // empty' <<< "$response")"
|
||||||
|
|
||||||
|
if [[ "$token" != "$EXPECTED_TOKEN" ]]; then
|
||||||
|
echo "The response token does not match."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$share" != "$EXPECTED_TOKEN" ]]; then
|
||||||
|
echo "Failed to read \\\\host.lan\\Data\\readme.txt."
|
||||||
|
echo "Expected contents:"
|
||||||
|
echo " $EXPECTED_TOKEN"
|
||||||
|
echo "Received:"
|
||||||
|
echo " ${share:-empty}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
normalized_caption="${caption//\(R\)/}"
|
||||||
|
normalized_expected_caption="${EXPECTED_CAPTION//\(R\)/}"
|
||||||
|
|
||||||
|
if [[ "$normalized_caption" != *"$normalized_expected_caption"* ]]; then
|
||||||
|
echo "Expected caption containing:"
|
||||||
|
echo " $EXPECTED_CAPTION"
|
||||||
|
echo "Received:"
|
||||||
|
echo " $caption"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
normalized_edition="${edition%Eval}"
|
||||||
|
normalized_expected_edition="${EXPECTED_EDITION%Eval}"
|
||||||
|
|
||||||
|
if [[ -n "$EXPECTED_EDITION" &&
|
||||||
|
"$normalized_edition" != "$normalized_expected_edition" ]]; then
|
||||||
|
echo "Expected edition: $EXPECTED_EDITION"
|
||||||
|
echo "Received edition: $edition"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! "$version" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
||||||
|
echo "Unexpected Windows version: $version"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! "$build" =~ ^[0-9]+$ ]]; then
|
||||||
|
echo "Invalid Windows build number: $build"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if (( build < MINIMUM_BUILD )); then
|
||||||
|
echo "Expected build $MINIMUM_BUILD or newer."
|
||||||
|
echo "Received build: $build"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$platform" != "$EXPECTED_PLATFORM" ]]; then
|
||||||
|
echo "Expected platform:"
|
||||||
|
echo " $EXPECTED_PLATFORM"
|
||||||
|
echo "Received platform:"
|
||||||
|
echo " $platform"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "$DISPLAY_NAME installed successfully."
|
||||||
|
echo "Version: $version"
|
||||||
|
echo "Build: $build"
|
||||||
|
echo "Platform: $platform"
|
||||||
|
echo "Shared file: accessible"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
sleep 10
|
||||||
|
done
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "------------------------------------------------------------"
|
||||||
|
echo "Timed out waiting for Windows installation."
|
||||||
|
exit 1
|
||||||
|
|
||||||
|
- name: Cleanup
|
||||||
|
if: always()
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
docker rm --force "$CONTAINER" 2>/dev/null || true
|
||||||
+183
-13
@@ -2,6 +2,8 @@ name: Links
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
schedule:
|
||||||
|
- cron: '0 0 * * *'
|
||||||
|
|
||||||
concurrency:
|
concurrency:
|
||||||
group: links
|
group: links
|
||||||
@@ -22,29 +24,136 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
-
|
-
|
||||||
name: Validate Links
|
name: Install aria2
|
||||||
|
run: |
|
||||||
|
if ! command -v aria2c > /dev/null; then
|
||||||
|
sudo apt-get update -qq
|
||||||
|
sudo apt-get install -qq --no-install-recommends -y aria2
|
||||||
|
fi
|
||||||
|
-
|
||||||
|
name: Validate all download mirrors
|
||||||
|
id: validate
|
||||||
run: |
|
run: |
|
||||||
errors=0
|
errors=0
|
||||||
count=0
|
tested=0
|
||||||
host=""
|
host=""
|
||||||
|
failed_links=""
|
||||||
|
failed_links_html=""
|
||||||
declare -A seen
|
declare -A seen
|
||||||
wget https://github.com/lwthiker/curl-impersonate/releases/download/v0.6.1/curl-impersonate-v0.6.1.x86_64-linux-gnu.tar.gz
|
|
||||||
tar -xzf curl-impersonate-v0.6.1.x86_64-linux-gnu.tar.gz
|
ignored_domains=(
|
||||||
sudo cp curl-impersonate-ff /usr/local/bin/
|
files.dog
|
||||||
|
)
|
||||||
|
|
||||||
check() {
|
check() {
|
||||||
local url="$1" http
|
local url="$1"
|
||||||
http=$(curl-impersonate-ff -sSL -o /dev/null -w "%{http_code}" --max-time 10 -I -- "$url" 2>&1) || http="000"
|
local agent="Mozilla/5.0 (X11; Linux x86_64; rv:154.0) Gecko/20100101 Firefox/154.0"
|
||||||
[[ "$http" == 2* ]] && return 0
|
local tmp output pid blocks bytes rc
|
||||||
http=$(curl-impersonate-ff -sSL -o /dev/null -w "%{http_code}" --max-time 10 -r "0-0" -- "$url" 2>&1) || http="000"
|
local start=$SECONDS
|
||||||
[[ "$http" == 2* ]]
|
|
||||||
|
tmp=$(mktemp -d)
|
||||||
|
output="$tmp/aria2.log"
|
||||||
|
|
||||||
|
aria2c \
|
||||||
|
--no-conf=true \
|
||||||
|
--connect-timeout=30 \
|
||||||
|
--timeout=30 \
|
||||||
|
--max-tries=2 \
|
||||||
|
--retry-wait=2 \
|
||||||
|
--async-dns=false \
|
||||||
|
--follow-metalink=false \
|
||||||
|
--follow-torrent=false \
|
||||||
|
--user-agent="$agent" \
|
||||||
|
--split=4 \
|
||||||
|
--max-connection-per-server=4 \
|
||||||
|
--file-allocation=none \
|
||||||
|
--allow-overwrite=true \
|
||||||
|
--auto-file-renaming=false \
|
||||||
|
--continue=false \
|
||||||
|
--dir="$tmp" \
|
||||||
|
--out=probe \
|
||||||
|
--console-log-level=error \
|
||||||
|
--summary-interval=0 \
|
||||||
|
--download-result=hide \
|
||||||
|
--show-console-readout=false \
|
||||||
|
--enable-color=false \
|
||||||
|
-- "$url" > "$output" 2>&1 &
|
||||||
|
pid=$!
|
||||||
|
|
||||||
|
while kill -0 "$pid" 2>/dev/null; do
|
||||||
|
if [[ -f "$tmp/probe" ]]; then
|
||||||
|
blocks=$(stat -c '%b' "$tmp/probe" 2>/dev/null || echo 0)
|
||||||
|
bytes=$((blocks * 512))
|
||||||
|
|
||||||
|
if (( bytes >= 1048576 )); then
|
||||||
|
kill "$pid" 2>/dev/null || true
|
||||||
|
wait "$pid" 2>/dev/null || true
|
||||||
|
rm -rf -- "$tmp"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if (( SECONDS - start >= 60 )); then
|
||||||
|
kill "$pid" 2>/dev/null || true
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
|
||||||
|
sleep 0.2
|
||||||
|
done
|
||||||
|
|
||||||
|
if wait "$pid"; then
|
||||||
|
rc=0
|
||||||
|
else
|
||||||
|
rc=$?
|
||||||
|
fi
|
||||||
|
|
||||||
|
blocks=0
|
||||||
|
|
||||||
|
if [[ -f "$tmp/probe" ]]; then
|
||||||
|
blocks=$(stat -c '%b' "$tmp/probe" 2>/dev/null || echo 0)
|
||||||
|
fi
|
||||||
|
|
||||||
|
bytes=$((blocks * 512))
|
||||||
|
|
||||||
|
if (( bytes >= 1048576 || (rc == 0 && bytes > 0) )); then
|
||||||
|
rm -rf -- "$tmp"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
sed 's/^/ /' "$output" >&2
|
||||||
|
echo " Downloaded bytes: $bytes" >&2
|
||||||
|
echo " aria2c exit status: $rc" >&2
|
||||||
|
rm -rf -- "$tmp"
|
||||||
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
isIgnoredDomain() {
|
||||||
|
local url="$1"
|
||||||
|
local domain ignored
|
||||||
|
|
||||||
|
domain="${url#*://}"
|
||||||
|
domain="${domain%%/*}"
|
||||||
|
domain="${domain%%:*}"
|
||||||
|
domain="${domain,,}"
|
||||||
|
|
||||||
|
for ignored in "${ignored_domains[@]}"; do
|
||||||
|
if [[ "$domain" == "$ignored" || "$domain" == *."$ignored" ]]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
while IFS= read -r line; do
|
while IFS= read -r line; do
|
||||||
if [[ "$line" =~ ^[[:space:]]*local[[:space:]]+host=\"(https://[^\"]+)\" ]]; then
|
if [[ "$line" =~ ^[[:space:]]*local[[:space:]]+host=\"(https://[^\"]+)\" ]]; then
|
||||||
host="${BASH_REMATCH[1]%/}"
|
host="${BASH_REMATCH[1]%/}"
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
[[ "$line" =~ ^[[:space:]]*url=\"(.+)\" ]] || continue
|
[[ "$line" =~ ^[[:space:]]*url=\"(.+)\" ]] || continue
|
||||||
val="${BASH_REMATCH[1]#/}"
|
val="${BASH_REMATCH[1]#/}"
|
||||||
|
|
||||||
if [[ "$val" == https://* ]]; then
|
if [[ "$val" == https://* ]]; then
|
||||||
url="$val"
|
url="$val"
|
||||||
elif [[ -n "$host" ]]; then
|
elif [[ -n "$host" ]]; then
|
||||||
@@ -52,16 +161,77 @@ jobs:
|
|||||||
else
|
else
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
[[ -v seen[$url] ]] && continue
|
[[ -v seen[$url] ]] && continue
|
||||||
seen[$url]=1
|
seen[$url]=1
|
||||||
count=$((count + 1))
|
|
||||||
|
if isIgnoredDomain "$url"; then
|
||||||
|
echo "SKIP: $url"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
tested=$((tested + 1))
|
||||||
|
|
||||||
if check "$url"; then
|
if check "$url"; then
|
||||||
echo " OK: $url"
|
echo " OK: $url"
|
||||||
else
|
else
|
||||||
echo "FAIL: $url"
|
echo "FAIL: $url"
|
||||||
errors=$((errors + 1))
|
errors=$((errors + 1))
|
||||||
|
failed_links+="$url"$'\n'
|
||||||
|
failed_links_html+="<li><a href=\"$url\">$url</a></li>"$'\n'
|
||||||
fi
|
fi
|
||||||
done < "src/define.sh"
|
done < "src/define.sh"
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
printf '%d/%d links valid\n' "$(( count - errors ))" "$count"
|
printf '%d/%d tested links valid\n' "$((tested - errors))" "$tested"
|
||||||
(( errors == 0 ))
|
|
||||||
|
if (( errors > 0 )); then
|
||||||
|
printf '%d blocking failure(s)\n' "$errors"
|
||||||
|
|
||||||
|
{
|
||||||
|
echo "failed=true"
|
||||||
|
echo "links<<EOF"
|
||||||
|
printf '%s' "$failed_links"
|
||||||
|
echo "EOF"
|
||||||
|
echo "html_links<<EOF"
|
||||||
|
printf '%s' "$failed_links_html"
|
||||||
|
echo "EOF"
|
||||||
|
} >> "$GITHUB_OUTPUT"
|
||||||
|
else
|
||||||
|
echo "failed=false" >> "$GITHUB_OUTPUT"
|
||||||
|
fi
|
||||||
|
-
|
||||||
|
name: Send mail
|
||||||
|
if: steps.validate.outputs.failed == 'true'
|
||||||
|
uses: action-pack/send-mail@v1
|
||||||
|
with:
|
||||||
|
to: ${{secrets.MAILTO}}
|
||||||
|
from: Github Actions <${{secrets.MAILTO}}>
|
||||||
|
connection_url: ${{secrets.MAIL_CONNECTION}}
|
||||||
|
subject: Mirror verification failed!
|
||||||
|
body: |
|
||||||
|
Mirror verification failed!
|
||||||
|
|
||||||
|
The following links failed:
|
||||||
|
|
||||||
|
${{ steps.validate.outputs.links }}
|
||||||
|
|
||||||
|
See https://github.com/${{ github.repository }}/actions for more information.
|
||||||
|
html_body: |
|
||||||
|
<p>Mirror verification failed!</p>
|
||||||
|
|
||||||
|
<p>The following links failed:</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
${{ steps.validate.outputs.html_links }}
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
See
|
||||||
|
<a href="https://github.com/${{ github.repository }}/actions">GitHub Actions</a>
|
||||||
|
for more information.
|
||||||
|
</p>
|
||||||
|
-
|
||||||
|
name: Fail workflow
|
||||||
|
if: always() && steps.validate.outputs.failed == 'true'
|
||||||
|
run: exit 1
|
||||||
|
|||||||
@@ -11,61 +11,4 @@ permissions:
|
|||||||
jobs:
|
jobs:
|
||||||
review:
|
review:
|
||||||
name: review
|
name: review
|
||||||
runs-on: ubuntu-latest
|
uses: action-pack/.github/.github/workflows/review.yml@master
|
||||||
steps:
|
|
||||||
-
|
|
||||||
name: Checkout
|
|
||||||
uses: actions/checkout@v7
|
|
||||||
- parallel:
|
|
||||||
-
|
|
||||||
name: Spelling
|
|
||||||
uses: reviewdog/action-misspell@v1
|
|
||||||
with:
|
|
||||||
locale: "US"
|
|
||||||
level: warning
|
|
||||||
pattern: |
|
|
||||||
*.md
|
|
||||||
*.sh
|
|
||||||
reporter: github-pr-review
|
|
||||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
-
|
|
||||||
name: Hadolint
|
|
||||||
uses: reviewdog/action-hadolint@v1
|
|
||||||
with:
|
|
||||||
level: warning
|
|
||||||
fail_level: error
|
|
||||||
reporter: github-pr-review
|
|
||||||
hadolint_ignore: DL3006 DL3008
|
|
||||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
-
|
|
||||||
name: YamlLint
|
|
||||||
uses: reviewdog/action-yamllint@v1
|
|
||||||
with:
|
|
||||||
level: warning
|
|
||||||
reporter: github-pr-review
|
|
||||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
-
|
|
||||||
name: ActionLint
|
|
||||||
uses: reviewdog/action-actionlint@v1
|
|
||||||
with:
|
|
||||||
level: warning
|
|
||||||
reporter: github-pr-review
|
|
||||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
-
|
|
||||||
name: Shellformat
|
|
||||||
uses: reviewdog/action-shfmt@v1
|
|
||||||
if: false
|
|
||||||
with:
|
|
||||||
level: warning
|
|
||||||
fail_on_error: "true"
|
|
||||||
shfmt_flags: "-i 2 -ci -bn"
|
|
||||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
-
|
|
||||||
name: Shellcheck
|
|
||||||
uses: reviewdog/action-shellcheck@v1
|
|
||||||
with:
|
|
||||||
level: warning
|
|
||||||
fail_level: error
|
|
||||||
reporter: github-pr-review
|
|
||||||
shellcheck_flags: -x -e SC1091 -e SC2001 -e SC2002 -e SC2034 -e SC2064 -e SC2153 -e SC2317 -e SC2028
|
|
||||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|||||||
@@ -0,0 +1,239 @@
|
|||||||
|
name: Validation
|
||||||
|
|
||||||
|
on:
|
||||||
|
release:
|
||||||
|
types:
|
||||||
|
- published
|
||||||
|
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: validation-${{ github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
desktop:
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- name: Windows 11 Pro
|
||||||
|
version: "11"
|
||||||
|
expected_caption: Windows 11
|
||||||
|
expected_edition: Professional
|
||||||
|
minimum_build: 22000
|
||||||
|
platform: x64
|
||||||
|
|
||||||
|
- name: Windows 11 LTSC
|
||||||
|
version: "11l"
|
||||||
|
expected_caption: Windows 11
|
||||||
|
expected_edition: EnterpriseS
|
||||||
|
minimum_build: 26100
|
||||||
|
platform: x64
|
||||||
|
|
||||||
|
- name: Windows 11 Enterprise
|
||||||
|
version: "11e"
|
||||||
|
expected_caption: Windows 11
|
||||||
|
expected_edition: Enterprise
|
||||||
|
minimum_build: 22000
|
||||||
|
platform: x64
|
||||||
|
|
||||||
|
- name: Windows 11 IoT
|
||||||
|
version: "11i"
|
||||||
|
expected_caption: Windows 11
|
||||||
|
expected_edition: IoTEnterpriseS
|
||||||
|
minimum_build: 26100
|
||||||
|
platform: x64
|
||||||
|
|
||||||
|
- name: Windows 10 Pro
|
||||||
|
version: "10"
|
||||||
|
expected_caption: Windows 10
|
||||||
|
expected_edition: Professional
|
||||||
|
minimum_build: 10240
|
||||||
|
platform: x64
|
||||||
|
|
||||||
|
- name: Windows 10 LTSC
|
||||||
|
version: "10l"
|
||||||
|
expected_caption: Windows 10
|
||||||
|
expected_edition: EnterpriseS
|
||||||
|
minimum_build: 17763
|
||||||
|
platform: x64
|
||||||
|
|
||||||
|
- name: Windows 10 Enterprise
|
||||||
|
version: "10e"
|
||||||
|
expected_caption: Windows 10
|
||||||
|
expected_edition: Enterprise
|
||||||
|
minimum_build: 10240
|
||||||
|
platform: x64
|
||||||
|
|
||||||
|
- name: Windows 10 IoT
|
||||||
|
version: "10i"
|
||||||
|
expected_caption: Windows 10
|
||||||
|
expected_edition: IoTEnterpriseS
|
||||||
|
minimum_build: 19044
|
||||||
|
platform: x64
|
||||||
|
|
||||||
|
- name: Windows 8.1 Enterprise
|
||||||
|
version: "8e"
|
||||||
|
expected_caption: Windows 8.1
|
||||||
|
expected_edition: Enterprise
|
||||||
|
minimum_build: 9600
|
||||||
|
platform: x64
|
||||||
|
|
||||||
|
name: ${{ matrix.name }}
|
||||||
|
uses: ./.github/workflows/install.yml
|
||||||
|
with:
|
||||||
|
name: ${{ matrix.name }}
|
||||||
|
version: ${{ matrix.version }}
|
||||||
|
expected_caption: ${{ matrix.expected_caption }}
|
||||||
|
expected_edition: ${{ matrix.expected_edition }}
|
||||||
|
minimum_build: ${{ matrix.minimum_build }}
|
||||||
|
platform: ${{ matrix.platform }}
|
||||||
|
|
||||||
|
server:
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- name: Windows Server 2025
|
||||||
|
version: "2025"
|
||||||
|
expected_caption: Windows Server 2025
|
||||||
|
minimum_build: 26100
|
||||||
|
platform: x64
|
||||||
|
|
||||||
|
- name: Windows Server 2022
|
||||||
|
version: "2022"
|
||||||
|
expected_caption: Windows Server 2022
|
||||||
|
minimum_build: 20348
|
||||||
|
platform: x64
|
||||||
|
|
||||||
|
- name: Windows Server 2019
|
||||||
|
version: "2019"
|
||||||
|
expected_caption: Windows Server 2019
|
||||||
|
minimum_build: 17763
|
||||||
|
platform: x64
|
||||||
|
|
||||||
|
- name: Windows Server 2016
|
||||||
|
version: "2016"
|
||||||
|
expected_caption: Windows Server 2016
|
||||||
|
minimum_build: 14393
|
||||||
|
platform: x64
|
||||||
|
|
||||||
|
- name: Windows Server 2012
|
||||||
|
version: "2012"
|
||||||
|
expected_caption: Windows Server 2012 R2
|
||||||
|
minimum_build: 9600
|
||||||
|
platform: x64
|
||||||
|
|
||||||
|
name: ${{ matrix.name }}
|
||||||
|
uses: ./.github/workflows/install.yml
|
||||||
|
with:
|
||||||
|
name: ${{ matrix.name }}
|
||||||
|
version: ${{ matrix.version }}
|
||||||
|
expected_caption: ${{ matrix.expected_caption }}
|
||||||
|
minimum_build: ${{ matrix.minimum_build }}
|
||||||
|
platform: ${{ matrix.platform }}
|
||||||
|
|
||||||
|
legacy:
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- name: Windows 7 x64
|
||||||
|
version: "7u"
|
||||||
|
expected_caption: Windows 7
|
||||||
|
minimum_build: 7601
|
||||||
|
platform: x64
|
||||||
|
|
||||||
|
- name: Windows 7 x86
|
||||||
|
version: "7x86"
|
||||||
|
expected_caption: Windows 7
|
||||||
|
minimum_build: 7601
|
||||||
|
platform: x86
|
||||||
|
|
||||||
|
- name: Windows Vista x64
|
||||||
|
version: "vu"
|
||||||
|
expected_caption: Windows Vista
|
||||||
|
minimum_build: 6002
|
||||||
|
platform: x64
|
||||||
|
|
||||||
|
- name: Windows Vista x86
|
||||||
|
version: "vistax86"
|
||||||
|
expected_caption: Windows Vista
|
||||||
|
minimum_build: 6002
|
||||||
|
platform: x86
|
||||||
|
|
||||||
|
- name: Windows XP x86
|
||||||
|
version: "xp"
|
||||||
|
expected_caption: Windows XP
|
||||||
|
minimum_build: 2600
|
||||||
|
platform: x86
|
||||||
|
|
||||||
|
- name: Windows XP x64
|
||||||
|
version: "xp64"
|
||||||
|
expected_caption: Windows XP
|
||||||
|
minimum_build: 3790
|
||||||
|
platform: x64
|
||||||
|
|
||||||
|
- name: Windows 2000
|
||||||
|
version: "2k"
|
||||||
|
expected_caption: Windows 2000
|
||||||
|
minimum_build: 2195
|
||||||
|
platform: x86
|
||||||
|
|
||||||
|
- name: Windows Server 2008
|
||||||
|
version: "2008"
|
||||||
|
expected_caption: Windows Server 2008 R2
|
||||||
|
minimum_build: 7601
|
||||||
|
platform: x64
|
||||||
|
|
||||||
|
- name: Windows Server 2003
|
||||||
|
version: "2003"
|
||||||
|
expected_caption: Windows Server 2003
|
||||||
|
minimum_build: 3790
|
||||||
|
platform: x64
|
||||||
|
|
||||||
|
name: ${{ matrix.name }}
|
||||||
|
uses: ./.github/workflows/install.yml
|
||||||
|
with:
|
||||||
|
name: ${{ matrix.name }}
|
||||||
|
version: ${{ matrix.version }}
|
||||||
|
callback: legacy
|
||||||
|
expected_caption: ${{ matrix.expected_caption }}
|
||||||
|
minimum_build: ${{ matrix.minimum_build }}
|
||||||
|
platform: ${{ matrix.platform }}
|
||||||
|
|
||||||
|
tiny:
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- name: Core 11
|
||||||
|
version: "core11"
|
||||||
|
expected_caption: Windows 11
|
||||||
|
minimum_build: 22000
|
||||||
|
platform: x64
|
||||||
|
|
||||||
|
- name: Tiny 11
|
||||||
|
version: "tiny11"
|
||||||
|
expected_caption: Windows 11
|
||||||
|
minimum_build: 22000
|
||||||
|
platform: x64
|
||||||
|
|
||||||
|
- name: Tiny 10
|
||||||
|
version: "tiny10"
|
||||||
|
expected_caption: Windows 10
|
||||||
|
minimum_build: 19041
|
||||||
|
platform: x64
|
||||||
|
|
||||||
|
name: ${{ matrix.name }}
|
||||||
|
uses: ./.github/workflows/install.yml
|
||||||
|
with:
|
||||||
|
name: ${{ matrix.name }}
|
||||||
|
version: ${{ matrix.version }}
|
||||||
|
expected_caption: ${{ matrix.expected_caption }}
|
||||||
|
minimum_build: ${{ matrix.minimum_build }}
|
||||||
|
platform: ${{ matrix.platform }}
|
||||||
+267
@@ -1 +1,268 @@
|
|||||||
|
##############################
|
||||||
|
# Operating System Files
|
||||||
|
##############################
|
||||||
|
|
||||||
|
.DS_Store
|
||||||
|
.AppleDouble
|
||||||
|
.LSOverride
|
||||||
|
Thumbs.db
|
||||||
|
ehthumbs.db
|
||||||
|
Desktop.ini
|
||||||
|
Icon?
|
||||||
|
$RECYCLE.BIN/
|
||||||
|
.Spotlight-V100/
|
||||||
|
.Trashes/
|
||||||
|
.fseventsd
|
||||||
|
|
||||||
|
##############################
|
||||||
|
# IDEs
|
||||||
|
##############################
|
||||||
|
|
||||||
|
.vscode/
|
||||||
|
.idea/
|
||||||
|
*.iml
|
||||||
|
*.ipr
|
||||||
|
*.iws
|
||||||
|
|
||||||
|
##############################
|
||||||
|
# VS Code
|
||||||
|
##############################
|
||||||
|
|
||||||
|
.history/
|
||||||
|
*.code-workspace
|
||||||
|
|
||||||
|
##############################
|
||||||
|
# Vim
|
||||||
|
##############################
|
||||||
|
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
Session.vim
|
||||||
|
|
||||||
|
##############################
|
||||||
|
# Sublime
|
||||||
|
##############################
|
||||||
|
|
||||||
|
*.sublime-workspace
|
||||||
|
*.sublime-project
|
||||||
|
|
||||||
|
##############################
|
||||||
|
# Temporary Files
|
||||||
|
##############################
|
||||||
|
|
||||||
|
*.tmp
|
||||||
|
*.temp
|
||||||
|
*.bak
|
||||||
|
*.old
|
||||||
|
*.orig
|
||||||
|
*.rej
|
||||||
|
*.save
|
||||||
|
|
||||||
|
##############################
|
||||||
|
# Logs
|
||||||
|
##############################
|
||||||
|
|
||||||
|
*.log
|
||||||
|
logs/
|
||||||
|
log/
|
||||||
|
*.out
|
||||||
|
*.err
|
||||||
|
*.trace
|
||||||
|
|
||||||
|
##############################
|
||||||
|
# Runtime
|
||||||
|
##############################
|
||||||
|
|
||||||
|
*.pid
|
||||||
|
*.seed
|
||||||
|
*.pid.lock
|
||||||
|
|
||||||
|
##############################
|
||||||
|
# Secrets
|
||||||
|
##############################
|
||||||
|
|
||||||
|
.env
|
||||||
|
.env.*
|
||||||
|
!.env.example
|
||||||
|
*.pem
|
||||||
|
*.key
|
||||||
|
*.crt
|
||||||
|
*.cer
|
||||||
|
*.p12
|
||||||
|
*.pfx
|
||||||
|
*.kdbx
|
||||||
|
*.secret
|
||||||
|
*.token
|
||||||
|
|
||||||
|
##############################
|
||||||
|
# SSH
|
||||||
|
##############################
|
||||||
|
|
||||||
|
.ssh/
|
||||||
|
|
||||||
|
##############################
|
||||||
|
# Docker
|
||||||
|
##############################
|
||||||
|
|
||||||
|
docker-compose.override.yml
|
||||||
|
docker-compose.local.yml
|
||||||
|
|
||||||
|
##############################
|
||||||
|
# VM Storage
|
||||||
|
##############################
|
||||||
|
|
||||||
|
storage/
|
||||||
|
windows/
|
||||||
|
downloads/
|
||||||
|
|
||||||
|
##############################
|
||||||
|
# Disk Images
|
||||||
|
##############################
|
||||||
|
|
||||||
|
*.qcow2
|
||||||
|
*.qcow
|
||||||
|
*.vhd
|
||||||
|
*.vhdx
|
||||||
|
*.vdi
|
||||||
|
*.raw
|
||||||
|
*.img
|
||||||
|
*.iso
|
||||||
|
*.bin
|
||||||
|
|
||||||
|
##############################
|
||||||
|
# QEMU
|
||||||
|
##############################
|
||||||
|
|
||||||
|
*.nvram
|
||||||
|
*.fd
|
||||||
|
*.efi
|
||||||
|
*.sock
|
||||||
|
*.monitor
|
||||||
|
*.serial
|
||||||
|
|
||||||
|
##############################
|
||||||
|
# Samba
|
||||||
|
##############################
|
||||||
|
|
||||||
|
shared/
|
||||||
|
share/
|
||||||
|
|
||||||
|
##############################
|
||||||
|
# Backups
|
||||||
|
##############################
|
||||||
|
|
||||||
|
backup/
|
||||||
|
backups/
|
||||||
|
*.backup
|
||||||
|
|
||||||
|
##############################
|
||||||
|
# Cache
|
||||||
|
##############################
|
||||||
|
|
||||||
|
.cache/
|
||||||
|
.cache-loader/
|
||||||
|
.tmp/
|
||||||
|
temp/
|
||||||
|
tmp/
|
||||||
|
|
||||||
|
##############################
|
||||||
|
# Python
|
||||||
|
##############################
|
||||||
|
|
||||||
|
__pycache__/
|
||||||
|
*.py[cod]
|
||||||
|
.pytest_cache/
|
||||||
|
.mypy_cache/
|
||||||
|
.venv/
|
||||||
|
venv/
|
||||||
|
|
||||||
|
##############################
|
||||||
|
# Node
|
||||||
|
##############################
|
||||||
|
|
||||||
|
node_modules/
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
pnpm-debug.log*
|
||||||
|
|
||||||
|
##############################
|
||||||
|
# Build
|
||||||
|
##############################
|
||||||
|
|
||||||
|
dist/
|
||||||
|
build/
|
||||||
|
out/
|
||||||
|
release/
|
||||||
|
|
||||||
|
##############################
|
||||||
|
# Coverage
|
||||||
|
##############################
|
||||||
|
|
||||||
|
coverage/
|
||||||
|
.coverage
|
||||||
|
coverage.xml
|
||||||
|
|
||||||
|
##############################
|
||||||
|
# Archives
|
||||||
|
##############################
|
||||||
|
|
||||||
|
*.zip
|
||||||
|
*.tar
|
||||||
|
*.tar.gz
|
||||||
|
*.tgz
|
||||||
|
*.7z
|
||||||
|
*.rar
|
||||||
|
|
||||||
|
##############################
|
||||||
|
# Generated Config
|
||||||
|
##############################
|
||||||
|
|
||||||
|
config.local.*
|
||||||
|
settings.local.*
|
||||||
|
local.env
|
||||||
|
|
||||||
|
##############################
|
||||||
|
# Test Files
|
||||||
|
##############################
|
||||||
|
|
||||||
|
test-output/
|
||||||
|
playwright-report/
|
||||||
|
|
||||||
|
##############################
|
||||||
|
# macOS
|
||||||
|
##############################
|
||||||
|
|
||||||
|
.AppleDB
|
||||||
|
.AppleDesktop
|
||||||
|
Network Trash Folder
|
||||||
|
Temporary Items
|
||||||
|
|
||||||
|
##############################
|
||||||
|
# Linux
|
||||||
|
##############################
|
||||||
|
|
||||||
|
*~
|
||||||
|
.nfs*
|
||||||
|
|
||||||
|
##############################
|
||||||
|
# Windows
|
||||||
|
##############################
|
||||||
|
|
||||||
|
*.stackdump
|
||||||
|
|
||||||
|
##############################
|
||||||
|
# Misc
|
||||||
|
##############################
|
||||||
|
|
||||||
|
*.cache
|
||||||
|
*.lock
|
||||||
|
*.lock.json
|
||||||
|
*.bak.*
|
||||||
|
|
||||||
|
##############################
|
||||||
|
# Keep Examples
|
||||||
|
##############################
|
||||||
|
|
||||||
|
!.gitkeep
|
||||||
|
!.env.example
|
||||||
|
|||||||
+9
-1
@@ -3,11 +3,12 @@
|
|||||||
ARG VERSION_ARG="latest"
|
ARG VERSION_ARG="latest"
|
||||||
FROM scratch AS build-amd64
|
FROM scratch AS build-amd64
|
||||||
|
|
||||||
COPY --from=qemux/qemu:7.36 / /
|
COPY --from=qemux/qemu:7.40 / /
|
||||||
|
|
||||||
ARG TARGETARCH
|
ARG TARGETARCH
|
||||||
ARG VERSION_WSDD="1.26"
|
ARG VERSION_WSDD="1.26"
|
||||||
ARG VERSION_VIRTIO="1.9.58"
|
ARG VERSION_VIRTIO="1.9.58"
|
||||||
|
ARG VERSION_BLINTER="1.0.112"
|
||||||
|
|
||||||
ARG DEBCONF_NOWARNINGS="yes"
|
ARG DEBCONF_NOWARNINGS="yes"
|
||||||
ARG DEBIAN_FRONTEND="noninteractive"
|
ARG DEBIAN_FRONTEND="noninteractive"
|
||||||
@@ -22,9 +23,16 @@ RUN <<EOF
|
|||||||
wimtools \
|
wimtools \
|
||||||
dos2unix \
|
dos2unix \
|
||||||
cabextract \
|
cabextract \
|
||||||
|
icu-devtools \
|
||||||
libxml2-utils \
|
libxml2-utils \
|
||||||
libarchive-tools
|
libarchive-tools
|
||||||
|
|
||||||
|
# Install Blinter
|
||||||
|
python3 -m pip install \
|
||||||
|
--break-system-packages \
|
||||||
|
--no-cache-dir \
|
||||||
|
"Blinter==${VERSION_BLINTER}"
|
||||||
|
|
||||||
# Install wsdd
|
# Install wsdd
|
||||||
wget "https://github.com/gershnik/wsdd-native/releases/download/v${VERSION_WSDD}/wsddn_${VERSION_WSDD}_${TARGETARCH}.deb" -O /tmp/wsddn.deb -q --timeout=10
|
wget "https://github.com/gershnik/wsdd-native/releases/download/v${VERSION_WSDD}/wsddn_${VERSION_WSDD}_${TARGETARCH}.deb" -O /tmp/wsddn.deb -q --timeout=10
|
||||||
dpkg -i /tmp/wsddn.deb
|
dpkg -i /tmp/wsddn.deb
|
||||||
|
|||||||
@@ -1,444 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<unattend xmlns="urn:schemas-microsoft-com:unattend" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
|
|
||||||
<settings pass="windowsPE">
|
|
||||||
<component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<SetupUILanguage>
|
|
||||||
<UILanguage>en-US</UILanguage>
|
|
||||||
</SetupUILanguage>
|
|
||||||
<InputLocale>0409:00000409</InputLocale>
|
|
||||||
<SystemLocale>en-US</SystemLocale>
|
|
||||||
<UILanguage>en-US</UILanguage>
|
|
||||||
<UserLocale>en-US</UserLocale>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DiskConfiguration>
|
|
||||||
<Disk wcm:action="add">
|
|
||||||
<DiskID>0</DiskID>
|
|
||||||
<WillWipeDisk>true</WillWipeDisk>
|
|
||||||
<CreatePartitions>
|
|
||||||
<!-- System partition (ESP) -->
|
|
||||||
<CreatePartition wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<Type>EFI</Type>
|
|
||||||
<Size>128</Size>
|
|
||||||
</CreatePartition>
|
|
||||||
<!-- Microsoft reserved partition (MSR) -->
|
|
||||||
<CreatePartition wcm:action="add">
|
|
||||||
<Order>2</Order>
|
|
||||||
<Type>MSR</Type>
|
|
||||||
<Size>128</Size>
|
|
||||||
</CreatePartition>
|
|
||||||
<!-- Windows partition -->
|
|
||||||
<CreatePartition wcm:action="add">
|
|
||||||
<Order>3</Order>
|
|
||||||
<Type>Primary</Type>
|
|
||||||
<Extend>true</Extend>
|
|
||||||
</CreatePartition>
|
|
||||||
</CreatePartitions>
|
|
||||||
<ModifyPartitions>
|
|
||||||
<!-- System partition (ESP) -->
|
|
||||||
<ModifyPartition wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<PartitionID>1</PartitionID>
|
|
||||||
<Label>System</Label>
|
|
||||||
<Format>FAT32</Format>
|
|
||||||
</ModifyPartition>
|
|
||||||
<!-- MSR partition does not need to be modified -->
|
|
||||||
<ModifyPartition wcm:action="add">
|
|
||||||
<Order>2</Order>
|
|
||||||
<PartitionID>2</PartitionID>
|
|
||||||
</ModifyPartition>
|
|
||||||
<!-- Windows partition -->
|
|
||||||
<ModifyPartition wcm:action="add">
|
|
||||||
<Order>3</Order>
|
|
||||||
<PartitionID>3</PartitionID>
|
|
||||||
<Label>Windows</Label>
|
|
||||||
<Letter>C</Letter>
|
|
||||||
<Format>NTFS</Format>
|
|
||||||
</ModifyPartition>
|
|
||||||
</ModifyPartitions>
|
|
||||||
</Disk>
|
|
||||||
</DiskConfiguration>
|
|
||||||
<ImageInstall>
|
|
||||||
<OSImage>
|
|
||||||
<InstallTo>
|
|
||||||
<DiskID>0</DiskID>
|
|
||||||
<PartitionID>3</PartitionID>
|
|
||||||
</InstallTo>
|
|
||||||
<InstallToAvailablePartition>false</InstallToAvailablePartition>
|
|
||||||
</OSImage>
|
|
||||||
</ImageInstall>
|
|
||||||
<DynamicUpdate>
|
|
||||||
<Enable>true</Enable>
|
|
||||||
<WillShowUI>Never</WillShowUI>
|
|
||||||
</DynamicUpdate>
|
|
||||||
<UpgradeData>
|
|
||||||
<Upgrade>false</Upgrade>
|
|
||||||
<WillShowUI>Never</WillShowUI>
|
|
||||||
</UpgradeData>
|
|
||||||
<UserData>
|
|
||||||
<AcceptEula>true</AcceptEula>
|
|
||||||
<FullName>Docker</FullName>
|
|
||||||
<Organization>Windows for Docker</Organization>
|
|
||||||
</UserData>
|
|
||||||
<EnableFirewall>false</EnableFirewall>
|
|
||||||
<Diagnostics>
|
|
||||||
<OptIn>false</OptIn>
|
|
||||||
</Diagnostics>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="offlineServicing">
|
|
||||||
<component name="Microsoft-Windows-LUA-Settings" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<EnableLUA>false</EnableLUA>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="generalize">
|
|
||||||
<component name="Microsoft-Windows-PnPSysprep" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<PersistAllDeviceInstalls>true</PersistAllDeviceInstalls>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Security-SPP" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<SkipRearm>1</SkipRearm>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="specialize">
|
|
||||||
<component name="Microsoft-Windows-Security-SPP-UX" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<SkipAutoActivation>true</SkipAutoActivation>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<ComputerName>*</ComputerName>
|
|
||||||
<OEMInformation>
|
|
||||||
<Manufacturer>Dockur</Manufacturer>
|
|
||||||
<Model>Windows for Docker</Model>
|
|
||||||
<SupportHours>24/7</SupportHours>
|
|
||||||
<SupportPhone />
|
|
||||||
<SupportProvider>Dockur</SupportProvider>
|
|
||||||
<SupportURL>https://github.com/dockur/windows/issues</SupportURL>
|
|
||||||
</OEMInformation>
|
|
||||||
<OEMName>Windows for Docker</OEMName>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-ErrorReportingCore" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableWER>1</DisableWER>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-IE-InternetExplorer" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableAccelerators>true</DisableAccelerators>
|
|
||||||
<DisableFirstRunWizard>true</DisableFirstRunWizard>
|
|
||||||
<Home_Page>https://google.com</Home_Page>
|
|
||||||
<Help_Page>about:blank</Help_Page>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-IE-InternetExplorer" processorArchitecture="wow64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableAccelerators>true</DisableAccelerators>
|
|
||||||
<DisableFirstRunWizard>true</DisableFirstRunWizard>
|
|
||||||
<Home_Page>https://google.com</Home_Page>
|
|
||||||
<Help_Page>about:blank</Help_Page>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-SQMApi" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<CEIPEnabled>0</CEIPEnabled>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-SystemRestore-Main" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableSR>1</DisableSR>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<InputLocale>0409:00000409</InputLocale>
|
|
||||||
<SystemLocale>en-US</SystemLocale>
|
|
||||||
<UILanguage>en-US</UILanguage>
|
|
||||||
<UserLocale>en-US</UserLocale>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Deployment" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<RunSynchronous>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<Path>reg.exe add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\OOBE" /v BypassNRO /t REG_DWORD /d 1 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>2</Order>
|
|
||||||
<Path>reg.exe load "HKU\mount" "C:\Users\Default\NTUSER.DAT"</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>3</Order>
|
|
||||||
<Path>reg.exe add "HKU\mount\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "ContentDeliveryAllowed" /t REG_DWORD /d 0 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>4</Order>
|
|
||||||
<Path>reg.exe add "HKU\mount\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "FeatureManagementEnabled" /t REG_DWORD /d 0 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>5</Order>
|
|
||||||
<Path>reg.exe add "HKU\mount\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "OEMPreInstalledAppsEnabled" /t REG_DWORD /d 0 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>6</Order>
|
|
||||||
<Path>reg.exe add "HKU\mount\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "PreInstalledAppsEnabled" /t REG_DWORD /d 0 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>7</Order>
|
|
||||||
<Path>reg.exe add "HKU\mount\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "PreInstalledAppsEverEnabled" /t REG_DWORD /d 0 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>8</Order>
|
|
||||||
<Path>reg.exe add "HKU\mount\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "SilentInstalledAppsEnabled" /t REG_DWORD /d 0 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>9</Order>
|
|
||||||
<Path>reg.exe add "HKU\mount\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "SoftLandingEnabled" /t REG_DWORD /d 0 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>10</Order>
|
|
||||||
<Path>reg.exe add "HKU\mount\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "SubscribedContentEnabled" /t REG_DWORD /d 0 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>11</Order>
|
|
||||||
<Path>reg.exe add "HKU\mount\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "SubscribedContent-310093Enabled" /t REG_DWORD /d 0 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>12</Order>
|
|
||||||
<Path>reg.exe add "HKU\mount\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "SubscribedContent-338387Enabled" /t REG_DWORD /d 0 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>13</Order>
|
|
||||||
<Path>reg.exe add "HKU\mount\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "SubscribedContent-338388Enabled" /t REG_DWORD /d 0 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>14</Order>
|
|
||||||
<Path>reg.exe add "HKU\mount\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "SubscribedContent-338389Enabled" /t REG_DWORD /d 0 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>15</Order>
|
|
||||||
<Path>reg.exe add "HKU\mount\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "SubscribedContent-338393Enabled" /t REG_DWORD /d 0 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>16</Order>
|
|
||||||
<Path>reg.exe add "HKU\mount\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "SubscribedContent-353698Enabled" /t REG_DWORD /d 0 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>17</Order>
|
|
||||||
<Path>reg.exe add "HKU\mount\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "SystemPaneSuggestionsEnabled" /t REG_DWORD /d 0 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>18</Order>
|
|
||||||
<Path>reg.exe add "HKU\mount\Software\Policies\Microsoft\Windows\CloudContent" /v "DisableCloudOptimizedContent" /t REG_DWORD /d 1 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>19</Order>
|
|
||||||
<Path>reg.exe add "HKU\mount\Software\Policies\Microsoft\Windows\CloudContent" /v "DisableWindowsConsumerFeatures" /t REG_DWORD /d 1 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>20</Order>
|
|
||||||
<Path>reg.exe add "HKU\mount\Software\Policies\Microsoft\Windows\CloudContent" /v "DisableConsumerAccountStateContent" /t REG_DWORD /d 1 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>21</Order>
|
|
||||||
<Path>reg.exe unload "HKU\mount"</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>22</Order>
|
|
||||||
<Path>reg.exe add "HKLM\Software\Policies\Microsoft\Windows\CloudContent" /v "DisableCloudOptimizedContent" /t REG_DWORD /d 1 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>23</Order>
|
|
||||||
<Path>reg.exe add "HKLM\Software\Policies\Microsoft\Windows\CloudContent" /v "DisableWindowsConsumerFeatures" /t REG_DWORD /d 1 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>24</Order>
|
|
||||||
<Path>reg.exe add "HKLM\Software\Policies\Microsoft\Windows\CloudContent" /v "DisableConsumerAccountStateContent" /t REG_DWORD /d 1 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>25</Order>
|
|
||||||
<Path>reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\FirstNetwork" /v Category /t REG_DWORD /d 1 /f</Path>
|
|
||||||
<Description>Set Network Location to Home</Description>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>26</Order>
|
|
||||||
<Path>C:\Windows\Drivers\Balloon\blnsvr.exe -i</Path>
|
|
||||||
<Description>Install VirtIO Balloon service</Description>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
</RunSynchronous>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-TerminalServices-LocalSessionManager" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<fDenyTSConnections>false</fDenyTSConnections>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-TerminalServices-RDP-WinStationExtensions" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<UserAuthentication>0</UserAuthentication>
|
|
||||||
</component>
|
|
||||||
<component name="Networking-MPSSVC-Svc" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<FirewallGroups>
|
|
||||||
<FirewallGroup wcm:action="add" wcm:keyValue="RemoteDesktop">
|
|
||||||
<Active>true</Active>
|
|
||||||
<Profile>all</Profile>
|
|
||||||
<Group>@FirewallAPI.dll,-28752</Group>
|
|
||||||
</FirewallGroup>
|
|
||||||
</FirewallGroups>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="auditSystem" />
|
|
||||||
<settings pass="auditUser" />
|
|
||||||
<settings pass="oobeSystem">
|
|
||||||
<component name="Microsoft-Windows-SecureStartup-FilterDriver" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<PreventDeviceEncryption>true</PreventDeviceEncryption>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-EnhancedStorage-Adm" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<TCGSecurityActivationDisabled>1</TCGSecurityActivationDisabled>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<UserAccounts>
|
|
||||||
<LocalAccounts>
|
|
||||||
<LocalAccount wcm:action="add">
|
|
||||||
<Name>Docker</Name>
|
|
||||||
<Group>Administrators</Group>
|
|
||||||
<Password>
|
|
||||||
<Value />
|
|
||||||
<PlainText>true</PlainText>
|
|
||||||
</Password>
|
|
||||||
</LocalAccount>
|
|
||||||
</LocalAccounts>
|
|
||||||
<AdministratorPassword>
|
|
||||||
<Value>password</Value>
|
|
||||||
<PlainText>true</PlainText>
|
|
||||||
</AdministratorPassword>
|
|
||||||
</UserAccounts>
|
|
||||||
<AutoLogon>
|
|
||||||
<Username>Docker</Username>
|
|
||||||
<Enabled>true</Enabled>
|
|
||||||
<LogonCount>65432</LogonCount>
|
|
||||||
<Password>
|
|
||||||
<Value />
|
|
||||||
<PlainText>true</PlainText>
|
|
||||||
</Password>
|
|
||||||
</AutoLogon>
|
|
||||||
<Display>
|
|
||||||
<ColorDepth>32</ColorDepth>
|
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
|
||||||
</Display>
|
|
||||||
<OOBE>
|
|
||||||
<HideEULAPage>true</HideEULAPage>
|
|
||||||
<HideLocalAccountScreen>true</HideLocalAccountScreen>
|
|
||||||
<HideOEMRegistrationScreen>true</HideOEMRegistrationScreen>
|
|
||||||
<HideOnlineAccountScreens>true</HideOnlineAccountScreens>
|
|
||||||
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
|
|
||||||
<NetworkLocation>Home</NetworkLocation>
|
|
||||||
<ProtectYourPC>3</ProtectYourPC>
|
|
||||||
<SkipUserOOBE>true</SkipUserOOBE>
|
|
||||||
<SkipMachineOOBE>true</SkipMachineOOBE>
|
|
||||||
</OOBE>
|
|
||||||
<RegisteredOrganization>Dockur</RegisteredOrganization>
|
|
||||||
<RegisteredOwner>Windows for Docker</RegisteredOwner>
|
|
||||||
<FirstLogonCommands>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" /v "AllowInsecureGuestAuth" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Allow guest access to network shares</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>3</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\PasswordLess\Device" /v "DevicePasswordLessBuildVersion" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Enable option for passwordless sign-in</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>4</Order>
|
|
||||||
<CommandLine>cmd /C wmic useraccount where name="Docker" set PasswordExpires=false</CommandLine>
|
|
||||||
<Description>Password Never Expires</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>5</Order>
|
|
||||||
<CommandLine>cmd /C POWERCFG -H OFF</CommandLine>
|
|
||||||
<Description>Disable Hibernation</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>6</Order>
|
|
||||||
<CommandLine>cmd /C POWERCFG -X -monitor-timeout-ac 0</CommandLine>
|
|
||||||
<Description>Disable monitor blanking</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>7</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Edge" /v "HideFirstRunExperience" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Disable first-run experience in Edge</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>8</Order>
|
|
||||||
<CommandLine>reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "HideFileExt" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Show file extensions in Explorer</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>9</Order>
|
|
||||||
<CommandLine>reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "ShowCopilotButton" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Hide Copilot button</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>10</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Power" /v "HibernateFileSizePercent" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Zero Hibernation File</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>11</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Power" /v "HibernateEnabled" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Disable Hibernation</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>12</Order>
|
|
||||||
<CommandLine>cmd /C POWERCFG -X -standby-timeout-ac 0</CommandLine>
|
|
||||||
<Description>Disable Sleep</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>13</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v "fAllowUnlistedRemotePrograms" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Enable RemoteApp to launch unlisted programs</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>14</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList" /v "fDisabledAllowList" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Disable RemoteApp allowlist</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>15</Order>
|
|
||||||
<CommandLine>reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Search" /v "SearchboxTaskbarMode" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Remove Search from the Taskbar</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>16</Order>
|
|
||||||
<CommandLine>reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "ShowTaskViewButton" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Remove Task View from the Taskbar</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>17</Order>
|
|
||||||
<CommandLine>reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "TaskbarDa" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Remove Widgets from the Taskbar</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>18</Order>
|
|
||||||
<CommandLine>reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "TaskbarMn" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Remove Chat from the Taskbar</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>19</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "NoAutoUpdate" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Turn off Windows Update auto download</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>20</Order>
|
|
||||||
<CommandLine>netsh advfirewall firewall set rule group="@FirewallAPI.dll,-32752" new enable=Yes</CommandLine>
|
|
||||||
<Description>Enable Network Discovery</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>21</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Network\NewNetworkWindowOff" /f</CommandLine>
|
|
||||||
<Description>Disable Network Discovery popup</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>22</Order>
|
|
||||||
<CommandLine>netsh advfirewall firewall set rule group="@FirewallAPI.dll,-28502" new enable=Yes</CommandLine>
|
|
||||||
<Description>Enable File Sharing</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>23</Order>
|
|
||||||
<CommandLine>cmd /C mklink /d %userprofile%\Desktop\Shared \\host.lan\Data</CommandLine>
|
|
||||||
<Description>Create desktop shortcut to shared folder</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>24</Order>
|
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
</FirstLogonCommands>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
</unattend>
|
|
||||||
@@ -251,7 +251,7 @@
|
|||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
<RunSynchronousCommand wcm:action="add">
|
<RunSynchronousCommand wcm:action="add">
|
||||||
<Order>26</Order>
|
<Order>26</Order>
|
||||||
<Path>C:\Windows\Drivers\Balloon\blnsvr.exe -i</Path>
|
<Path>cmd.exe /c start "" /b /wait "C:\Windows\Drivers\Balloon\blnsvr.exe" -i</Path>
|
||||||
<Description>Install VirtIO Balloon service</Description>
|
<Description>Install VirtIO Balloon service</Description>
|
||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
</RunSynchronous>
|
</RunSynchronous>
|
||||||
@@ -288,14 +288,14 @@
|
|||||||
<Name>Docker</Name>
|
<Name>Docker</Name>
|
||||||
<Group>Administrators</Group>
|
<Group>Administrators</Group>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</LocalAccount>
|
</LocalAccount>
|
||||||
</LocalAccounts>
|
</LocalAccounts>
|
||||||
<AdministratorPassword>
|
<AdministratorPassword>
|
||||||
<Value>password</Value>
|
<Value>YQBkAG0AaQBuAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAUABhAHMAcwB3AG8AcgBkAA==</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</AdministratorPassword>
|
</AdministratorPassword>
|
||||||
</UserAccounts>
|
</UserAccounts>
|
||||||
<AutoLogon>
|
<AutoLogon>
|
||||||
@@ -303,14 +303,14 @@
|
|||||||
<Enabled>true</Enabled>
|
<Enabled>true</Enabled>
|
||||||
<LogonCount>65432</LogonCount>
|
<LogonCount>65432</LogonCount>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</AutoLogon>
|
</AutoLogon>
|
||||||
<Display>
|
<Display>
|
||||||
<ColorDepth>32</ColorDepth>
|
<ColorDepth>32</ColorDepth>
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
<HorizontalResolution>1280</HorizontalResolution>
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
<VerticalResolution>720</VerticalResolution>
|
||||||
</Display>
|
</Display>
|
||||||
<OOBE>
|
<OOBE>
|
||||||
<HideEULAPage>true</HideEULAPage>
|
<HideEULAPage>true</HideEULAPage>
|
||||||
@@ -438,6 +438,11 @@
|
|||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
<SynchronousCommand wcm:action="add">
|
<SynchronousCommand wcm:action="add">
|
||||||
<Order>24</Order>
|
<Order>24</Order>
|
||||||
|
<CommandLine>cmd /C net use Z: \\host.lan\Data /persistent:yes</CommandLine>
|
||||||
|
<Description>Map shared folder</Description>
|
||||||
|
</SynchronousCommand>
|
||||||
|
<SynchronousCommand wcm:action="add">
|
||||||
|
<Order>25</Order>
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
<Description>Execute custom script from the OEM folder if exists</Description>
|
||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
|
|||||||
+14
-9
@@ -257,7 +257,7 @@
|
|||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
<RunSynchronousCommand wcm:action="add">
|
<RunSynchronousCommand wcm:action="add">
|
||||||
<Order>26</Order>
|
<Order>26</Order>
|
||||||
<Path>C:\Windows\Drivers\Balloon\blnsvr.exe -i</Path>
|
<Path>cmd.exe /c start "" /b /wait "C:\Windows\Drivers\Balloon\blnsvr.exe" -i</Path>
|
||||||
<Description>Install VirtIO Balloon service</Description>
|
<Description>Install VirtIO Balloon service</Description>
|
||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
</RunSynchronous>
|
</RunSynchronous>
|
||||||
@@ -294,14 +294,14 @@
|
|||||||
<Name>Docker</Name>
|
<Name>Docker</Name>
|
||||||
<Group>Administrators</Group>
|
<Group>Administrators</Group>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</LocalAccount>
|
</LocalAccount>
|
||||||
</LocalAccounts>
|
</LocalAccounts>
|
||||||
<AdministratorPassword>
|
<AdministratorPassword>
|
||||||
<Value>password</Value>
|
<Value>YQBkAG0AaQBuAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAUABhAHMAcwB3AG8AcgBkAA==</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</AdministratorPassword>
|
</AdministratorPassword>
|
||||||
</UserAccounts>
|
</UserAccounts>
|
||||||
<AutoLogon>
|
<AutoLogon>
|
||||||
@@ -309,14 +309,14 @@
|
|||||||
<Enabled>true</Enabled>
|
<Enabled>true</Enabled>
|
||||||
<LogonCount>65432</LogonCount>
|
<LogonCount>65432</LogonCount>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</AutoLogon>
|
</AutoLogon>
|
||||||
<Display>
|
<Display>
|
||||||
<ColorDepth>32</ColorDepth>
|
<ColorDepth>32</ColorDepth>
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
<HorizontalResolution>1280</HorizontalResolution>
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
<VerticalResolution>720</VerticalResolution>
|
||||||
</Display>
|
</Display>
|
||||||
<OOBE>
|
<OOBE>
|
||||||
<HideEULAPage>true</HideEULAPage>
|
<HideEULAPage>true</HideEULAPage>
|
||||||
@@ -444,6 +444,11 @@
|
|||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
<SynchronousCommand wcm:action="add">
|
<SynchronousCommand wcm:action="add">
|
||||||
<Order>24</Order>
|
<Order>24</Order>
|
||||||
|
<CommandLine>cmd /C net use Z: \\host.lan\Data /persistent:yes</CommandLine>
|
||||||
|
<Description>Map shared folder</Description>
|
||||||
|
</SynchronousCommand>
|
||||||
|
<SynchronousCommand wcm:action="add">
|
||||||
|
<Order>25</Order>
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
<Description>Execute custom script from the OEM folder if exists</Description>
|
||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
|
|||||||
@@ -254,7 +254,7 @@
|
|||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
<RunSynchronousCommand wcm:action="add">
|
<RunSynchronousCommand wcm:action="add">
|
||||||
<Order>26</Order>
|
<Order>26</Order>
|
||||||
<Path>C:\Windows\Drivers\Balloon\blnsvr.exe -i</Path>
|
<Path>cmd.exe /c start "" /b /wait "C:\Windows\Drivers\Balloon\blnsvr.exe" -i</Path>
|
||||||
<Description>Install VirtIO Balloon service</Description>
|
<Description>Install VirtIO Balloon service</Description>
|
||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
</RunSynchronous>
|
</RunSynchronous>
|
||||||
@@ -291,14 +291,14 @@
|
|||||||
<Name>Docker</Name>
|
<Name>Docker</Name>
|
||||||
<Group>Administrators</Group>
|
<Group>Administrators</Group>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</LocalAccount>
|
</LocalAccount>
|
||||||
</LocalAccounts>
|
</LocalAccounts>
|
||||||
<AdministratorPassword>
|
<AdministratorPassword>
|
||||||
<Value>password</Value>
|
<Value>YQBkAG0AaQBuAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAUABhAHMAcwB3AG8AcgBkAA==</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</AdministratorPassword>
|
</AdministratorPassword>
|
||||||
</UserAccounts>
|
</UserAccounts>
|
||||||
<AutoLogon>
|
<AutoLogon>
|
||||||
@@ -306,14 +306,14 @@
|
|||||||
<Enabled>true</Enabled>
|
<Enabled>true</Enabled>
|
||||||
<LogonCount>65432</LogonCount>
|
<LogonCount>65432</LogonCount>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</AutoLogon>
|
</AutoLogon>
|
||||||
<Display>
|
<Display>
|
||||||
<ColorDepth>32</ColorDepth>
|
<ColorDepth>32</ColorDepth>
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
<HorizontalResolution>1280</HorizontalResolution>
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
<VerticalResolution>720</VerticalResolution>
|
||||||
</Display>
|
</Display>
|
||||||
<OOBE>
|
<OOBE>
|
||||||
<HideEULAPage>true</HideEULAPage>
|
<HideEULAPage>true</HideEULAPage>
|
||||||
@@ -441,6 +441,11 @@
|
|||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
<SynchronousCommand wcm:action="add">
|
<SynchronousCommand wcm:action="add">
|
||||||
<Order>24</Order>
|
<Order>24</Order>
|
||||||
|
<CommandLine>cmd /C net use Z: \\host.lan\Data /persistent:yes</CommandLine>
|
||||||
|
<Description>Map shared folder</Description>
|
||||||
|
</SynchronousCommand>
|
||||||
|
<SynchronousCommand wcm:action="add">
|
||||||
|
<Order>25</Order>
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
<Description>Execute custom script from the OEM folder if exists</Description>
|
||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
|
|||||||
+14
-9
@@ -251,7 +251,7 @@
|
|||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
<RunSynchronousCommand wcm:action="add">
|
<RunSynchronousCommand wcm:action="add">
|
||||||
<Order>26</Order>
|
<Order>26</Order>
|
||||||
<Path>C:\Windows\Drivers\Balloon\blnsvr.exe -i</Path>
|
<Path>cmd.exe /c start "" /b /wait "C:\Windows\Drivers\Balloon\blnsvr.exe" -i</Path>
|
||||||
<Description>Install VirtIO Balloon service</Description>
|
<Description>Install VirtIO Balloon service</Description>
|
||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
</RunSynchronous>
|
</RunSynchronous>
|
||||||
@@ -288,14 +288,14 @@
|
|||||||
<Name>Docker</Name>
|
<Name>Docker</Name>
|
||||||
<Group>Administrators</Group>
|
<Group>Administrators</Group>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</LocalAccount>
|
</LocalAccount>
|
||||||
</LocalAccounts>
|
</LocalAccounts>
|
||||||
<AdministratorPassword>
|
<AdministratorPassword>
|
||||||
<Value>password</Value>
|
<Value>YQBkAG0AaQBuAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAUABhAHMAcwB3AG8AcgBkAA==</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</AdministratorPassword>
|
</AdministratorPassword>
|
||||||
</UserAccounts>
|
</UserAccounts>
|
||||||
<AutoLogon>
|
<AutoLogon>
|
||||||
@@ -303,14 +303,14 @@
|
|||||||
<Enabled>true</Enabled>
|
<Enabled>true</Enabled>
|
||||||
<LogonCount>65432</LogonCount>
|
<LogonCount>65432</LogonCount>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</AutoLogon>
|
</AutoLogon>
|
||||||
<Display>
|
<Display>
|
||||||
<ColorDepth>32</ColorDepth>
|
<ColorDepth>32</ColorDepth>
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
<HorizontalResolution>1280</HorizontalResolution>
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
<VerticalResolution>720</VerticalResolution>
|
||||||
</Display>
|
</Display>
|
||||||
<OOBE>
|
<OOBE>
|
||||||
<HideEULAPage>true</HideEULAPage>
|
<HideEULAPage>true</HideEULAPage>
|
||||||
@@ -438,6 +438,11 @@
|
|||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
<SynchronousCommand wcm:action="add">
|
<SynchronousCommand wcm:action="add">
|
||||||
<Order>24</Order>
|
<Order>24</Order>
|
||||||
|
<CommandLine>cmd /C net use Z: \\host.lan\Data /persistent:yes</CommandLine>
|
||||||
|
<Description>Map shared folder</Description>
|
||||||
|
</SynchronousCommand>
|
||||||
|
<SynchronousCommand wcm:action="add">
|
||||||
|
<Order>25</Order>
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
<Description>Execute custom script from the OEM folder if exists</Description>
|
||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
|
|||||||
@@ -1,477 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<unattend xmlns="urn:schemas-microsoft-com:unattend" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
|
|
||||||
<settings pass="windowsPE">
|
|
||||||
<component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<SetupUILanguage>
|
|
||||||
<UILanguage>en-US</UILanguage>
|
|
||||||
</SetupUILanguage>
|
|
||||||
<InputLocale>0409:00000409</InputLocale>
|
|
||||||
<SystemLocale>en-US</SystemLocale>
|
|
||||||
<UILanguage>en-US</UILanguage>
|
|
||||||
<UserLocale>en-US</UserLocale>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DiskConfiguration>
|
|
||||||
<Disk wcm:action="add">
|
|
||||||
<DiskID>0</DiskID>
|
|
||||||
<WillWipeDisk>true</WillWipeDisk>
|
|
||||||
<CreatePartitions>
|
|
||||||
<!-- System partition (ESP) -->
|
|
||||||
<CreatePartition wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<Type>EFI</Type>
|
|
||||||
<Size>128</Size>
|
|
||||||
</CreatePartition>
|
|
||||||
<!-- Microsoft reserved partition (MSR) -->
|
|
||||||
<CreatePartition wcm:action="add">
|
|
||||||
<Order>2</Order>
|
|
||||||
<Type>MSR</Type>
|
|
||||||
<Size>128</Size>
|
|
||||||
</CreatePartition>
|
|
||||||
<!-- Windows partition -->
|
|
||||||
<CreatePartition wcm:action="add">
|
|
||||||
<Order>3</Order>
|
|
||||||
<Type>Primary</Type>
|
|
||||||
<Extend>true</Extend>
|
|
||||||
</CreatePartition>
|
|
||||||
</CreatePartitions>
|
|
||||||
<ModifyPartitions>
|
|
||||||
<!-- System partition (ESP) -->
|
|
||||||
<ModifyPartition wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<PartitionID>1</PartitionID>
|
|
||||||
<Label>System</Label>
|
|
||||||
<Format>FAT32</Format>
|
|
||||||
</ModifyPartition>
|
|
||||||
<!-- MSR partition does not need to be modified -->
|
|
||||||
<ModifyPartition wcm:action="add">
|
|
||||||
<Order>2</Order>
|
|
||||||
<PartitionID>2</PartitionID>
|
|
||||||
</ModifyPartition>
|
|
||||||
<!-- Windows partition -->
|
|
||||||
<ModifyPartition wcm:action="add">
|
|
||||||
<Order>3</Order>
|
|
||||||
<PartitionID>3</PartitionID>
|
|
||||||
<Label>Windows</Label>
|
|
||||||
<Letter>C</Letter>
|
|
||||||
<Format>NTFS</Format>
|
|
||||||
</ModifyPartition>
|
|
||||||
</ModifyPartitions>
|
|
||||||
</Disk>
|
|
||||||
</DiskConfiguration>
|
|
||||||
<ImageInstall>
|
|
||||||
<OSImage>
|
|
||||||
<InstallTo>
|
|
||||||
<DiskID>0</DiskID>
|
|
||||||
<PartitionID>3</PartitionID>
|
|
||||||
</InstallTo>
|
|
||||||
<InstallToAvailablePartition>false</InstallToAvailablePartition>
|
|
||||||
</OSImage>
|
|
||||||
</ImageInstall>
|
|
||||||
<DynamicUpdate>
|
|
||||||
<Enable>true</Enable>
|
|
||||||
<WillShowUI>Never</WillShowUI>
|
|
||||||
</DynamicUpdate>
|
|
||||||
<UpgradeData>
|
|
||||||
<Upgrade>false</Upgrade>
|
|
||||||
<WillShowUI>Never</WillShowUI>
|
|
||||||
</UpgradeData>
|
|
||||||
<UserData>
|
|
||||||
<AcceptEula>true</AcceptEula>
|
|
||||||
<FullName>Docker</FullName>
|
|
||||||
<Organization>Windows for Docker</Organization>
|
|
||||||
</UserData>
|
|
||||||
<EnableFirewall>false</EnableFirewall>
|
|
||||||
<Diagnostics>
|
|
||||||
<OptIn>false</OptIn>
|
|
||||||
</Diagnostics>
|
|
||||||
<RunSynchronous>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<Path>reg.exe add "HKLM\SYSTEM\Setup\LabConfig" /v BypassTPMCheck /t REG_DWORD /d 1 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>2</Order>
|
|
||||||
<Path>reg.exe add "HKLM\SYSTEM\Setup\LabConfig" /v BypassSecureBootCheck /t REG_DWORD /d 1 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>3</Order>
|
|
||||||
<Path>reg.exe add "HKLM\SYSTEM\Setup\LabConfig" /v BypassRAMCheck /t REG_DWORD /d 1 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>4</Order>
|
|
||||||
<Path>reg.exe add "HKLM\SYSTEM\Setup\MoSetup" /v AllowUpgradesWithUnsupportedTPMOrCPU /t REG_DWORD /d 1 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
</RunSynchronous>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="offlineServicing">
|
|
||||||
<component name="Microsoft-Windows-LUA-Settings" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<EnableLUA>false</EnableLUA>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="generalize">
|
|
||||||
<component name="Microsoft-Windows-PnPSysprep" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<PersistAllDeviceInstalls>true</PersistAllDeviceInstalls>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Security-SPP" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<SkipRearm>1</SkipRearm>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="specialize">
|
|
||||||
<component name="Microsoft-Windows-Security-SPP-UX" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<SkipAutoActivation>true</SkipAutoActivation>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<ComputerName>*</ComputerName>
|
|
||||||
<OEMInformation>
|
|
||||||
<Manufacturer>Dockur</Manufacturer>
|
|
||||||
<Model>Windows for Docker</Model>
|
|
||||||
<SupportHours>24/7</SupportHours>
|
|
||||||
<SupportPhone />
|
|
||||||
<SupportProvider>Dockur</SupportProvider>
|
|
||||||
<SupportURL>https://github.com/dockur/windows/issues</SupportURL>
|
|
||||||
</OEMInformation>
|
|
||||||
<OEMName>Windows for Docker</OEMName>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-ErrorReportingCore" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableWER>1</DisableWER>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-IE-InternetExplorer" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableAccelerators>true</DisableAccelerators>
|
|
||||||
<DisableFirstRunWizard>true</DisableFirstRunWizard>
|
|
||||||
<Home_Page>https://google.com</Home_Page>
|
|
||||||
<Help_Page>about:blank</Help_Page>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-IE-InternetExplorer" processorArchitecture="wow64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableAccelerators>true</DisableAccelerators>
|
|
||||||
<DisableFirstRunWizard>true</DisableFirstRunWizard>
|
|
||||||
<Home_Page>https://google.com</Home_Page>
|
|
||||||
<Help_Page>about:blank</Help_Page>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-SQMApi" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<CEIPEnabled>0</CEIPEnabled>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-SystemRestore-Main" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableSR>1</DisableSR>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<InputLocale>0409:00000409</InputLocale>
|
|
||||||
<SystemLocale>en-US</SystemLocale>
|
|
||||||
<UILanguage>en-US</UILanguage>
|
|
||||||
<UserLocale>en-US</UserLocale>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Deployment" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<RunSynchronous>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<Path>reg.exe add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\OOBE" /v BypassNRO /t REG_DWORD /d 1 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>2</Order>
|
|
||||||
<Path>reg.exe load "HKU\mount" "C:\Users\Default\NTUSER.DAT"</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>3</Order>
|
|
||||||
<Path>reg.exe add "HKU\mount\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "ContentDeliveryAllowed" /t REG_DWORD /d 0 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>4</Order>
|
|
||||||
<Path>reg.exe add "HKU\mount\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "FeatureManagementEnabled" /t REG_DWORD /d 0 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>5</Order>
|
|
||||||
<Path>reg.exe add "HKU\mount\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "OEMPreInstalledAppsEnabled" /t REG_DWORD /d 0 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>6</Order>
|
|
||||||
<Path>reg.exe add "HKU\mount\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "PreInstalledAppsEnabled" /t REG_DWORD /d 0 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>7</Order>
|
|
||||||
<Path>reg.exe add "HKU\mount\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "PreInstalledAppsEverEnabled" /t REG_DWORD /d 0 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>8</Order>
|
|
||||||
<Path>reg.exe add "HKU\mount\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "SilentInstalledAppsEnabled" /t REG_DWORD /d 0 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>9</Order>
|
|
||||||
<Path>reg.exe add "HKU\mount\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "SoftLandingEnabled" /t REG_DWORD /d 0 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>10</Order>
|
|
||||||
<Path>reg.exe add "HKU\mount\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "SubscribedContentEnabled" /t REG_DWORD /d 0 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>11</Order>
|
|
||||||
<Path>reg.exe add "HKU\mount\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "SubscribedContent-310093Enabled" /t REG_DWORD /d 0 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>12</Order>
|
|
||||||
<Path>reg.exe add "HKU\mount\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "SubscribedContent-338387Enabled" /t REG_DWORD /d 0 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>13</Order>
|
|
||||||
<Path>reg.exe add "HKU\mount\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "SubscribedContent-338388Enabled" /t REG_DWORD /d 0 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>14</Order>
|
|
||||||
<Path>reg.exe add "HKU\mount\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "SubscribedContent-338389Enabled" /t REG_DWORD /d 0 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>15</Order>
|
|
||||||
<Path>reg.exe add "HKU\mount\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "SubscribedContent-338393Enabled" /t REG_DWORD /d 0 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>16</Order>
|
|
||||||
<Path>reg.exe add "HKU\mount\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "SubscribedContent-353698Enabled" /t REG_DWORD /d 0 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>17</Order>
|
|
||||||
<Path>reg.exe add "HKU\mount\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "SystemPaneSuggestionsEnabled" /t REG_DWORD /d 0 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>18</Order>
|
|
||||||
<Path>reg.exe add "HKU\mount\Software\Policies\Microsoft\Windows\CloudContent" /v "DisableCloudOptimizedContent" /t REG_DWORD /d 1 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>19</Order>
|
|
||||||
<Path>reg.exe add "HKU\mount\Software\Policies\Microsoft\Windows\CloudContent" /v "DisableWindowsConsumerFeatures" /t REG_DWORD /d 1 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>20</Order>
|
|
||||||
<Path>reg.exe add "HKU\mount\Software\Policies\Microsoft\Windows\CloudContent" /v "DisableConsumerAccountStateContent" /t REG_DWORD /d 1 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>21</Order>
|
|
||||||
<Path>reg.exe unload "HKU\mount"</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>22</Order>
|
|
||||||
<Path>reg.exe add "HKLM\Software\Policies\Microsoft\Windows\CloudContent" /v "DisableCloudOptimizedContent" /t REG_DWORD /d 1 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>23</Order>
|
|
||||||
<Path>reg.exe add "HKLM\Software\Policies\Microsoft\Windows\CloudContent" /v "DisableWindowsConsumerFeatures" /t REG_DWORD /d 1 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>24</Order>
|
|
||||||
<Path>reg.exe add "HKLM\Software\Policies\Microsoft\Windows\CloudContent" /v "DisableConsumerAccountStateContent" /t REG_DWORD /d 1 /f</Path>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>25</Order>
|
|
||||||
<Path>reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\FirstNetwork" /v Category /t REG_DWORD /d 1 /f</Path>
|
|
||||||
<Description>Set Network Location to Home</Description>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>26</Order>
|
|
||||||
<Path>pnputil -i -a C:\Windows\Drivers\viogpudo\viogpudo.inf</Path>
|
|
||||||
<Description>Install VirtIO display driver</Description>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>27</Order>
|
|
||||||
<Path>C:\Windows\Drivers\Balloon\blnsvr.exe -i</Path>
|
|
||||||
<Description>Install VirtIO Balloon service</Description>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
</RunSynchronous>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-TerminalServices-LocalSessionManager" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<fDenyTSConnections>false</fDenyTSConnections>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-TerminalServices-RDP-WinStationExtensions" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<UserAuthentication>0</UserAuthentication>
|
|
||||||
</component>
|
|
||||||
<component name="Networking-MPSSVC-Svc" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<FirewallGroups>
|
|
||||||
<FirewallGroup wcm:action="add" wcm:keyValue="RemoteDesktop">
|
|
||||||
<Active>true</Active>
|
|
||||||
<Profile>all</Profile>
|
|
||||||
<Group>@FirewallAPI.dll,-28752</Group>
|
|
||||||
</FirewallGroup>
|
|
||||||
</FirewallGroups>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="auditSystem" />
|
|
||||||
<settings pass="auditUser" />
|
|
||||||
<settings pass="oobeSystem">
|
|
||||||
<component name="Microsoft-Windows-SecureStartup-FilterDriver" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<PreventDeviceEncryption>true</PreventDeviceEncryption>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-EnhancedStorage-Adm" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<TCGSecurityActivationDisabled>1</TCGSecurityActivationDisabled>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<UserAccounts>
|
|
||||||
<LocalAccounts>
|
|
||||||
<LocalAccount wcm:action="add">
|
|
||||||
<Name>Docker</Name>
|
|
||||||
<Group>Administrators</Group>
|
|
||||||
<Password>
|
|
||||||
<Value />
|
|
||||||
<PlainText>true</PlainText>
|
|
||||||
</Password>
|
|
||||||
</LocalAccount>
|
|
||||||
</LocalAccounts>
|
|
||||||
<AdministratorPassword>
|
|
||||||
<Value>password</Value>
|
|
||||||
<PlainText>true</PlainText>
|
|
||||||
</AdministratorPassword>
|
|
||||||
</UserAccounts>
|
|
||||||
<AutoLogon>
|
|
||||||
<Username>Docker</Username>
|
|
||||||
<Enabled>true</Enabled>
|
|
||||||
<LogonCount>65432</LogonCount>
|
|
||||||
<Password>
|
|
||||||
<Value />
|
|
||||||
<PlainText>true</PlainText>
|
|
||||||
</Password>
|
|
||||||
</AutoLogon>
|
|
||||||
<Display>
|
|
||||||
<ColorDepth>32</ColorDepth>
|
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
|
||||||
</Display>
|
|
||||||
<OOBE>
|
|
||||||
<HideEULAPage>true</HideEULAPage>
|
|
||||||
<HideLocalAccountScreen>true</HideLocalAccountScreen>
|
|
||||||
<HideOEMRegistrationScreen>true</HideOEMRegistrationScreen>
|
|
||||||
<HideOnlineAccountScreens>true</HideOnlineAccountScreens>
|
|
||||||
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
|
|
||||||
<NetworkLocation>Home</NetworkLocation>
|
|
||||||
<ProtectYourPC>3</ProtectYourPC>
|
|
||||||
<SkipUserOOBE>true</SkipUserOOBE>
|
|
||||||
<SkipMachineOOBE>true</SkipMachineOOBE>
|
|
||||||
</OOBE>
|
|
||||||
<RegisteredOrganization>Dockur</RegisteredOrganization>
|
|
||||||
<RegisteredOwner>Windows for Docker</RegisteredOwner>
|
|
||||||
<FirstLogonCommands>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" /v "AllowInsecureGuestAuth" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Allow guest access to network shares</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>2</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" /v "RequireSecuritySignature" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Disable SMB signing requirement</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>4</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\PasswordLess\Device" /v "DevicePasswordLessBuildVersion" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Enable option for passwordless sign-in</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>5</Order>
|
|
||||||
<CommandLine>powershell.exe -ExecutionPolicy Unrestricted -NoLogo -NoProfile -NonInteractive set-localuser -name "Docker" -passwordneverexpires 1</CommandLine>
|
|
||||||
<Description>Password Never Expires</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>6</Order>
|
|
||||||
<CommandLine>cmd /C POWERCFG -H OFF</CommandLine>
|
|
||||||
<Description>Disable Hibernation</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>7</Order>
|
|
||||||
<CommandLine>cmd /C POWERCFG -X -monitor-timeout-ac 0</CommandLine>
|
|
||||||
<Description>Disable monitor blanking</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>8</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Edge" /v "HideFirstRunExperience" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Disable first-run experience in Edge</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>9</Order>
|
|
||||||
<CommandLine>reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "ShowCopilotButton" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Hide Copilot button</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>10</Order>
|
|
||||||
<CommandLine>reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "HideFileExt" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Show file extensions in Explorer</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>11</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Power" /v "HibernateFileSizePercent" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Zero Hibernation File</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>12</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Power" /v "HibernateEnabled" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Disable Hibernation</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>13</Order>
|
|
||||||
<CommandLine>cmd /C POWERCFG -X -standby-timeout-ac 0</CommandLine>
|
|
||||||
<Description>Disable Sleep</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>14</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v "fAllowUnlistedRemotePrograms" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Enable RemoteAPP to launch unlisted programs</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>15</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList" /v "fDisabledAllowList" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Disable RemoteApp allowlist</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>16</Order>
|
|
||||||
<CommandLine>reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "ShowTaskViewButton" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Remove Task View from the Taskbar</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>17</Order>
|
|
||||||
<CommandLine>reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "TaskbarDa" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Remove Widgets from the Taskbar</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>18</Order>
|
|
||||||
<CommandLine>reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "TaskbarMn" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Remove Chat from the Taskbar</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>19</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "NoAutoUpdate" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Turn off Windows Update auto download</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>20</Order>
|
|
||||||
<CommandLine>netsh advfirewall firewall set rule group="@FirewallAPI.dll,-32752" new enable=Yes</CommandLine>
|
|
||||||
<Description>Enable Network Discovery</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>21</Order>
|
|
||||||
<CommandLine>netsh advfirewall firewall set rule group="@FirewallAPI.dll,-28502" new enable=Yes</CommandLine>
|
|
||||||
<Description>Enable File Sharing</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>22</Order>
|
|
||||||
<CommandLine>reg.exe add "HKCU\Control Panel\UnsupportedHardwareNotificationCache" /v SV1 /d 0 /t REG_DWORD /f</CommandLine>
|
|
||||||
<Description>Disable unsupported hardware notifications</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>23</Order>
|
|
||||||
<CommandLine>reg.exe add "HKCU\Control Panel\UnsupportedHardwareNotificationCache" /v SV2 /d 0 /t REG_DWORD /f</CommandLine>
|
|
||||||
<Description>Disable unsupported hardware notifications</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>24</Order>
|
|
||||||
<CommandLine>cmd /C rd /q C:\Windows.old</CommandLine>
|
|
||||||
<Description>Remove empty Windows.old folder</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>25</Order>
|
|
||||||
<CommandLine>cmd /C mklink /d %userprofile%\Desktop\Shared \\host.lan\Data</CommandLine>
|
|
||||||
<Description>Create desktop shortcut to shared folder</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>26</Order>
|
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
</FirstLogonCommands>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
</unattend>
|
|
||||||
@@ -269,12 +269,12 @@
|
|||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
<RunSynchronousCommand wcm:action="add">
|
<RunSynchronousCommand wcm:action="add">
|
||||||
<Order>26</Order>
|
<Order>26</Order>
|
||||||
<Path>pnputil -i -a C:\Windows\Drivers\viogpudo\viogpudo.inf</Path>
|
<Path>cmd.exe /c start "" /b /wait pnputil -i -a "C:\Windows\Drivers\viogpudo\viogpudo.inf"</Path>
|
||||||
<Description>Install VirtIO display driver</Description>
|
<Description>Install VirtIO display driver</Description>
|
||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
<RunSynchronousCommand wcm:action="add">
|
<RunSynchronousCommand wcm:action="add">
|
||||||
<Order>27</Order>
|
<Order>27</Order>
|
||||||
<Path>C:\Windows\Drivers\Balloon\blnsvr.exe -i</Path>
|
<Path>cmd.exe /c start "" /b /wait "C:\Windows\Drivers\Balloon\blnsvr.exe" -i</Path>
|
||||||
<Description>Install VirtIO Balloon service</Description>
|
<Description>Install VirtIO Balloon service</Description>
|
||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
</RunSynchronous>
|
</RunSynchronous>
|
||||||
@@ -311,14 +311,14 @@
|
|||||||
<Name>Docker</Name>
|
<Name>Docker</Name>
|
||||||
<Group>Administrators</Group>
|
<Group>Administrators</Group>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</LocalAccount>
|
</LocalAccount>
|
||||||
</LocalAccounts>
|
</LocalAccounts>
|
||||||
<AdministratorPassword>
|
<AdministratorPassword>
|
||||||
<Value>password</Value>
|
<Value>YQBkAG0AaQBuAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAUABhAHMAcwB3AG8AcgBkAA==</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</AdministratorPassword>
|
</AdministratorPassword>
|
||||||
</UserAccounts>
|
</UserAccounts>
|
||||||
<AutoLogon>
|
<AutoLogon>
|
||||||
@@ -326,14 +326,14 @@
|
|||||||
<Enabled>true</Enabled>
|
<Enabled>true</Enabled>
|
||||||
<LogonCount>65432</LogonCount>
|
<LogonCount>65432</LogonCount>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</AutoLogon>
|
</AutoLogon>
|
||||||
<Display>
|
<Display>
|
||||||
<ColorDepth>32</ColorDepth>
|
<ColorDepth>32</ColorDepth>
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
<HorizontalResolution>1280</HorizontalResolution>
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
<VerticalResolution>720</VerticalResolution>
|
||||||
</Display>
|
</Display>
|
||||||
<OOBE>
|
<OOBE>
|
||||||
<HideEULAPage>true</HideEULAPage>
|
<HideEULAPage>true</HideEULAPage>
|
||||||
@@ -471,6 +471,11 @@
|
|||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
<SynchronousCommand wcm:action="add">
|
<SynchronousCommand wcm:action="add">
|
||||||
<Order>26</Order>
|
<Order>26</Order>
|
||||||
|
<CommandLine>cmd /C net use Z: \\host.lan\Data /persistent:yes</CommandLine>
|
||||||
|
<Description>Map shared folder</Description>
|
||||||
|
</SynchronousCommand>
|
||||||
|
<SynchronousCommand wcm:action="add">
|
||||||
|
<Order>27</Order>
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
<Description>Execute custom script from the OEM folder if exists</Description>
|
||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
|
|||||||
+15
-10
@@ -269,12 +269,12 @@
|
|||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
<RunSynchronousCommand wcm:action="add">
|
<RunSynchronousCommand wcm:action="add">
|
||||||
<Order>26</Order>
|
<Order>26</Order>
|
||||||
<Path>pnputil -i -a C:\Windows\Drivers\viogpudo\viogpudo.inf</Path>
|
<Path>cmd.exe /c start "" /b /wait pnputil -i -a "C:\Windows\Drivers\viogpudo\viogpudo.inf"</Path>
|
||||||
<Description>Install VirtIO display driver</Description>
|
<Description>Install VirtIO display driver</Description>
|
||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
<RunSynchronousCommand wcm:action="add">
|
<RunSynchronousCommand wcm:action="add">
|
||||||
<Order>27</Order>
|
<Order>27</Order>
|
||||||
<Path>C:\Windows\Drivers\Balloon\blnsvr.exe -i</Path>
|
<Path>cmd.exe /c start "" /b /wait "C:\Windows\Drivers\Balloon\blnsvr.exe" -i</Path>
|
||||||
<Description>Install VirtIO Balloon service</Description>
|
<Description>Install VirtIO Balloon service</Description>
|
||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
</RunSynchronous>
|
</RunSynchronous>
|
||||||
@@ -311,14 +311,14 @@
|
|||||||
<Name>Docker</Name>
|
<Name>Docker</Name>
|
||||||
<Group>Administrators</Group>
|
<Group>Administrators</Group>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</LocalAccount>
|
</LocalAccount>
|
||||||
</LocalAccounts>
|
</LocalAccounts>
|
||||||
<AdministratorPassword>
|
<AdministratorPassword>
|
||||||
<Value>password</Value>
|
<Value>YQBkAG0AaQBuAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAUABhAHMAcwB3AG8AcgBkAA==</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</AdministratorPassword>
|
</AdministratorPassword>
|
||||||
</UserAccounts>
|
</UserAccounts>
|
||||||
<AutoLogon>
|
<AutoLogon>
|
||||||
@@ -326,14 +326,14 @@
|
|||||||
<Enabled>true</Enabled>
|
<Enabled>true</Enabled>
|
||||||
<LogonCount>65432</LogonCount>
|
<LogonCount>65432</LogonCount>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</AutoLogon>
|
</AutoLogon>
|
||||||
<Display>
|
<Display>
|
||||||
<ColorDepth>32</ColorDepth>
|
<ColorDepth>32</ColorDepth>
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
<HorizontalResolution>1280</HorizontalResolution>
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
<VerticalResolution>720</VerticalResolution>
|
||||||
</Display>
|
</Display>
|
||||||
<OOBE>
|
<OOBE>
|
||||||
<HideEULAPage>true</HideEULAPage>
|
<HideEULAPage>true</HideEULAPage>
|
||||||
@@ -471,6 +471,11 @@
|
|||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
<SynchronousCommand wcm:action="add">
|
<SynchronousCommand wcm:action="add">
|
||||||
<Order>26</Order>
|
<Order>26</Order>
|
||||||
|
<CommandLine>cmd /C net use Z: \\host.lan\Data /persistent:yes</CommandLine>
|
||||||
|
<Description>Map shared folder</Description>
|
||||||
|
</SynchronousCommand>
|
||||||
|
<SynchronousCommand wcm:action="add">
|
||||||
|
<Order>27</Order>
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
<Description>Execute custom script from the OEM folder if exists</Description>
|
||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
|
|||||||
+15
-10
@@ -269,12 +269,12 @@
|
|||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
<RunSynchronousCommand wcm:action="add">
|
<RunSynchronousCommand wcm:action="add">
|
||||||
<Order>26</Order>
|
<Order>26</Order>
|
||||||
<Path>pnputil -i -a C:\Windows\Drivers\viogpudo\viogpudo.inf</Path>
|
<Path>cmd.exe /c start "" /b /wait pnputil -i -a "C:\Windows\Drivers\viogpudo\viogpudo.inf"</Path>
|
||||||
<Description>Install VirtIO display driver</Description>
|
<Description>Install VirtIO display driver</Description>
|
||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
<RunSynchronousCommand wcm:action="add">
|
<RunSynchronousCommand wcm:action="add">
|
||||||
<Order>27</Order>
|
<Order>27</Order>
|
||||||
<Path>C:\Windows\Drivers\Balloon\blnsvr.exe -i</Path>
|
<Path>cmd.exe /c start "" /b /wait "C:\Windows\Drivers\Balloon\blnsvr.exe" -i</Path>
|
||||||
<Description>Install VirtIO Balloon service</Description>
|
<Description>Install VirtIO Balloon service</Description>
|
||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
</RunSynchronous>
|
</RunSynchronous>
|
||||||
@@ -311,14 +311,14 @@
|
|||||||
<Name>Docker</Name>
|
<Name>Docker</Name>
|
||||||
<Group>Administrators</Group>
|
<Group>Administrators</Group>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</LocalAccount>
|
</LocalAccount>
|
||||||
</LocalAccounts>
|
</LocalAccounts>
|
||||||
<AdministratorPassword>
|
<AdministratorPassword>
|
||||||
<Value>password</Value>
|
<Value>YQBkAG0AaQBuAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAUABhAHMAcwB3AG8AcgBkAA==</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</AdministratorPassword>
|
</AdministratorPassword>
|
||||||
</UserAccounts>
|
</UserAccounts>
|
||||||
<AutoLogon>
|
<AutoLogon>
|
||||||
@@ -326,14 +326,14 @@
|
|||||||
<Enabled>true</Enabled>
|
<Enabled>true</Enabled>
|
||||||
<LogonCount>65432</LogonCount>
|
<LogonCount>65432</LogonCount>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</AutoLogon>
|
</AutoLogon>
|
||||||
<Display>
|
<Display>
|
||||||
<ColorDepth>32</ColorDepth>
|
<ColorDepth>32</ColorDepth>
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
<HorizontalResolution>1280</HorizontalResolution>
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
<VerticalResolution>720</VerticalResolution>
|
||||||
</Display>
|
</Display>
|
||||||
<OOBE>
|
<OOBE>
|
||||||
<HideEULAPage>true</HideEULAPage>
|
<HideEULAPage>true</HideEULAPage>
|
||||||
@@ -471,6 +471,11 @@
|
|||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
<SynchronousCommand wcm:action="add">
|
<SynchronousCommand wcm:action="add">
|
||||||
<Order>26</Order>
|
<Order>26</Order>
|
||||||
|
<CommandLine>cmd /C net use Z: \\host.lan\Data /persistent:yes</CommandLine>
|
||||||
|
<Description>Map shared folder</Description>
|
||||||
|
</SynchronousCommand>
|
||||||
|
<SynchronousCommand wcm:action="add">
|
||||||
|
<Order>27</Order>
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
<Description>Execute custom script from the OEM folder if exists</Description>
|
||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
|
|||||||
+15
-10
@@ -269,12 +269,12 @@
|
|||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
<RunSynchronousCommand wcm:action="add">
|
<RunSynchronousCommand wcm:action="add">
|
||||||
<Order>26</Order>
|
<Order>26</Order>
|
||||||
<Path>pnputil -i -a C:\Windows\Drivers\viogpudo\viogpudo.inf</Path>
|
<Path>cmd.exe /c start "" /b /wait pnputil -i -a "C:\Windows\Drivers\viogpudo\viogpudo.inf"</Path>
|
||||||
<Description>Install VirtIO display driver</Description>
|
<Description>Install VirtIO display driver</Description>
|
||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
<RunSynchronousCommand wcm:action="add">
|
<RunSynchronousCommand wcm:action="add">
|
||||||
<Order>27</Order>
|
<Order>27</Order>
|
||||||
<Path>C:\Windows\Drivers\Balloon\blnsvr.exe -i</Path>
|
<Path>cmd.exe /c start "" /b /wait "C:\Windows\Drivers\Balloon\blnsvr.exe" -i</Path>
|
||||||
<Description>Install VirtIO Balloon service</Description>
|
<Description>Install VirtIO Balloon service</Description>
|
||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
</RunSynchronous>
|
</RunSynchronous>
|
||||||
@@ -311,14 +311,14 @@
|
|||||||
<Name>Docker</Name>
|
<Name>Docker</Name>
|
||||||
<Group>Administrators</Group>
|
<Group>Administrators</Group>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</LocalAccount>
|
</LocalAccount>
|
||||||
</LocalAccounts>
|
</LocalAccounts>
|
||||||
<AdministratorPassword>
|
<AdministratorPassword>
|
||||||
<Value>password</Value>
|
<Value>YQBkAG0AaQBuAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAUABhAHMAcwB3AG8AcgBkAA==</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</AdministratorPassword>
|
</AdministratorPassword>
|
||||||
</UserAccounts>
|
</UserAccounts>
|
||||||
<AutoLogon>
|
<AutoLogon>
|
||||||
@@ -326,14 +326,14 @@
|
|||||||
<Enabled>true</Enabled>
|
<Enabled>true</Enabled>
|
||||||
<LogonCount>65432</LogonCount>
|
<LogonCount>65432</LogonCount>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</AutoLogon>
|
</AutoLogon>
|
||||||
<Display>
|
<Display>
|
||||||
<ColorDepth>32</ColorDepth>
|
<ColorDepth>32</ColorDepth>
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
<HorizontalResolution>1280</HorizontalResolution>
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
<VerticalResolution>720</VerticalResolution>
|
||||||
</Display>
|
</Display>
|
||||||
<OOBE>
|
<OOBE>
|
||||||
<HideEULAPage>true</HideEULAPage>
|
<HideEULAPage>true</HideEULAPage>
|
||||||
@@ -471,6 +471,11 @@
|
|||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
<SynchronousCommand wcm:action="add">
|
<SynchronousCommand wcm:action="add">
|
||||||
<Order>26</Order>
|
<Order>26</Order>
|
||||||
|
<CommandLine>cmd /C net use Z: \\host.lan\Data /persistent:yes</CommandLine>
|
||||||
|
<Description>Map shared folder</Description>
|
||||||
|
</SynchronousCommand>
|
||||||
|
<SynchronousCommand wcm:action="add">
|
||||||
|
<Order>27</Order>
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
<Description>Execute custom script from the OEM folder if exists</Description>
|
||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
|
|||||||
@@ -1,313 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<unattend xmlns="urn:schemas-microsoft-com:unattend" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
|
|
||||||
<settings pass="windowsPE">
|
|
||||||
<component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<SetupUILanguage>
|
|
||||||
<UILanguage>en-US</UILanguage>
|
|
||||||
</SetupUILanguage>
|
|
||||||
<InputLocale>0409:00000409</InputLocale>
|
|
||||||
<SystemLocale>en-US</SystemLocale>
|
|
||||||
<UILanguage>en-US</UILanguage>
|
|
||||||
<UserLocale>en-US</UserLocale>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DiskConfiguration>
|
|
||||||
<WillShowUI>OnError</WillShowUI>
|
|
||||||
<Disk wcm:action="add">
|
|
||||||
<DiskID>0</DiskID>
|
|
||||||
<WillWipeDisk>true</WillWipeDisk>
|
|
||||||
<CreatePartitions>
|
|
||||||
<CreatePartition wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<Type>Primary</Type>
|
|
||||||
<Size>100</Size>
|
|
||||||
</CreatePartition>
|
|
||||||
<CreatePartition wcm:action="add">
|
|
||||||
<Order>2</Order>
|
|
||||||
<Type>Primary</Type>
|
|
||||||
<Extend>true</Extend>
|
|
||||||
</CreatePartition>
|
|
||||||
</CreatePartitions>
|
|
||||||
<ModifyPartitions>
|
|
||||||
<ModifyPartition wcm:action="add">
|
|
||||||
<Format>NTFS</Format>
|
|
||||||
<Label>System Reserved</Label>
|
|
||||||
<Order>1</Order>
|
|
||||||
<Active>true</Active>
|
|
||||||
<PartitionID>1</PartitionID>
|
|
||||||
<TypeID>0x27</TypeID>
|
|
||||||
</ModifyPartition>
|
|
||||||
<ModifyPartition wcm:action="add">
|
|
||||||
<Active>true</Active>
|
|
||||||
<Format>NTFS</Format>
|
|
||||||
<Label>Windows</Label>
|
|
||||||
<Letter>C</Letter>
|
|
||||||
<Order>2</Order>
|
|
||||||
<PartitionID>2</PartitionID>
|
|
||||||
</ModifyPartition>
|
|
||||||
</ModifyPartitions>
|
|
||||||
</Disk>
|
|
||||||
</DiskConfiguration>
|
|
||||||
<ImageInstall>
|
|
||||||
<OSImage>
|
|
||||||
<InstallFrom>
|
|
||||||
<MetaData wcm:action="add">
|
|
||||||
<Value>1</Value>
|
|
||||||
<Key>/IMAGE/INDEX</Key>
|
|
||||||
</MetaData>
|
|
||||||
</InstallFrom>
|
|
||||||
<InstallTo>
|
|
||||||
<DiskID>0</DiskID>
|
|
||||||
<PartitionID>2</PartitionID>
|
|
||||||
</InstallTo>
|
|
||||||
<InstallToAvailablePartition>false</InstallToAvailablePartition>
|
|
||||||
</OSImage>
|
|
||||||
</ImageInstall>
|
|
||||||
<DynamicUpdate>
|
|
||||||
<Enable>true</Enable>
|
|
||||||
<WillShowUI>Never</WillShowUI>
|
|
||||||
</DynamicUpdate>
|
|
||||||
<UpgradeData>
|
|
||||||
<Upgrade>false</Upgrade>
|
|
||||||
<WillShowUI>Never</WillShowUI>
|
|
||||||
</UpgradeData>
|
|
||||||
<UserData>
|
|
||||||
<AcceptEula>true</AcceptEula>
|
|
||||||
<FullName>Docker</FullName>
|
|
||||||
<Organization>Windows for Docker</Organization>
|
|
||||||
</UserData>
|
|
||||||
<EnableFirewall>false</EnableFirewall>
|
|
||||||
<Diagnostics>
|
|
||||||
<OptIn>false</OptIn>
|
|
||||||
</Diagnostics>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="offlineServicing">
|
|
||||||
<component name="Microsoft-Windows-LUA-Settings" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<EnableLUA>false</EnableLUA>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="generalize">
|
|
||||||
<component name="Microsoft-Windows-PnPSysprep" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<PersistAllDeviceInstalls>true</PersistAllDeviceInstalls>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Security-SPP" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<SkipRearm>1</SkipRearm>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="specialize">
|
|
||||||
<component name="Microsoft-Windows-Security-SPP-UX" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<SkipAutoActivation>true</SkipAutoActivation>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<ComputerName>*</ComputerName>
|
|
||||||
<OEMInformation>
|
|
||||||
<Manufacturer>Dockur</Manufacturer>
|
|
||||||
<Model>Windows for Docker</Model>
|
|
||||||
</OEMInformation>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-ErrorReportingCore" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableWER>1</DisableWER>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-IE-InternetExplorer" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableAccelerators>true</DisableAccelerators>
|
|
||||||
<DisableFirstRunWizard>true</DisableFirstRunWizard>
|
|
||||||
<Home_Page>https://google.com</Home_Page>
|
|
||||||
<Help_Page>about:blank</Help_Page>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-IE-InternetExplorer" processorArchitecture="wow64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableAccelerators>true</DisableAccelerators>
|
|
||||||
<DisableFirstRunWizard>true</DisableFirstRunWizard>
|
|
||||||
<Home_Page>https://google.com</Home_Page>
|
|
||||||
<Help_Page>about:blank</Help_Page>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-SQMApi" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<CEIPEnabled>0</CEIPEnabled>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-SystemRestore-Main" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableSR>1</DisableSR>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<InputLocale>0409:00000409</InputLocale>
|
|
||||||
<SystemLocale>en-US</SystemLocale>
|
|
||||||
<UILanguage>en-US</UILanguage>
|
|
||||||
<UserLocale>en-US</UserLocale>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-ServerManager-SvrMgrNc" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DoNotOpenServerManagerAtLogon>true</DoNotOpenServerManagerAtLogon>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-OutOfBoxExperience" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DoNotOpenInitialConfigurationTasksAtLogon>true</DoNotOpenInitialConfigurationTasksAtLogon>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-TerminalServices-LocalSessionManager" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<fDenyTSConnections>false</fDenyTSConnections>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-TerminalServices-RDP-WinStationExtensions" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<UserAuthentication>0</UserAuthentication>
|
|
||||||
</component>
|
|
||||||
<component name="Networking-MPSSVC-Svc" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<FirewallGroups>
|
|
||||||
<FirewallGroup wcm:action="add" wcm:keyValue="RemoteDesktop">
|
|
||||||
<Active>true</Active>
|
|
||||||
<Profile>all</Profile>
|
|
||||||
<Group>@FirewallAPI.dll,-28752</Group>
|
|
||||||
</FirewallGroup>
|
|
||||||
</FirewallGroups>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Deployment" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<RunSynchronous>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<Path>C:\Windows\Drivers\Balloon\blnsvr.exe -i</Path>
|
|
||||||
<Description>Install VirtIO Balloon service</Description>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
</RunSynchronous>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="oobeSystem">
|
|
||||||
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<UserAccounts>
|
|
||||||
<LocalAccounts>
|
|
||||||
<LocalAccount wcm:action="add">
|
|
||||||
<Name>Docker</Name>
|
|
||||||
<Group>Administrators</Group>
|
|
||||||
<Password>
|
|
||||||
<Value />
|
|
||||||
<PlainText>true</PlainText>
|
|
||||||
</Password>
|
|
||||||
</LocalAccount>
|
|
||||||
</LocalAccounts>
|
|
||||||
<AdministratorPassword>
|
|
||||||
<Value>password</Value>
|
|
||||||
<PlainText>true</PlainText>
|
|
||||||
</AdministratorPassword>
|
|
||||||
</UserAccounts>
|
|
||||||
<AutoLogon>
|
|
||||||
<Username>Docker</Username>
|
|
||||||
<Enabled>true</Enabled>
|
|
||||||
<LogonCount>65432</LogonCount>
|
|
||||||
<Password>
|
|
||||||
<Value />
|
|
||||||
<PlainText>true</PlainText>
|
|
||||||
</Password>
|
|
||||||
</AutoLogon>
|
|
||||||
<Display>
|
|
||||||
<ColorDepth>32</ColorDepth>
|
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
|
||||||
</Display>
|
|
||||||
<OOBE>
|
|
||||||
<HideEULAPage>true</HideEULAPage>
|
|
||||||
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
|
|
||||||
<NetworkLocation>Home</NetworkLocation>
|
|
||||||
<ProtectYourPC>3</ProtectYourPC>
|
|
||||||
<SkipUserOOBE>true</SkipUserOOBE>
|
|
||||||
<SkipMachineOOBE>true</SkipMachineOOBE>
|
|
||||||
</OOBE>
|
|
||||||
<RegisteredOrganization>Dockur</RegisteredOrganization>
|
|
||||||
<RegisteredOwner>Windows for Docker</RegisteredOwner>
|
|
||||||
<FirstLogonCommands>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" /v "AllowInsecureGuestAuth" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Allow guest access to network shares</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>3</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\PasswordLess\Device" /v "DevicePasswordLessBuildVersion" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Enable option for passwordless sign-in</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>4</Order>
|
|
||||||
<CommandLine>cmd /C wmic useraccount where name="Docker" set PasswordExpires=false</CommandLine>
|
|
||||||
<Description>Password Never Expires</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>5</Order>
|
|
||||||
<CommandLine>cmd /C POWERCFG -H OFF</CommandLine>
|
|
||||||
<Description>Disable Hibernation</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>6</Order>
|
|
||||||
<CommandLine>cmd /C POWERCFG -X -monitor-timeout-ac 0</CommandLine>
|
|
||||||
<Description>Disable monitor blanking</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>7</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Network\NewNetworkWindowOff" /f</CommandLine>
|
|
||||||
<Description>Disable Network Discovery popup</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>8</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Network\NetworkLocationWizard" /v "HideWizard" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Disable Network Discovery popup</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>9</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\NewNetworks" /v NetworkList /t REG_MULTI_SZ /d "" /f</CommandLine>
|
|
||||||
<Description>Disable Network Discovery popup</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>10</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Edge" /v "HideFirstRunExperience" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Disable first-run experience in Edge</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>11</Order>
|
|
||||||
<CommandLine>reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "HideFileExt" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Show file extensions in Explorer</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>12</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Power" /v "HibernateFileSizePercent" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Zero Hibernation File</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>13</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Power" /v "HibernateEnabled" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Disable Hibernation</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>14</Order>
|
|
||||||
<CommandLine>cmd /C POWERCFG -X -standby-timeout-ac 0</CommandLine>
|
|
||||||
<Description>Disable Sleep</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>15</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v "fAllowUnlistedRemotePrograms" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Enable RemoteApp to launch unlisted programs</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>16</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList" /v "fDisabledAllowList" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Disable RemoteApp allowlist</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>17</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "NoAutoUpdate" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Turn off Windows Update auto download</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>18</Order>
|
|
||||||
<CommandLine>netsh advfirewall firewall set rule group="@FirewallAPI.dll,-32752" new enable=Yes</CommandLine>
|
|
||||||
<Description>Enable Network Discovery</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>19</Order>
|
|
||||||
<CommandLine>netsh advfirewall firewall set rule group="@FirewallAPI.dll,-28502" new enable=Yes</CommandLine>
|
|
||||||
<Description>Enable File Sharing</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>20</Order>
|
|
||||||
<CommandLine>cmd /C mklink /d %userprofile%\Desktop\Shared \\host.lan\Data</CommandLine>
|
|
||||||
<Description>Create desktop shortcut to shared folder</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>21</Order>
|
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
</FirstLogonCommands>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
</unattend>
|
|
||||||
+14
-9
@@ -161,7 +161,7 @@
|
|||||||
<RunSynchronous>
|
<RunSynchronous>
|
||||||
<RunSynchronousCommand wcm:action="add">
|
<RunSynchronousCommand wcm:action="add">
|
||||||
<Order>1</Order>
|
<Order>1</Order>
|
||||||
<Path>C:\Windows\Drivers\Balloon\blnsvr.exe -i</Path>
|
<Path>cmd.exe /c start "" /b /wait "C:\Windows\Drivers\Balloon\blnsvr.exe" -i</Path>
|
||||||
<Description>Install VirtIO Balloon service</Description>
|
<Description>Install VirtIO Balloon service</Description>
|
||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
</RunSynchronous>
|
</RunSynchronous>
|
||||||
@@ -175,14 +175,14 @@
|
|||||||
<Name>Docker</Name>
|
<Name>Docker</Name>
|
||||||
<Group>Administrators</Group>
|
<Group>Administrators</Group>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</LocalAccount>
|
</LocalAccount>
|
||||||
</LocalAccounts>
|
</LocalAccounts>
|
||||||
<AdministratorPassword>
|
<AdministratorPassword>
|
||||||
<Value>password</Value>
|
<Value>YQBkAG0AaQBuAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAUABhAHMAcwB3AG8AcgBkAA==</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</AdministratorPassword>
|
</AdministratorPassword>
|
||||||
</UserAccounts>
|
</UserAccounts>
|
||||||
<AutoLogon>
|
<AutoLogon>
|
||||||
@@ -190,14 +190,14 @@
|
|||||||
<Enabled>true</Enabled>
|
<Enabled>true</Enabled>
|
||||||
<LogonCount>65432</LogonCount>
|
<LogonCount>65432</LogonCount>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</AutoLogon>
|
</AutoLogon>
|
||||||
<Display>
|
<Display>
|
||||||
<ColorDepth>32</ColorDepth>
|
<ColorDepth>32</ColorDepth>
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
<HorizontalResolution>1280</HorizontalResolution>
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
<VerticalResolution>720</VerticalResolution>
|
||||||
</Display>
|
</Display>
|
||||||
<OOBE>
|
<OOBE>
|
||||||
<HideEULAPage>true</HideEULAPage>
|
<HideEULAPage>true</HideEULAPage>
|
||||||
@@ -307,6 +307,11 @@
|
|||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
<SynchronousCommand wcm:action="add">
|
<SynchronousCommand wcm:action="add">
|
||||||
<Order>21</Order>
|
<Order>21</Order>
|
||||||
|
<CommandLine>cmd /C net use Z: \\host.lan\Data /persistent:yes</CommandLine>
|
||||||
|
<Description>Map shared folder</Description>
|
||||||
|
</SynchronousCommand>
|
||||||
|
<SynchronousCommand wcm:action="add">
|
||||||
|
<Order>22</Order>
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
<Description>Execute custom script from the OEM folder if exists</Description>
|
||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
|
|||||||
@@ -1,332 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<unattend xmlns="urn:schemas-microsoft-com:unattend" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
|
|
||||||
<settings pass="windowsPE">
|
|
||||||
<component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<SetupUILanguage>
|
|
||||||
<UILanguage>en-US</UILanguage>
|
|
||||||
</SetupUILanguage>
|
|
||||||
<InputLocale>0409:00000409</InputLocale>
|
|
||||||
<SystemLocale>en-US</SystemLocale>
|
|
||||||
<UILanguage>en-US</UILanguage>
|
|
||||||
<UILanguageFallback>en-US</UILanguageFallback>
|
|
||||||
<UserLocale>en-US</UserLocale>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DiskConfiguration>
|
|
||||||
<Disk wcm:action="add">
|
|
||||||
<DiskID>0</DiskID>
|
|
||||||
<WillWipeDisk>true</WillWipeDisk>
|
|
||||||
<CreatePartitions>
|
|
||||||
<!-- System partition (ESP) -->
|
|
||||||
<CreatePartition wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<Type>EFI</Type>
|
|
||||||
<Size>128</Size>
|
|
||||||
</CreatePartition>
|
|
||||||
<!-- Microsoft reserved partition (MSR) -->
|
|
||||||
<CreatePartition wcm:action="add">
|
|
||||||
<Order>2</Order>
|
|
||||||
<Type>MSR</Type>
|
|
||||||
<Size>128</Size>
|
|
||||||
</CreatePartition>
|
|
||||||
<!-- Windows partition -->
|
|
||||||
<CreatePartition wcm:action="add">
|
|
||||||
<Order>3</Order>
|
|
||||||
<Type>Primary</Type>
|
|
||||||
<Extend>true</Extend>
|
|
||||||
</CreatePartition>
|
|
||||||
</CreatePartitions>
|
|
||||||
<ModifyPartitions>
|
|
||||||
<!-- System partition (ESP) -->
|
|
||||||
<ModifyPartition wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<PartitionID>1</PartitionID>
|
|
||||||
<Label>System</Label>
|
|
||||||
<Format>FAT32</Format>
|
|
||||||
</ModifyPartition>
|
|
||||||
<!-- MSR partition does not need to be modified -->
|
|
||||||
<ModifyPartition wcm:action="add">
|
|
||||||
<Order>2</Order>
|
|
||||||
<PartitionID>2</PartitionID>
|
|
||||||
</ModifyPartition>
|
|
||||||
<!-- Windows partition -->
|
|
||||||
<ModifyPartition wcm:action="add">
|
|
||||||
<Order>3</Order>
|
|
||||||
<PartitionID>3</PartitionID>
|
|
||||||
<Label>Windows</Label>
|
|
||||||
<Letter>C</Letter>
|
|
||||||
<Format>NTFS</Format>
|
|
||||||
</ModifyPartition>
|
|
||||||
</ModifyPartitions>
|
|
||||||
</Disk>
|
|
||||||
</DiskConfiguration>
|
|
||||||
<ImageInstall>
|
|
||||||
<OSImage>
|
|
||||||
<InstallFrom>
|
|
||||||
<MetaData wcm:action="add">
|
|
||||||
<Key>/image/index</Key>
|
|
||||||
<Value>2</Value>
|
|
||||||
</MetaData>
|
|
||||||
</InstallFrom>
|
|
||||||
<InstallTo>
|
|
||||||
<DiskID>0</DiskID>
|
|
||||||
<PartitionID>3</PartitionID>
|
|
||||||
</InstallTo>
|
|
||||||
<WillShowUI>OnError</WillShowUI>
|
|
||||||
<InstallToAvailablePartition>false</InstallToAvailablePartition>
|
|
||||||
</OSImage>
|
|
||||||
</ImageInstall>
|
|
||||||
<DynamicUpdate>
|
|
||||||
<Enable>true</Enable>
|
|
||||||
<WillShowUI>Never</WillShowUI>
|
|
||||||
</DynamicUpdate>
|
|
||||||
<UpgradeData>
|
|
||||||
<Upgrade>false</Upgrade>
|
|
||||||
<WillShowUI>Never</WillShowUI>
|
|
||||||
</UpgradeData>
|
|
||||||
<UserData>
|
|
||||||
<AcceptEula>true</AcceptEula>
|
|
||||||
<FullName>Docker</FullName>
|
|
||||||
<Organization>Windows for Docker</Organization>
|
|
||||||
</UserData>
|
|
||||||
<EnableFirewall>false</EnableFirewall>
|
|
||||||
<Diagnostics>
|
|
||||||
<OptIn>false</OptIn>
|
|
||||||
</Diagnostics>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="offlineServicing">
|
|
||||||
<component name="Microsoft-Windows-LUA-Settings" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<EnableLUA>false</EnableLUA>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="generalize">
|
|
||||||
<component name="Microsoft-Windows-PnPSysprep" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<PersistAllDeviceInstalls>true</PersistAllDeviceInstalls>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Security-SPP" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<SkipRearm>1</SkipRearm>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="specialize">
|
|
||||||
<component name="Microsoft-Windows-Security-SPP-UX" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<SkipAutoActivation>true</SkipAutoActivation>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<ComputerName>*</ComputerName>
|
|
||||||
<OEMInformation>
|
|
||||||
<Manufacturer>Dockur</Manufacturer>
|
|
||||||
<Model>Windows for Docker</Model>
|
|
||||||
</OEMInformation>
|
|
||||||
<OEMName>Windows for Docker</OEMName>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-ErrorReportingCore" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableWER>1</DisableWER>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-IE-InternetExplorer" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableAccelerators>true</DisableAccelerators>
|
|
||||||
<DisableFirstRunWizard>true</DisableFirstRunWizard>
|
|
||||||
<Home_Page>https://google.com</Home_Page>
|
|
||||||
<Help_Page>about:blank</Help_Page>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-IE-InternetExplorer" processorArchitecture="wow64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableAccelerators>true</DisableAccelerators>
|
|
||||||
<DisableFirstRunWizard>true</DisableFirstRunWizard>
|
|
||||||
<Home_Page>https://google.com</Home_Page>
|
|
||||||
<Help_Page>about:blank</Help_Page>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-SQMApi" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<CEIPEnabled>0</CEIPEnabled>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-SystemRestore-Main" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableSR>1</DisableSR>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<InputLocale>0409:00000409</InputLocale>
|
|
||||||
<SystemLocale>en-US</SystemLocale>
|
|
||||||
<UILanguage>en-US</UILanguage>
|
|
||||||
<UILanguageFallback>en-US</UILanguageFallback>
|
|
||||||
<UserLocale>en-US</UserLocale>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Deployment" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<RunSynchronous>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<Path>reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\FirstNetwork" /v Category /t REG_DWORD /d 1 /f</Path>
|
|
||||||
<Description>Set Network Location to Home</Description>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>2</Order>
|
|
||||||
<Path>C:\Windows\Drivers\Balloon\blnsvr.exe -i</Path>
|
|
||||||
<Description>Install VirtIO Balloon service</Description>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
</RunSynchronous>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-ServerManager-SvrMgrNc" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DoNotOpenServerManagerAtLogon>true</DoNotOpenServerManagerAtLogon>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-OutOfBoxExperience" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DoNotOpenInitialConfigurationTasksAtLogon>true</DoNotOpenInitialConfigurationTasksAtLogon>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-TerminalServices-LocalSessionManager" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<fDenyTSConnections>false</fDenyTSConnections>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-TerminalServices-RDP-WinStationExtensions" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<UserAuthentication>0</UserAuthentication>
|
|
||||||
</component>
|
|
||||||
<component name="Networking-MPSSVC-Svc" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<FirewallGroups>
|
|
||||||
<FirewallGroup wcm:action="add" wcm:keyValue="RemoteDesktop">
|
|
||||||
<Active>true</Active>
|
|
||||||
<Profile>all</Profile>
|
|
||||||
<Group>@FirewallAPI.dll,-28752</Group>
|
|
||||||
</FirewallGroup>
|
|
||||||
</FirewallGroups>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="oobeSystem">
|
|
||||||
<component name="Microsoft-Windows-SecureStartup-FilterDriver" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<PreventDeviceEncryption>true</PreventDeviceEncryption>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-EnhancedStorage-Adm" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<TCGSecurityActivationDisabled>1</TCGSecurityActivationDisabled>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<UserAccounts>
|
|
||||||
<LocalAccounts>
|
|
||||||
<LocalAccount wcm:action="add">
|
|
||||||
<Name>Docker</Name>
|
|
||||||
<Group>Administrators</Group>
|
|
||||||
<Password>
|
|
||||||
<Value />
|
|
||||||
<PlainText>true</PlainText>
|
|
||||||
</Password>
|
|
||||||
</LocalAccount>
|
|
||||||
</LocalAccounts>
|
|
||||||
<AdministratorPassword>
|
|
||||||
<Value>password</Value>
|
|
||||||
<PlainText>true</PlainText>
|
|
||||||
</AdministratorPassword>
|
|
||||||
</UserAccounts>
|
|
||||||
<AutoLogon>
|
|
||||||
<Username>Docker</Username>
|
|
||||||
<Enabled>true</Enabled>
|
|
||||||
<LogonCount>65432</LogonCount>
|
|
||||||
<Password>
|
|
||||||
<Value />
|
|
||||||
<PlainText>true</PlainText>
|
|
||||||
</Password>
|
|
||||||
</AutoLogon>
|
|
||||||
<Display>
|
|
||||||
<ColorDepth>32</ColorDepth>
|
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
|
||||||
</Display>
|
|
||||||
<OOBE>
|
|
||||||
<HideEULAPage>true</HideEULAPage>
|
|
||||||
<HideLocalAccountScreen>true</HideLocalAccountScreen>
|
|
||||||
<HideOEMRegistrationScreen>true</HideOEMRegistrationScreen>
|
|
||||||
<HideOnlineAccountScreens>true</HideOnlineAccountScreens>
|
|
||||||
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
|
|
||||||
<NetworkLocation>Home</NetworkLocation>
|
|
||||||
<ProtectYourPC>3</ProtectYourPC>
|
|
||||||
<SkipUserOOBE>true</SkipUserOOBE>
|
|
||||||
<SkipMachineOOBE>true</SkipMachineOOBE>
|
|
||||||
</OOBE>
|
|
||||||
<RegisteredOrganization>Dockur</RegisteredOrganization>
|
|
||||||
<RegisteredOwner>Windows for Docker</RegisteredOwner>
|
|
||||||
<FirstLogonCommands>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" /v "AllowInsecureGuestAuth" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Allow guest access to network shares</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>3</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\PasswordLess\Device" /v "DevicePasswordLessBuildVersion" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Enable option for passwordless sign-in</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>4</Order>
|
|
||||||
<CommandLine>cmd /C wmic useraccount where name="Docker" set PasswordExpires=false</CommandLine>
|
|
||||||
<Description>Password Never Expires</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>5</Order>
|
|
||||||
<CommandLine>cmd /C POWERCFG -H OFF</CommandLine>
|
|
||||||
<Description>Disable Hibernation</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>6</Order>
|
|
||||||
<CommandLine>cmd /C POWERCFG -X -monitor-timeout-ac 0</CommandLine>
|
|
||||||
<Description>Disable monitor blanking</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>7</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Edge" /v "HideFirstRunExperience" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Disable first-run experience in Edge</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>8</Order>
|
|
||||||
<CommandLine>reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "HideFileExt" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Show file extensions in Explorer</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>9</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Power" /v "HibernateFileSizePercent" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Zero Hibernation File</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>10</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Power" /v "HibernateEnabled" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Disable Hibernation</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>11</Order>
|
|
||||||
<CommandLine>cmd /C POWERCFG -X -standby-timeout-ac 0</CommandLine>
|
|
||||||
<Description>Disable Sleep</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>12</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v "fAllowUnlistedRemotePrograms" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Enable RemoteApp to launch unlisted programs</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>13</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList" /v "fDisabledAllowList" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Disable RemoteApp allowlist</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>14</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "NoAutoUpdate" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Turn off Windows Update auto download</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>15</Order>
|
|
||||||
<CommandLine>netsh advfirewall firewall set rule group="@FirewallAPI.dll,-32752" new enable=Yes</CommandLine>
|
|
||||||
<Description>Enable Network Discovery</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>16</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Network\NewNetworkWindowOff" /f</CommandLine>
|
|
||||||
<Description>Disable Network Discovery popup</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>17</Order>
|
|
||||||
<CommandLine>netsh advfirewall firewall set rule group="@FirewallAPI.dll,-28502" new enable=Yes</CommandLine>
|
|
||||||
<Description>Enable File Sharing</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>18</Order>
|
|
||||||
<CommandLine>cmd /C mklink /d %userprofile%\Desktop\Shared \\host.lan\Data</CommandLine>
|
|
||||||
<Description>Create desktop shortcut to shared folder</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>19</Order>
|
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
</FirstLogonCommands>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
</unattend>
|
|
||||||
+14
-9
@@ -160,7 +160,7 @@
|
|||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
<RunSynchronousCommand wcm:action="add">
|
<RunSynchronousCommand wcm:action="add">
|
||||||
<Order>2</Order>
|
<Order>2</Order>
|
||||||
<Path>C:\Windows\Drivers\Balloon\blnsvr.exe -i</Path>
|
<Path>cmd.exe /c start "" /b /wait "C:\Windows\Drivers\Balloon\blnsvr.exe" -i</Path>
|
||||||
<Description>Install VirtIO Balloon service</Description>
|
<Description>Install VirtIO Balloon service</Description>
|
||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
</RunSynchronous>
|
</RunSynchronous>
|
||||||
@@ -201,14 +201,14 @@
|
|||||||
<Name>Docker</Name>
|
<Name>Docker</Name>
|
||||||
<Group>Administrators</Group>
|
<Group>Administrators</Group>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</LocalAccount>
|
</LocalAccount>
|
||||||
</LocalAccounts>
|
</LocalAccounts>
|
||||||
<AdministratorPassword>
|
<AdministratorPassword>
|
||||||
<Value>password</Value>
|
<Value>YQBkAG0AaQBuAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAUABhAHMAcwB3AG8AcgBkAA==</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</AdministratorPassword>
|
</AdministratorPassword>
|
||||||
</UserAccounts>
|
</UserAccounts>
|
||||||
<AutoLogon>
|
<AutoLogon>
|
||||||
@@ -216,14 +216,14 @@
|
|||||||
<Enabled>true</Enabled>
|
<Enabled>true</Enabled>
|
||||||
<LogonCount>65432</LogonCount>
|
<LogonCount>65432</LogonCount>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</AutoLogon>
|
</AutoLogon>
|
||||||
<Display>
|
<Display>
|
||||||
<ColorDepth>32</ColorDepth>
|
<ColorDepth>32</ColorDepth>
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
<HorizontalResolution>1280</HorizontalResolution>
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
<VerticalResolution>720</VerticalResolution>
|
||||||
</Display>
|
</Display>
|
||||||
<OOBE>
|
<OOBE>
|
||||||
<HideEULAPage>true</HideEULAPage>
|
<HideEULAPage>true</HideEULAPage>
|
||||||
@@ -326,6 +326,11 @@
|
|||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
<SynchronousCommand wcm:action="add">
|
<SynchronousCommand wcm:action="add">
|
||||||
<Order>19</Order>
|
<Order>19</Order>
|
||||||
|
<CommandLine>cmd /C net use Z: \\host.lan\Data /persistent:yes</CommandLine>
|
||||||
|
<Description>Map shared folder</Description>
|
||||||
|
</SynchronousCommand>
|
||||||
|
<SynchronousCommand wcm:action="add">
|
||||||
|
<Order>20</Order>
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
<Description>Execute custom script from the OEM folder if exists</Description>
|
||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
|
|||||||
@@ -1,352 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<unattend xmlns="urn:schemas-microsoft-com:unattend" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
|
|
||||||
<settings pass="windowsPE">
|
|
||||||
<component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<SetupUILanguage>
|
|
||||||
<UILanguage>en-US</UILanguage>
|
|
||||||
</SetupUILanguage>
|
|
||||||
<InputLocale>0409:00000409</InputLocale>
|
|
||||||
<SystemLocale>en-US</SystemLocale>
|
|
||||||
<UILanguage>en-US</UILanguage>
|
|
||||||
<UILanguageFallback>en-US</UILanguageFallback>
|
|
||||||
<UserLocale>en-US</UserLocale>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DiskConfiguration>
|
|
||||||
<Disk wcm:action="add">
|
|
||||||
<DiskID>0</DiskID>
|
|
||||||
<WillWipeDisk>true</WillWipeDisk>
|
|
||||||
<CreatePartitions>
|
|
||||||
<!-- System partition (ESP) -->
|
|
||||||
<CreatePartition wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<Type>EFI</Type>
|
|
||||||
<Size>128</Size>
|
|
||||||
</CreatePartition>
|
|
||||||
<!-- Microsoft reserved partition (MSR) -->
|
|
||||||
<CreatePartition wcm:action="add">
|
|
||||||
<Order>2</Order>
|
|
||||||
<Type>MSR</Type>
|
|
||||||
<Size>128</Size>
|
|
||||||
</CreatePartition>
|
|
||||||
<!-- Windows partition -->
|
|
||||||
<CreatePartition wcm:action="add">
|
|
||||||
<Order>3</Order>
|
|
||||||
<Type>Primary</Type>
|
|
||||||
<Extend>true</Extend>
|
|
||||||
</CreatePartition>
|
|
||||||
</CreatePartitions>
|
|
||||||
<ModifyPartitions>
|
|
||||||
<!-- System partition (ESP) -->
|
|
||||||
<ModifyPartition wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<PartitionID>1</PartitionID>
|
|
||||||
<Label>System</Label>
|
|
||||||
<Format>FAT32</Format>
|
|
||||||
</ModifyPartition>
|
|
||||||
<!-- MSR partition does not need to be modified -->
|
|
||||||
<ModifyPartition wcm:action="add">
|
|
||||||
<Order>2</Order>
|
|
||||||
<PartitionID>2</PartitionID>
|
|
||||||
</ModifyPartition>
|
|
||||||
<!-- Windows partition -->
|
|
||||||
<ModifyPartition wcm:action="add">
|
|
||||||
<Order>3</Order>
|
|
||||||
<PartitionID>3</PartitionID>
|
|
||||||
<Label>Windows</Label>
|
|
||||||
<Letter>C</Letter>
|
|
||||||
<Format>NTFS</Format>
|
|
||||||
</ModifyPartition>
|
|
||||||
</ModifyPartitions>
|
|
||||||
</Disk>
|
|
||||||
</DiskConfiguration>
|
|
||||||
<ImageInstall>
|
|
||||||
<OSImage>
|
|
||||||
<InstallFrom>
|
|
||||||
<MetaData wcm:action="add">
|
|
||||||
<Key>/IMAGE/NAME</Key>
|
|
||||||
<Value>Windows Server 2016 SERVERSTANDARD</Value>
|
|
||||||
</MetaData>
|
|
||||||
</InstallFrom>
|
|
||||||
<InstallTo>
|
|
||||||
<DiskID>0</DiskID>
|
|
||||||
<PartitionID>3</PartitionID>
|
|
||||||
</InstallTo>
|
|
||||||
<WillShowUI>OnError</WillShowUI>
|
|
||||||
<InstallToAvailablePartition>false</InstallToAvailablePartition>
|
|
||||||
</OSImage>
|
|
||||||
</ImageInstall>
|
|
||||||
<DynamicUpdate>
|
|
||||||
<Enable>true</Enable>
|
|
||||||
<WillShowUI>Never</WillShowUI>
|
|
||||||
</DynamicUpdate>
|
|
||||||
<UpgradeData>
|
|
||||||
<Upgrade>false</Upgrade>
|
|
||||||
<WillShowUI>Never</WillShowUI>
|
|
||||||
</UpgradeData>
|
|
||||||
<UserData>
|
|
||||||
<AcceptEula>true</AcceptEula>
|
|
||||||
<FullName>Docker</FullName>
|
|
||||||
<Organization>Windows for Docker</Organization>
|
|
||||||
</UserData>
|
|
||||||
<EnableFirewall>false</EnableFirewall>
|
|
||||||
<Diagnostics>
|
|
||||||
<OptIn>false</OptIn>
|
|
||||||
</Diagnostics>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="offlineServicing">
|
|
||||||
<component name="Microsoft-Windows-LUA-Settings" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<EnableLUA>false</EnableLUA>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="generalize">
|
|
||||||
<component name="Microsoft-Windows-PnPSysprep" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<PersistAllDeviceInstalls>true</PersistAllDeviceInstalls>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Security-SPP" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<SkipRearm>1</SkipRearm>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="specialize">
|
|
||||||
<component name="Microsoft-Windows-Security-SPP-UX" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<SkipAutoActivation>true</SkipAutoActivation>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<ComputerName>*</ComputerName>
|
|
||||||
<OEMInformation>
|
|
||||||
<Manufacturer>Dockur</Manufacturer>
|
|
||||||
<Model>Windows for Docker</Model>
|
|
||||||
</OEMInformation>
|
|
||||||
<OEMName>Windows for Docker</OEMName>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-ErrorReportingCore" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableWER>1</DisableWER>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-IE-InternetExplorer" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableAccelerators>true</DisableAccelerators>
|
|
||||||
<DisableFirstRunWizard>true</DisableFirstRunWizard>
|
|
||||||
<Home_Page>https://google.com</Home_Page>
|
|
||||||
<Help_Page>about:blank</Help_Page>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-IE-InternetExplorer" processorArchitecture="wow64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableAccelerators>true</DisableAccelerators>
|
|
||||||
<DisableFirstRunWizard>true</DisableFirstRunWizard>
|
|
||||||
<Home_Page>https://google.com</Home_Page>
|
|
||||||
<Help_Page>about:blank</Help_Page>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-SQMApi" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<CEIPEnabled>0</CEIPEnabled>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-SystemRestore-Main" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableSR>1</DisableSR>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<InputLocale>0409:00000409</InputLocale>
|
|
||||||
<SystemLocale>en-US</SystemLocale>
|
|
||||||
<UILanguage>en-US</UILanguage>
|
|
||||||
<UILanguageFallback>en-US</UILanguageFallback>
|
|
||||||
<UserLocale>en-US</UserLocale>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Deployment" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<RunSynchronous>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<Path>reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\FirstNetwork" /v Category /t REG_DWORD /d 1 /f</Path>
|
|
||||||
<Description>Set Network Location to Home</Description>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>2</Order>
|
|
||||||
<Path>C:\Windows\Drivers\Balloon\blnsvr.exe -i</Path>
|
|
||||||
<Description>Install VirtIO Balloon service</Description>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
</RunSynchronous>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-ServerManager-SvrMgrNc" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DoNotOpenServerManagerAtLogon>true</DoNotOpenServerManagerAtLogon>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-OutOfBoxExperience" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DoNotOpenInitialConfigurationTasksAtLogon>true</DoNotOpenInitialConfigurationTasksAtLogon>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-TerminalServices-LocalSessionManager" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<fDenyTSConnections>false</fDenyTSConnections>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-TerminalServices-RDP-WinStationExtensions" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<UserAuthentication>0</UserAuthentication>
|
|
||||||
</component>
|
|
||||||
<component name="Networking-MPSSVC-Svc" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<FirewallGroups>
|
|
||||||
<FirewallGroup wcm:action="add" wcm:keyValue="RemoteDesktop">
|
|
||||||
<Active>true</Active>
|
|
||||||
<Profile>all</Profile>
|
|
||||||
<Group>@FirewallAPI.dll,-28752</Group>
|
|
||||||
</FirewallGroup>
|
|
||||||
</FirewallGroups>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="oobeSystem">
|
|
||||||
<component name="Microsoft-Windows-SecureStartup-FilterDriver" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<PreventDeviceEncryption>true</PreventDeviceEncryption>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-EnhancedStorage-Adm" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<TCGSecurityActivationDisabled>1</TCGSecurityActivationDisabled>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<UserAccounts>
|
|
||||||
<LocalAccounts>
|
|
||||||
<LocalAccount wcm:action="add">
|
|
||||||
<Name>Docker</Name>
|
|
||||||
<Group>Administrators</Group>
|
|
||||||
<Password>
|
|
||||||
<Value />
|
|
||||||
<PlainText>true</PlainText>
|
|
||||||
</Password>
|
|
||||||
</LocalAccount>
|
|
||||||
</LocalAccounts>
|
|
||||||
<AdministratorPassword>
|
|
||||||
<Value>password</Value>
|
|
||||||
<PlainText>true</PlainText>
|
|
||||||
</AdministratorPassword>
|
|
||||||
</UserAccounts>
|
|
||||||
<AutoLogon>
|
|
||||||
<Username>Docker</Username>
|
|
||||||
<Enabled>true</Enabled>
|
|
||||||
<LogonCount>65432</LogonCount>
|
|
||||||
<Password>
|
|
||||||
<Value />
|
|
||||||
<PlainText>true</PlainText>
|
|
||||||
</Password>
|
|
||||||
</AutoLogon>
|
|
||||||
<Display>
|
|
||||||
<ColorDepth>32</ColorDepth>
|
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
|
||||||
</Display>
|
|
||||||
<OOBE>
|
|
||||||
<HideEULAPage>true</HideEULAPage>
|
|
||||||
<HideLocalAccountScreen>true</HideLocalAccountScreen>
|
|
||||||
<HideOEMRegistrationScreen>true</HideOEMRegistrationScreen>
|
|
||||||
<HideOnlineAccountScreens>true</HideOnlineAccountScreens>
|
|
||||||
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
|
|
||||||
<NetworkLocation>Home</NetworkLocation>
|
|
||||||
<ProtectYourPC>3</ProtectYourPC>
|
|
||||||
<SkipUserOOBE>true</SkipUserOOBE>
|
|
||||||
<SkipMachineOOBE>true</SkipMachineOOBE>
|
|
||||||
</OOBE>
|
|
||||||
<RegisteredOrganization>Dockur</RegisteredOrganization>
|
|
||||||
<RegisteredOwner>Windows for Docker</RegisteredOwner>
|
|
||||||
<FirstLogonCommands>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" /v "AllowInsecureGuestAuth" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Allow guest access to network shares</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>3</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\PasswordLess\Device" /v "DevicePasswordLessBuildVersion" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Enable option for passwordless sign-in</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>4</Order>
|
|
||||||
<CommandLine>cmd /C wmic useraccount where name="Docker" set PasswordExpires=false</CommandLine>
|
|
||||||
<Description>Password Never Expires</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>5</Order>
|
|
||||||
<CommandLine>cmd /C POWERCFG -H OFF</CommandLine>
|
|
||||||
<Description>Disable Hibernation</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>6</Order>
|
|
||||||
<CommandLine>cmd /C POWERCFG -X -monitor-timeout-ac 0</CommandLine>
|
|
||||||
<Description>Disable monitor blanking</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>7</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Edge" /v "HideFirstRunExperience" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Disable first-run experience in Edge</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>8</Order>
|
|
||||||
<CommandLine>reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "HideFileExt" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Show file extensions in Explorer</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>9</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Power" /v "HibernateFileSizePercent" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Zero Hibernation File</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>10</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Power" /v "HibernateEnabled" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Disable Hibernation</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>11</Order>
|
|
||||||
<CommandLine>cmd /C POWERCFG -X -standby-timeout-ac 0</CommandLine>
|
|
||||||
<Description>Disable Sleep</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>12</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v "fAllowUnlistedRemotePrograms" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Enable RemoteApp to launch unlisted programs</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>13</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList" /v "fDisabledAllowList" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Disable RemoteApp allowlist</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>14</Order>
|
|
||||||
<CommandLine>reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Search" /v "SearchboxTaskbarMode" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Remove Search from the Taskbar</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>15</Order>
|
|
||||||
<CommandLine>reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "ShowTaskViewButton" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Remove Task View from the Taskbar</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>16</Order>
|
|
||||||
<CommandLine>reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "TaskbarDa" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Remove Widgets from the Taskbar</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>17</Order>
|
|
||||||
<CommandLine>reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "TaskbarMn" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Remove Chat from the Taskbar</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>18</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "NoAutoUpdate" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Turn off Windows Update auto download</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>19</Order>
|
|
||||||
<CommandLine>netsh advfirewall firewall set rule group="@FirewallAPI.dll,-32752" new enable=Yes</CommandLine>
|
|
||||||
<Description>Enable Network Discovery</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>20</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Network\NewNetworkWindowOff" /f</CommandLine>
|
|
||||||
<Description>Disable Network Discovery popup</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>21</Order>
|
|
||||||
<CommandLine>netsh advfirewall firewall set rule group="@FirewallAPI.dll,-28502" new enable=Yes</CommandLine>
|
|
||||||
<Description>Enable File Sharing</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>22</Order>
|
|
||||||
<CommandLine>cmd /C mklink /d %userprofile%\Desktop\Shared \\host.lan\Data</CommandLine>
|
|
||||||
<Description>Create desktop shortcut to shared folder</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>23</Order>
|
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
</FirstLogonCommands>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
</unattend>
|
|
||||||
+14
-9
@@ -160,7 +160,7 @@
|
|||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
<RunSynchronousCommand wcm:action="add">
|
<RunSynchronousCommand wcm:action="add">
|
||||||
<Order>2</Order>
|
<Order>2</Order>
|
||||||
<Path>C:\Windows\Drivers\Balloon\blnsvr.exe -i</Path>
|
<Path>cmd.exe /c start "" /b /wait "C:\Windows\Drivers\Balloon\blnsvr.exe" -i</Path>
|
||||||
<Description>Install VirtIO Balloon service</Description>
|
<Description>Install VirtIO Balloon service</Description>
|
||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
</RunSynchronous>
|
</RunSynchronous>
|
||||||
@@ -201,14 +201,14 @@
|
|||||||
<Name>Docker</Name>
|
<Name>Docker</Name>
|
||||||
<Group>Administrators</Group>
|
<Group>Administrators</Group>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</LocalAccount>
|
</LocalAccount>
|
||||||
</LocalAccounts>
|
</LocalAccounts>
|
||||||
<AdministratorPassword>
|
<AdministratorPassword>
|
||||||
<Value>password</Value>
|
<Value>YQBkAG0AaQBuAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAUABhAHMAcwB3AG8AcgBkAA==</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</AdministratorPassword>
|
</AdministratorPassword>
|
||||||
</UserAccounts>
|
</UserAccounts>
|
||||||
<AutoLogon>
|
<AutoLogon>
|
||||||
@@ -216,14 +216,14 @@
|
|||||||
<Enabled>true</Enabled>
|
<Enabled>true</Enabled>
|
||||||
<LogonCount>65432</LogonCount>
|
<LogonCount>65432</LogonCount>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</AutoLogon>
|
</AutoLogon>
|
||||||
<Display>
|
<Display>
|
||||||
<ColorDepth>32</ColorDepth>
|
<ColorDepth>32</ColorDepth>
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
<HorizontalResolution>1280</HorizontalResolution>
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
<VerticalResolution>720</VerticalResolution>
|
||||||
</Display>
|
</Display>
|
||||||
<OOBE>
|
<OOBE>
|
||||||
<HideEULAPage>true</HideEULAPage>
|
<HideEULAPage>true</HideEULAPage>
|
||||||
@@ -346,6 +346,11 @@
|
|||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
<SynchronousCommand wcm:action="add">
|
<SynchronousCommand wcm:action="add">
|
||||||
<Order>23</Order>
|
<Order>23</Order>
|
||||||
|
<CommandLine>cmd /C net use Z: \\host.lan\Data /persistent:yes</CommandLine>
|
||||||
|
<Description>Map shared folder</Description>
|
||||||
|
</SynchronousCommand>
|
||||||
|
<SynchronousCommand wcm:action="add">
|
||||||
|
<Order>24</Order>
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
<Description>Execute custom script from the OEM folder if exists</Description>
|
||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
|
|||||||
@@ -1,356 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<unattend xmlns="urn:schemas-microsoft-com:unattend" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
|
|
||||||
<settings pass="windowsPE">
|
|
||||||
<component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<SetupUILanguage>
|
|
||||||
<UILanguage>en-US</UILanguage>
|
|
||||||
</SetupUILanguage>
|
|
||||||
<InputLocale>0409:00000409</InputLocale>
|
|
||||||
<SystemLocale>en-US</SystemLocale>
|
|
||||||
<UILanguage>en-US</UILanguage>
|
|
||||||
<UILanguageFallback>en-US</UILanguageFallback>
|
|
||||||
<UserLocale>en-US</UserLocale>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DiskConfiguration>
|
|
||||||
<Disk wcm:action="add">
|
|
||||||
<DiskID>0</DiskID>
|
|
||||||
<WillWipeDisk>true</WillWipeDisk>
|
|
||||||
<CreatePartitions>
|
|
||||||
<!-- System partition (ESP) -->
|
|
||||||
<CreatePartition wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<Type>EFI</Type>
|
|
||||||
<Size>128</Size>
|
|
||||||
</CreatePartition>
|
|
||||||
<!-- Microsoft reserved partition (MSR) -->
|
|
||||||
<CreatePartition wcm:action="add">
|
|
||||||
<Order>2</Order>
|
|
||||||
<Type>MSR</Type>
|
|
||||||
<Size>128</Size>
|
|
||||||
</CreatePartition>
|
|
||||||
<!-- Windows partition -->
|
|
||||||
<CreatePartition wcm:action="add">
|
|
||||||
<Order>3</Order>
|
|
||||||
<Type>Primary</Type>
|
|
||||||
<Extend>true</Extend>
|
|
||||||
</CreatePartition>
|
|
||||||
</CreatePartitions>
|
|
||||||
<ModifyPartitions>
|
|
||||||
<!-- System partition (ESP) -->
|
|
||||||
<ModifyPartition wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<PartitionID>1</PartitionID>
|
|
||||||
<Label>System</Label>
|
|
||||||
<Format>FAT32</Format>
|
|
||||||
</ModifyPartition>
|
|
||||||
<!-- MSR partition does not need to be modified -->
|
|
||||||
<ModifyPartition wcm:action="add">
|
|
||||||
<Order>2</Order>
|
|
||||||
<PartitionID>2</PartitionID>
|
|
||||||
</ModifyPartition>
|
|
||||||
<!-- Windows partition -->
|
|
||||||
<ModifyPartition wcm:action="add">
|
|
||||||
<Order>3</Order>
|
|
||||||
<PartitionID>3</PartitionID>
|
|
||||||
<Label>Windows</Label>
|
|
||||||
<Letter>C</Letter>
|
|
||||||
<Format>NTFS</Format>
|
|
||||||
</ModifyPartition>
|
|
||||||
</ModifyPartitions>
|
|
||||||
</Disk>
|
|
||||||
</DiskConfiguration>
|
|
||||||
<ImageInstall>
|
|
||||||
<OSImage>
|
|
||||||
<InstallFrom>
|
|
||||||
<MetaData wcm:action="add">
|
|
||||||
<Key>/IMAGE/NAME</Key>
|
|
||||||
<Value>Windows Server 2019 SERVERSTANDARD</Value>
|
|
||||||
</MetaData>
|
|
||||||
</InstallFrom>
|
|
||||||
<InstallTo>
|
|
||||||
<DiskID>0</DiskID>
|
|
||||||
<PartitionID>3</PartitionID>
|
|
||||||
</InstallTo>
|
|
||||||
<WillShowUI>OnError</WillShowUI>
|
|
||||||
<InstallToAvailablePartition>false</InstallToAvailablePartition>
|
|
||||||
</OSImage>
|
|
||||||
</ImageInstall>
|
|
||||||
<DynamicUpdate>
|
|
||||||
<Enable>true</Enable>
|
|
||||||
<WillShowUI>Never</WillShowUI>
|
|
||||||
</DynamicUpdate>
|
|
||||||
<UpgradeData>
|
|
||||||
<Upgrade>false</Upgrade>
|
|
||||||
<WillShowUI>Never</WillShowUI>
|
|
||||||
</UpgradeData>
|
|
||||||
<UserData>
|
|
||||||
<AcceptEula>true</AcceptEula>
|
|
||||||
<FullName>Docker</FullName>
|
|
||||||
<Organization>Windows for Docker</Organization>
|
|
||||||
</UserData>
|
|
||||||
<EnableFirewall>false</EnableFirewall>
|
|
||||||
<Diagnostics>
|
|
||||||
<OptIn>false</OptIn>
|
|
||||||
</Diagnostics>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="offlineServicing">
|
|
||||||
<component name="Microsoft-Windows-LUA-Settings" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<EnableLUA>false</EnableLUA>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="generalize">
|
|
||||||
<component name="Microsoft-Windows-PnPSysprep" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<PersistAllDeviceInstalls>true</PersistAllDeviceInstalls>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Security-SPP" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<SkipRearm>1</SkipRearm>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="specialize">
|
|
||||||
<component name="Microsoft-Windows-Security-SPP-UX" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<SkipAutoActivation>true</SkipAutoActivation>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<ComputerName>*</ComputerName>
|
|
||||||
<OEMInformation>
|
|
||||||
<Manufacturer>Dockur</Manufacturer>
|
|
||||||
<Model>Windows for Docker</Model>
|
|
||||||
<SupportHours>24/7</SupportHours>
|
|
||||||
<SupportPhone />
|
|
||||||
<SupportProvider>Dockur</SupportProvider>
|
|
||||||
<SupportURL>https://github.com/dockur/windows/issues</SupportURL>
|
|
||||||
</OEMInformation>
|
|
||||||
<OEMName>Windows for Docker</OEMName>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-ErrorReportingCore" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableWER>1</DisableWER>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-IE-InternetExplorer" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableAccelerators>true</DisableAccelerators>
|
|
||||||
<DisableFirstRunWizard>true</DisableFirstRunWizard>
|
|
||||||
<Home_Page>https://google.com</Home_Page>
|
|
||||||
<Help_Page>about:blank</Help_Page>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-IE-InternetExplorer" processorArchitecture="wow64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableAccelerators>true</DisableAccelerators>
|
|
||||||
<DisableFirstRunWizard>true</DisableFirstRunWizard>
|
|
||||||
<Home_Page>https://google.com</Home_Page>
|
|
||||||
<Help_Page>about:blank</Help_Page>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-SQMApi" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<CEIPEnabled>0</CEIPEnabled>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-SystemRestore-Main" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableSR>1</DisableSR>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<InputLocale>0409:00000409</InputLocale>
|
|
||||||
<SystemLocale>en-US</SystemLocale>
|
|
||||||
<UILanguage>en-US</UILanguage>
|
|
||||||
<UILanguageFallback>en-US</UILanguageFallback>
|
|
||||||
<UserLocale>en-US</UserLocale>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Deployment" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<RunSynchronous>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<Path>reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\FirstNetwork" /v Category /t REG_DWORD /d 1 /f</Path>
|
|
||||||
<Description>Set Network Location to Home</Description>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>2</Order>
|
|
||||||
<Path>C:\Windows\Drivers\Balloon\blnsvr.exe -i</Path>
|
|
||||||
<Description>Install VirtIO Balloon service</Description>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
</RunSynchronous>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-ServerManager-SvrMgrNc" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DoNotOpenServerManagerAtLogon>true</DoNotOpenServerManagerAtLogon>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-OutOfBoxExperience" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DoNotOpenInitialConfigurationTasksAtLogon>true</DoNotOpenInitialConfigurationTasksAtLogon>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-TerminalServices-LocalSessionManager" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<fDenyTSConnections>false</fDenyTSConnections>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-TerminalServices-RDP-WinStationExtensions" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<UserAuthentication>0</UserAuthentication>
|
|
||||||
</component>
|
|
||||||
<component name="Networking-MPSSVC-Svc" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<FirewallGroups>
|
|
||||||
<FirewallGroup wcm:action="add" wcm:keyValue="RemoteDesktop">
|
|
||||||
<Active>true</Active>
|
|
||||||
<Profile>all</Profile>
|
|
||||||
<Group>@FirewallAPI.dll,-28752</Group>
|
|
||||||
</FirewallGroup>
|
|
||||||
</FirewallGroups>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="oobeSystem">
|
|
||||||
<component name="Microsoft-Windows-SecureStartup-FilterDriver" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<PreventDeviceEncryption>true</PreventDeviceEncryption>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-EnhancedStorage-Adm" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<TCGSecurityActivationDisabled>1</TCGSecurityActivationDisabled>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<UserAccounts>
|
|
||||||
<LocalAccounts>
|
|
||||||
<LocalAccount wcm:action="add">
|
|
||||||
<Name>Docker</Name>
|
|
||||||
<Group>Administrators</Group>
|
|
||||||
<Password>
|
|
||||||
<Value />
|
|
||||||
<PlainText>true</PlainText>
|
|
||||||
</Password>
|
|
||||||
</LocalAccount>
|
|
||||||
</LocalAccounts>
|
|
||||||
<AdministratorPassword>
|
|
||||||
<Value>password</Value>
|
|
||||||
<PlainText>true</PlainText>
|
|
||||||
</AdministratorPassword>
|
|
||||||
</UserAccounts>
|
|
||||||
<AutoLogon>
|
|
||||||
<Username>Docker</Username>
|
|
||||||
<Enabled>true</Enabled>
|
|
||||||
<LogonCount>65432</LogonCount>
|
|
||||||
<Password>
|
|
||||||
<Value />
|
|
||||||
<PlainText>true</PlainText>
|
|
||||||
</Password>
|
|
||||||
</AutoLogon>
|
|
||||||
<Display>
|
|
||||||
<ColorDepth>32</ColorDepth>
|
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
|
||||||
</Display>
|
|
||||||
<OOBE>
|
|
||||||
<HideEULAPage>true</HideEULAPage>
|
|
||||||
<HideLocalAccountScreen>true</HideLocalAccountScreen>
|
|
||||||
<HideOEMRegistrationScreen>true</HideOEMRegistrationScreen>
|
|
||||||
<HideOnlineAccountScreens>true</HideOnlineAccountScreens>
|
|
||||||
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
|
|
||||||
<NetworkLocation>Home</NetworkLocation>
|
|
||||||
<ProtectYourPC>3</ProtectYourPC>
|
|
||||||
<SkipUserOOBE>true</SkipUserOOBE>
|
|
||||||
<SkipMachineOOBE>true</SkipMachineOOBE>
|
|
||||||
</OOBE>
|
|
||||||
<RegisteredOrganization>Dockur</RegisteredOrganization>
|
|
||||||
<RegisteredOwner>Windows for Docker</RegisteredOwner>
|
|
||||||
<FirstLogonCommands>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" /v "AllowInsecureGuestAuth" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Allow guest access to network shares</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>3</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\PasswordLess\Device" /v "DevicePasswordLessBuildVersion" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Enable option for passwordless sign-in</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>4</Order>
|
|
||||||
<CommandLine>cmd /C wmic useraccount where name="Docker" set PasswordExpires=false</CommandLine>
|
|
||||||
<Description>Password Never Expires</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>5</Order>
|
|
||||||
<CommandLine>cmd /C POWERCFG -H OFF</CommandLine>
|
|
||||||
<Description>Disable Hibernation</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>6</Order>
|
|
||||||
<CommandLine>cmd /C POWERCFG -X -monitor-timeout-ac 0</CommandLine>
|
|
||||||
<Description>Disable monitor blanking</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>7</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Edge" /v "HideFirstRunExperience" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Disable first-run experience in Edge</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>8</Order>
|
|
||||||
<CommandLine>reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "HideFileExt" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Show file extensions in Explorer</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>9</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Power" /v "HibernateFileSizePercent" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Zero Hibernation File</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>10</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Power" /v "HibernateEnabled" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Disable Hibernation</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>11</Order>
|
|
||||||
<CommandLine>cmd /C POWERCFG -X -standby-timeout-ac 0</CommandLine>
|
|
||||||
<Description>Disable Sleep</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>12</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v "fAllowUnlistedRemotePrograms" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Enable RemoteApp to launch unlisted programs</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>13</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList" /v "fDisabledAllowList" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Disable RemoteApp allowlist</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>14</Order>
|
|
||||||
<CommandLine>reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Search" /v "SearchboxTaskbarMode" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Remove Search from the Taskbar</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>15</Order>
|
|
||||||
<CommandLine>reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "ShowTaskViewButton" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Remove Task View from the Taskbar</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>16</Order>
|
|
||||||
<CommandLine>reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "TaskbarDa" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Remove Widgets from the Taskbar</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>17</Order>
|
|
||||||
<CommandLine>reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "TaskbarMn" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Remove Chat from the Taskbar</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>18</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "NoAutoUpdate" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Turn off Windows Update auto download</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>19</Order>
|
|
||||||
<CommandLine>netsh advfirewall firewall set rule group="@FirewallAPI.dll,-32752" new enable=Yes</CommandLine>
|
|
||||||
<Description>Enable Network Discovery</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>20</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Network\NewNetworkWindowOff" /f</CommandLine>
|
|
||||||
<Description>Disable Network Discovery popup</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>21</Order>
|
|
||||||
<CommandLine>netsh advfirewall firewall set rule group="@FirewallAPI.dll,-28502" new enable=Yes</CommandLine>
|
|
||||||
<Description>Enable File Sharing</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>22</Order>
|
|
||||||
<CommandLine>cmd /C mklink /d %userprofile%\Desktop\Shared \\host.lan\Data</CommandLine>
|
|
||||||
<Description>Create desktop shortcut to shared folder</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>23</Order>
|
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
</FirstLogonCommands>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
</unattend>
|
|
||||||
+14
-9
@@ -166,7 +166,7 @@
|
|||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
<RunSynchronousCommand wcm:action="add">
|
<RunSynchronousCommand wcm:action="add">
|
||||||
<Order>3</Order>
|
<Order>3</Order>
|
||||||
<Path>C:\Windows\Drivers\Balloon\blnsvr.exe -i</Path>
|
<Path>cmd.exe /c start "" /b /wait "C:\Windows\Drivers\Balloon\blnsvr.exe" -i</Path>
|
||||||
<Description>Install VirtIO Balloon service</Description>
|
<Description>Install VirtIO Balloon service</Description>
|
||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
</RunSynchronous>
|
</RunSynchronous>
|
||||||
@@ -207,14 +207,14 @@
|
|||||||
<Name>Docker</Name>
|
<Name>Docker</Name>
|
||||||
<Group>Administrators</Group>
|
<Group>Administrators</Group>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</LocalAccount>
|
</LocalAccount>
|
||||||
</LocalAccounts>
|
</LocalAccounts>
|
||||||
<AdministratorPassword>
|
<AdministratorPassword>
|
||||||
<Value>password</Value>
|
<Value>YQBkAG0AaQBuAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAUABhAHMAcwB3AG8AcgBkAA==</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</AdministratorPassword>
|
</AdministratorPassword>
|
||||||
</UserAccounts>
|
</UserAccounts>
|
||||||
<AutoLogon>
|
<AutoLogon>
|
||||||
@@ -222,14 +222,14 @@
|
|||||||
<Enabled>true</Enabled>
|
<Enabled>true</Enabled>
|
||||||
<LogonCount>65432</LogonCount>
|
<LogonCount>65432</LogonCount>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</AutoLogon>
|
</AutoLogon>
|
||||||
<Display>
|
<Display>
|
||||||
<ColorDepth>32</ColorDepth>
|
<ColorDepth>32</ColorDepth>
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
<HorizontalResolution>1280</HorizontalResolution>
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
<VerticalResolution>720</VerticalResolution>
|
||||||
</Display>
|
</Display>
|
||||||
<OOBE>
|
<OOBE>
|
||||||
<HideEULAPage>true</HideEULAPage>
|
<HideEULAPage>true</HideEULAPage>
|
||||||
@@ -352,6 +352,11 @@
|
|||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
<SynchronousCommand wcm:action="add">
|
<SynchronousCommand wcm:action="add">
|
||||||
<Order>23</Order>
|
<Order>23</Order>
|
||||||
|
<CommandLine>cmd /C net use Z: \\host.lan\Data /persistent:yes</CommandLine>
|
||||||
|
<Description>Map shared folder</Description>
|
||||||
|
</SynchronousCommand>
|
||||||
|
<SynchronousCommand wcm:action="add">
|
||||||
|
<Order>24</Order>
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
<Description>Execute custom script from the OEM folder if exists</Description>
|
||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
|
|||||||
+14
-9
@@ -164,7 +164,7 @@
|
|||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
<RunSynchronousCommand wcm:action="add">
|
<RunSynchronousCommand wcm:action="add">
|
||||||
<Order>2</Order>
|
<Order>2</Order>
|
||||||
<Path>C:\Windows\Drivers\Balloon\blnsvr.exe -i</Path>
|
<Path>cmd.exe /c start "" /b /wait "C:\Windows\Drivers\Balloon\blnsvr.exe" -i</Path>
|
||||||
<Description>Install VirtIO Balloon service</Description>
|
<Description>Install VirtIO Balloon service</Description>
|
||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
</RunSynchronous>
|
</RunSynchronous>
|
||||||
@@ -205,14 +205,14 @@
|
|||||||
<Name>Docker</Name>
|
<Name>Docker</Name>
|
||||||
<Group>Administrators</Group>
|
<Group>Administrators</Group>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</LocalAccount>
|
</LocalAccount>
|
||||||
</LocalAccounts>
|
</LocalAccounts>
|
||||||
<AdministratorPassword>
|
<AdministratorPassword>
|
||||||
<Value>password</Value>
|
<Value>YQBkAG0AaQBuAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAUABhAHMAcwB3AG8AcgBkAA==</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</AdministratorPassword>
|
</AdministratorPassword>
|
||||||
</UserAccounts>
|
</UserAccounts>
|
||||||
<AutoLogon>
|
<AutoLogon>
|
||||||
@@ -220,14 +220,14 @@
|
|||||||
<Enabled>true</Enabled>
|
<Enabled>true</Enabled>
|
||||||
<LogonCount>65432</LogonCount>
|
<LogonCount>65432</LogonCount>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</AutoLogon>
|
</AutoLogon>
|
||||||
<Display>
|
<Display>
|
||||||
<ColorDepth>32</ColorDepth>
|
<ColorDepth>32</ColorDepth>
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
<HorizontalResolution>1280</HorizontalResolution>
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
<VerticalResolution>720</VerticalResolution>
|
||||||
</Display>
|
</Display>
|
||||||
<OOBE>
|
<OOBE>
|
||||||
<HideEULAPage>true</HideEULAPage>
|
<HideEULAPage>true</HideEULAPage>
|
||||||
@@ -350,6 +350,11 @@
|
|||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
<SynchronousCommand wcm:action="add">
|
<SynchronousCommand wcm:action="add">
|
||||||
<Order>23</Order>
|
<Order>23</Order>
|
||||||
|
<CommandLine>cmd /C net use Z: \\host.lan\Data /persistent:yes</CommandLine>
|
||||||
|
<Description>Map shared folder</Description>
|
||||||
|
</SynchronousCommand>
|
||||||
|
<SynchronousCommand wcm:action="add">
|
||||||
|
<Order>24</Order>
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
<Description>Execute custom script from the OEM folder if exists</Description>
|
||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
|
|||||||
@@ -1,356 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<unattend xmlns="urn:schemas-microsoft-com:unattend" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
|
|
||||||
<settings pass="windowsPE">
|
|
||||||
<component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<SetupUILanguage>
|
|
||||||
<UILanguage>en-US</UILanguage>
|
|
||||||
</SetupUILanguage>
|
|
||||||
<InputLocale>0409:00000409</InputLocale>
|
|
||||||
<SystemLocale>en-US</SystemLocale>
|
|
||||||
<UILanguage>en-US</UILanguage>
|
|
||||||
<UILanguageFallback>en-US</UILanguageFallback>
|
|
||||||
<UserLocale>en-US</UserLocale>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DiskConfiguration>
|
|
||||||
<Disk wcm:action="add">
|
|
||||||
<DiskID>0</DiskID>
|
|
||||||
<WillWipeDisk>true</WillWipeDisk>
|
|
||||||
<CreatePartitions>
|
|
||||||
<!-- System partition (ESP) -->
|
|
||||||
<CreatePartition wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<Type>EFI</Type>
|
|
||||||
<Size>128</Size>
|
|
||||||
</CreatePartition>
|
|
||||||
<!-- Microsoft reserved partition (MSR) -->
|
|
||||||
<CreatePartition wcm:action="add">
|
|
||||||
<Order>2</Order>
|
|
||||||
<Type>MSR</Type>
|
|
||||||
<Size>128</Size>
|
|
||||||
</CreatePartition>
|
|
||||||
<!-- Windows partition -->
|
|
||||||
<CreatePartition wcm:action="add">
|
|
||||||
<Order>3</Order>
|
|
||||||
<Type>Primary</Type>
|
|
||||||
<Extend>true</Extend>
|
|
||||||
</CreatePartition>
|
|
||||||
</CreatePartitions>
|
|
||||||
<ModifyPartitions>
|
|
||||||
<!-- System partition (ESP) -->
|
|
||||||
<ModifyPartition wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<PartitionID>1</PartitionID>
|
|
||||||
<Label>System</Label>
|
|
||||||
<Format>FAT32</Format>
|
|
||||||
</ModifyPartition>
|
|
||||||
<!-- MSR partition does not need to be modified -->
|
|
||||||
<ModifyPartition wcm:action="add">
|
|
||||||
<Order>2</Order>
|
|
||||||
<PartitionID>2</PartitionID>
|
|
||||||
</ModifyPartition>
|
|
||||||
<!-- Windows partition -->
|
|
||||||
<ModifyPartition wcm:action="add">
|
|
||||||
<Order>3</Order>
|
|
||||||
<PartitionID>3</PartitionID>
|
|
||||||
<Label>Windows</Label>
|
|
||||||
<Letter>C</Letter>
|
|
||||||
<Format>NTFS</Format>
|
|
||||||
</ModifyPartition>
|
|
||||||
</ModifyPartitions>
|
|
||||||
</Disk>
|
|
||||||
</DiskConfiguration>
|
|
||||||
<ImageInstall>
|
|
||||||
<OSImage>
|
|
||||||
<InstallFrom>
|
|
||||||
<MetaData wcm:action="add">
|
|
||||||
<Key>/IMAGE/NAME</Key>
|
|
||||||
<Value>Windows Server 2022 SERVERSTANDARD</Value>
|
|
||||||
</MetaData>
|
|
||||||
</InstallFrom>
|
|
||||||
<InstallTo>
|
|
||||||
<DiskID>0</DiskID>
|
|
||||||
<PartitionID>3</PartitionID>
|
|
||||||
</InstallTo>
|
|
||||||
<WillShowUI>OnError</WillShowUI>
|
|
||||||
<InstallToAvailablePartition>false</InstallToAvailablePartition>
|
|
||||||
</OSImage>
|
|
||||||
</ImageInstall>
|
|
||||||
<DynamicUpdate>
|
|
||||||
<Enable>true</Enable>
|
|
||||||
<WillShowUI>Never</WillShowUI>
|
|
||||||
</DynamicUpdate>
|
|
||||||
<UpgradeData>
|
|
||||||
<Upgrade>false</Upgrade>
|
|
||||||
<WillShowUI>Never</WillShowUI>
|
|
||||||
</UpgradeData>
|
|
||||||
<UserData>
|
|
||||||
<AcceptEula>true</AcceptEula>
|
|
||||||
<FullName>Docker</FullName>
|
|
||||||
<Organization>Windows for Docker</Organization>
|
|
||||||
</UserData>
|
|
||||||
<EnableFirewall>false</EnableFirewall>
|
|
||||||
<Diagnostics>
|
|
||||||
<OptIn>false</OptIn>
|
|
||||||
</Diagnostics>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="offlineServicing">
|
|
||||||
<component name="Microsoft-Windows-LUA-Settings" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<EnableLUA>false</EnableLUA>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="generalize">
|
|
||||||
<component name="Microsoft-Windows-PnPSysprep" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<PersistAllDeviceInstalls>true</PersistAllDeviceInstalls>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Security-SPP" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<SkipRearm>1</SkipRearm>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="specialize">
|
|
||||||
<component name="Microsoft-Windows-Security-SPP-UX" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<SkipAutoActivation>true</SkipAutoActivation>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<ComputerName>*</ComputerName>
|
|
||||||
<OEMInformation>
|
|
||||||
<Manufacturer>Dockur</Manufacturer>
|
|
||||||
<Model>Windows for Docker</Model>
|
|
||||||
<SupportHours>24/7</SupportHours>
|
|
||||||
<SupportPhone />
|
|
||||||
<SupportProvider>Dockur</SupportProvider>
|
|
||||||
<SupportURL>https://github.com/dockur/windows/issues</SupportURL>
|
|
||||||
</OEMInformation>
|
|
||||||
<OEMName>Windows for Docker</OEMName>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-ErrorReportingCore" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableWER>1</DisableWER>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-IE-InternetExplorer" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableAccelerators>true</DisableAccelerators>
|
|
||||||
<DisableFirstRunWizard>true</DisableFirstRunWizard>
|
|
||||||
<Home_Page>https://google.com</Home_Page>
|
|
||||||
<Help_Page>about:blank</Help_Page>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-IE-InternetExplorer" processorArchitecture="wow64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableAccelerators>true</DisableAccelerators>
|
|
||||||
<DisableFirstRunWizard>true</DisableFirstRunWizard>
|
|
||||||
<Home_Page>https://google.com</Home_Page>
|
|
||||||
<Help_Page>about:blank</Help_Page>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-SQMApi" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<CEIPEnabled>0</CEIPEnabled>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-SystemRestore-Main" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableSR>1</DisableSR>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<InputLocale>0409:00000409</InputLocale>
|
|
||||||
<SystemLocale>en-US</SystemLocale>
|
|
||||||
<UILanguage>en-US</UILanguage>
|
|
||||||
<UILanguageFallback>en-US</UILanguageFallback>
|
|
||||||
<UserLocale>en-US</UserLocale>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Deployment" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<RunSynchronous>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<Path>reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\FirstNetwork" /v Category /t REG_DWORD /d 1 /f</Path>
|
|
||||||
<Description>Set Network Location to Home</Description>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>2</Order>
|
|
||||||
<Path>C:\Windows\Drivers\Balloon\blnsvr.exe -i</Path>
|
|
||||||
<Description>Install VirtIO Balloon service</Description>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
</RunSynchronous>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-ServerManager-SvrMgrNc" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DoNotOpenServerManagerAtLogon>true</DoNotOpenServerManagerAtLogon>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-OutOfBoxExperience" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DoNotOpenInitialConfigurationTasksAtLogon>true</DoNotOpenInitialConfigurationTasksAtLogon>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-TerminalServices-LocalSessionManager" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<fDenyTSConnections>false</fDenyTSConnections>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-TerminalServices-RDP-WinStationExtensions" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<UserAuthentication>0</UserAuthentication>
|
|
||||||
</component>
|
|
||||||
<component name="Networking-MPSSVC-Svc" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<FirewallGroups>
|
|
||||||
<FirewallGroup wcm:action="add" wcm:keyValue="RemoteDesktop">
|
|
||||||
<Active>true</Active>
|
|
||||||
<Profile>all</Profile>
|
|
||||||
<Group>@FirewallAPI.dll,-28752</Group>
|
|
||||||
</FirewallGroup>
|
|
||||||
</FirewallGroups>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="oobeSystem">
|
|
||||||
<component name="Microsoft-Windows-SecureStartup-FilterDriver" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<PreventDeviceEncryption>true</PreventDeviceEncryption>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-EnhancedStorage-Adm" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<TCGSecurityActivationDisabled>1</TCGSecurityActivationDisabled>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<UserAccounts>
|
|
||||||
<LocalAccounts>
|
|
||||||
<LocalAccount wcm:action="add">
|
|
||||||
<Name>Docker</Name>
|
|
||||||
<Group>Administrators</Group>
|
|
||||||
<Password>
|
|
||||||
<Value />
|
|
||||||
<PlainText>true</PlainText>
|
|
||||||
</Password>
|
|
||||||
</LocalAccount>
|
|
||||||
</LocalAccounts>
|
|
||||||
<AdministratorPassword>
|
|
||||||
<Value>password</Value>
|
|
||||||
<PlainText>true</PlainText>
|
|
||||||
</AdministratorPassword>
|
|
||||||
</UserAccounts>
|
|
||||||
<AutoLogon>
|
|
||||||
<Username>Docker</Username>
|
|
||||||
<Enabled>true</Enabled>
|
|
||||||
<LogonCount>65432</LogonCount>
|
|
||||||
<Password>
|
|
||||||
<Value />
|
|
||||||
<PlainText>true</PlainText>
|
|
||||||
</Password>
|
|
||||||
</AutoLogon>
|
|
||||||
<Display>
|
|
||||||
<ColorDepth>32</ColorDepth>
|
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
|
||||||
</Display>
|
|
||||||
<OOBE>
|
|
||||||
<HideEULAPage>true</HideEULAPage>
|
|
||||||
<HideLocalAccountScreen>true</HideLocalAccountScreen>
|
|
||||||
<HideOEMRegistrationScreen>true</HideOEMRegistrationScreen>
|
|
||||||
<HideOnlineAccountScreens>true</HideOnlineAccountScreens>
|
|
||||||
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
|
|
||||||
<NetworkLocation>Home</NetworkLocation>
|
|
||||||
<ProtectYourPC>3</ProtectYourPC>
|
|
||||||
<SkipUserOOBE>true</SkipUserOOBE>
|
|
||||||
<SkipMachineOOBE>true</SkipMachineOOBE>
|
|
||||||
</OOBE>
|
|
||||||
<RegisteredOrganization>Dockur</RegisteredOrganization>
|
|
||||||
<RegisteredOwner>Windows for Docker</RegisteredOwner>
|
|
||||||
<FirstLogonCommands>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" /v "AllowInsecureGuestAuth" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Allow guest access to network shares</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>3</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\PasswordLess\Device" /v "DevicePasswordLessBuildVersion" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Enable option for passwordless sign-in</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>4</Order>
|
|
||||||
<CommandLine>cmd /C wmic useraccount where name="Docker" set PasswordExpires=false</CommandLine>
|
|
||||||
<Description>Password Never Expires</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>5</Order>
|
|
||||||
<CommandLine>cmd /C POWERCFG -H OFF</CommandLine>
|
|
||||||
<Description>Disable Hibernation</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>6</Order>
|
|
||||||
<CommandLine>cmd /C POWERCFG -X -monitor-timeout-ac 0</CommandLine>
|
|
||||||
<Description>Disable monitor blanking</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>7</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Edge" /v "HideFirstRunExperience" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Disable first-run experience in Edge</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>8</Order>
|
|
||||||
<CommandLine>reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "HideFileExt" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Show file extensions in Explorer</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>9</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Power" /v "HibernateFileSizePercent" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Zero Hibernation File</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>10</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Power" /v "HibernateEnabled" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Disable Hibernation</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>11</Order>
|
|
||||||
<CommandLine>cmd /C POWERCFG -X -standby-timeout-ac 0</CommandLine>
|
|
||||||
<Description>Disable Sleep</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>12</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v "fAllowUnlistedRemotePrograms" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Enable RemoteApp to launch unlisted programs</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>13</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList" /v "fDisabledAllowList" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Disable RemoteApp allowlist</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>14</Order>
|
|
||||||
<CommandLine>reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Search" /v "SearchboxTaskbarMode" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Remove Search from the Taskbar</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>15</Order>
|
|
||||||
<CommandLine>reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "ShowTaskViewButton" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Remove Task View from the Taskbar</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>16</Order>
|
|
||||||
<CommandLine>reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "TaskbarDa" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Remove Widgets from the Taskbar</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>17</Order>
|
|
||||||
<CommandLine>reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "TaskbarMn" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Remove Chat from the Taskbar</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>18</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "NoAutoUpdate" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Turn off Windows Update auto download</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>19</Order>
|
|
||||||
<CommandLine>netsh advfirewall firewall set rule group="@FirewallAPI.dll,-32752" new enable=Yes</CommandLine>
|
|
||||||
<Description>Enable Network Discovery</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>20</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Network\NewNetworkWindowOff" /f</CommandLine>
|
|
||||||
<Description>Disable Network Discovery popup</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>21</Order>
|
|
||||||
<CommandLine>netsh advfirewall firewall set rule group="@FirewallAPI.dll,-28502" new enable=Yes</CommandLine>
|
|
||||||
<Description>Enable File Sharing</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>22</Order>
|
|
||||||
<CommandLine>cmd /C mklink /d %userprofile%\Desktop\Shared \\host.lan\Data</CommandLine>
|
|
||||||
<Description>Create desktop shortcut to shared folder</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>23</Order>
|
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
</FirstLogonCommands>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
</unattend>
|
|
||||||
+14
-9
@@ -164,7 +164,7 @@
|
|||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
<RunSynchronousCommand wcm:action="add">
|
<RunSynchronousCommand wcm:action="add">
|
||||||
<Order>2</Order>
|
<Order>2</Order>
|
||||||
<Path>C:\Windows\Drivers\Balloon\blnsvr.exe -i</Path>
|
<Path>cmd.exe /c start "" /b /wait "C:\Windows\Drivers\Balloon\blnsvr.exe" -i</Path>
|
||||||
<Description>Install VirtIO Balloon service</Description>
|
<Description>Install VirtIO Balloon service</Description>
|
||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
</RunSynchronous>
|
</RunSynchronous>
|
||||||
@@ -205,14 +205,14 @@
|
|||||||
<Name>Docker</Name>
|
<Name>Docker</Name>
|
||||||
<Group>Administrators</Group>
|
<Group>Administrators</Group>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</LocalAccount>
|
</LocalAccount>
|
||||||
</LocalAccounts>
|
</LocalAccounts>
|
||||||
<AdministratorPassword>
|
<AdministratorPassword>
|
||||||
<Value>password</Value>
|
<Value>YQBkAG0AaQBuAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAUABhAHMAcwB3AG8AcgBkAA==</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</AdministratorPassword>
|
</AdministratorPassword>
|
||||||
</UserAccounts>
|
</UserAccounts>
|
||||||
<AutoLogon>
|
<AutoLogon>
|
||||||
@@ -220,14 +220,14 @@
|
|||||||
<Enabled>true</Enabled>
|
<Enabled>true</Enabled>
|
||||||
<LogonCount>65432</LogonCount>
|
<LogonCount>65432</LogonCount>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</AutoLogon>
|
</AutoLogon>
|
||||||
<Display>
|
<Display>
|
||||||
<ColorDepth>32</ColorDepth>
|
<ColorDepth>32</ColorDepth>
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
<HorizontalResolution>1280</HorizontalResolution>
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
<VerticalResolution>720</VerticalResolution>
|
||||||
</Display>
|
</Display>
|
||||||
<OOBE>
|
<OOBE>
|
||||||
<HideEULAPage>true</HideEULAPage>
|
<HideEULAPage>true</HideEULAPage>
|
||||||
@@ -350,6 +350,11 @@
|
|||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
<SynchronousCommand wcm:action="add">
|
<SynchronousCommand wcm:action="add">
|
||||||
<Order>23</Order>
|
<Order>23</Order>
|
||||||
|
<CommandLine>cmd /C net use Z: \\host.lan\Data /persistent:yes</CommandLine>
|
||||||
|
<Description>Map shared folder</Description>
|
||||||
|
</SynchronousCommand>
|
||||||
|
<SynchronousCommand wcm:action="add">
|
||||||
|
<Order>24</Order>
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
<Description>Execute custom script from the OEM folder if exists</Description>
|
||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
|
|||||||
@@ -1,366 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<unattend xmlns="urn:schemas-microsoft-com:unattend" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
|
|
||||||
<settings pass="windowsPE">
|
|
||||||
<component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<SetupUILanguage>
|
|
||||||
<UILanguage>en-US</UILanguage>
|
|
||||||
</SetupUILanguage>
|
|
||||||
<InputLocale>0409:00000409</InputLocale>
|
|
||||||
<SystemLocale>en-US</SystemLocale>
|
|
||||||
<UILanguage>en-US</UILanguage>
|
|
||||||
<UILanguageFallback>en-US</UILanguageFallback>
|
|
||||||
<UserLocale>en-US</UserLocale>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DiskConfiguration>
|
|
||||||
<Disk wcm:action="add">
|
|
||||||
<DiskID>0</DiskID>
|
|
||||||
<WillWipeDisk>true</WillWipeDisk>
|
|
||||||
<CreatePartitions>
|
|
||||||
<!-- System partition (ESP) -->
|
|
||||||
<CreatePartition wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<Type>EFI</Type>
|
|
||||||
<Size>128</Size>
|
|
||||||
</CreatePartition>
|
|
||||||
<!-- Microsoft reserved partition (MSR) -->
|
|
||||||
<CreatePartition wcm:action="add">
|
|
||||||
<Order>2</Order>
|
|
||||||
<Type>MSR</Type>
|
|
||||||
<Size>128</Size>
|
|
||||||
</CreatePartition>
|
|
||||||
<!-- Windows partition -->
|
|
||||||
<CreatePartition wcm:action="add">
|
|
||||||
<Order>3</Order>
|
|
||||||
<Type>Primary</Type>
|
|
||||||
<Extend>true</Extend>
|
|
||||||
</CreatePartition>
|
|
||||||
</CreatePartitions>
|
|
||||||
<ModifyPartitions>
|
|
||||||
<!-- System partition (ESP) -->
|
|
||||||
<ModifyPartition wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<PartitionID>1</PartitionID>
|
|
||||||
<Label>System</Label>
|
|
||||||
<Format>FAT32</Format>
|
|
||||||
</ModifyPartition>
|
|
||||||
<!-- MSR partition does not need to be modified -->
|
|
||||||
<ModifyPartition wcm:action="add">
|
|
||||||
<Order>2</Order>
|
|
||||||
<PartitionID>2</PartitionID>
|
|
||||||
</ModifyPartition>
|
|
||||||
<!-- Windows partition -->
|
|
||||||
<ModifyPartition wcm:action="add">
|
|
||||||
<Order>3</Order>
|
|
||||||
<PartitionID>3</PartitionID>
|
|
||||||
<Label>Windows</Label>
|
|
||||||
<Letter>C</Letter>
|
|
||||||
<Format>NTFS</Format>
|
|
||||||
</ModifyPartition>
|
|
||||||
</ModifyPartitions>
|
|
||||||
</Disk>
|
|
||||||
</DiskConfiguration>
|
|
||||||
<ImageInstall>
|
|
||||||
<OSImage>
|
|
||||||
<InstallFrom>
|
|
||||||
<MetaData wcm:action="add">
|
|
||||||
<Key>/IMAGE/NAME</Key>
|
|
||||||
<Value>Windows Server 2025 SERVERSTANDARD</Value>
|
|
||||||
</MetaData>
|
|
||||||
</InstallFrom>
|
|
||||||
<InstallTo>
|
|
||||||
<DiskID>0</DiskID>
|
|
||||||
<PartitionID>3</PartitionID>
|
|
||||||
</InstallTo>
|
|
||||||
<WillShowUI>OnError</WillShowUI>
|
|
||||||
<InstallToAvailablePartition>false</InstallToAvailablePartition>
|
|
||||||
</OSImage>
|
|
||||||
</ImageInstall>
|
|
||||||
<DynamicUpdate>
|
|
||||||
<Enable>true</Enable>
|
|
||||||
<WillShowUI>Never</WillShowUI>
|
|
||||||
</DynamicUpdate>
|
|
||||||
<UpgradeData>
|
|
||||||
<Upgrade>false</Upgrade>
|
|
||||||
<WillShowUI>Never</WillShowUI>
|
|
||||||
</UpgradeData>
|
|
||||||
<UserData>
|
|
||||||
<AcceptEula>true</AcceptEula>
|
|
||||||
<FullName>Docker</FullName>
|
|
||||||
<Organization>Windows for Docker</Organization>
|
|
||||||
</UserData>
|
|
||||||
<EnableFirewall>false</EnableFirewall>
|
|
||||||
<Diagnostics>
|
|
||||||
<OptIn>false</OptIn>
|
|
||||||
</Diagnostics>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="offlineServicing">
|
|
||||||
<component name="Microsoft-Windows-LUA-Settings" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<EnableLUA>false</EnableLUA>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="generalize">
|
|
||||||
<component name="Microsoft-Windows-PnPSysprep" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<PersistAllDeviceInstalls>true</PersistAllDeviceInstalls>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Security-SPP" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<SkipRearm>1</SkipRearm>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="specialize">
|
|
||||||
<component name="Microsoft-Windows-Security-SPP-UX" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<SkipAutoActivation>true</SkipAutoActivation>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<ComputerName>*</ComputerName>
|
|
||||||
<OEMInformation>
|
|
||||||
<Manufacturer>Dockur</Manufacturer>
|
|
||||||
<Model>Windows for Docker</Model>
|
|
||||||
<SupportHours>24/7</SupportHours>
|
|
||||||
<SupportPhone />
|
|
||||||
<SupportProvider>Dockur</SupportProvider>
|
|
||||||
<SupportURL>https://github.com/dockur/windows/issues</SupportURL>
|
|
||||||
</OEMInformation>
|
|
||||||
<OEMName>Windows for Docker</OEMName>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-ErrorReportingCore" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableWER>1</DisableWER>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-IE-InternetExplorer" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableAccelerators>true</DisableAccelerators>
|
|
||||||
<DisableFirstRunWizard>true</DisableFirstRunWizard>
|
|
||||||
<Home_Page>https://google.com</Home_Page>
|
|
||||||
<Help_Page>about:blank</Help_Page>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-IE-InternetExplorer" processorArchitecture="wow64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableAccelerators>true</DisableAccelerators>
|
|
||||||
<DisableFirstRunWizard>true</DisableFirstRunWizard>
|
|
||||||
<Home_Page>https://google.com</Home_Page>
|
|
||||||
<Help_Page>about:blank</Help_Page>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-SQMApi" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<CEIPEnabled>0</CEIPEnabled>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-SystemRestore-Main" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableSR>1</DisableSR>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<InputLocale>0409:00000409</InputLocale>
|
|
||||||
<SystemLocale>en-US</SystemLocale>
|
|
||||||
<UILanguage>en-US</UILanguage>
|
|
||||||
<UILanguageFallback>en-US</UILanguageFallback>
|
|
||||||
<UserLocale>en-US</UserLocale>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Deployment" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<RunSynchronous>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<Path>reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\FirstNetwork" /v Category /t REG_DWORD /d 1 /f</Path>
|
|
||||||
<Description>Set Network Location to Home</Description>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>2</Order>
|
|
||||||
<Path>pnputil -i -a C:\Windows\Drivers\viogpudo\viogpudo.inf</Path>
|
|
||||||
<Description>Install VirtIO display driver</Description>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>4</Order>
|
|
||||||
<Path>C:\Windows\Drivers\Balloon\blnsvr.exe -i</Path>
|
|
||||||
<Description>Install VirtIO Balloon service</Description>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
</RunSynchronous>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-ServerManager-SvrMgrNc" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DoNotOpenServerManagerAtLogon>true</DoNotOpenServerManagerAtLogon>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-OutOfBoxExperience" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DoNotOpenInitialConfigurationTasksAtLogon>true</DoNotOpenInitialConfigurationTasksAtLogon>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-TerminalServices-LocalSessionManager" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<fDenyTSConnections>false</fDenyTSConnections>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-TerminalServices-RDP-WinStationExtensions" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<UserAuthentication>0</UserAuthentication>
|
|
||||||
</component>
|
|
||||||
<component name="Networking-MPSSVC-Svc" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<FirewallGroups>
|
|
||||||
<FirewallGroup wcm:action="add" wcm:keyValue="RemoteDesktop">
|
|
||||||
<Active>true</Active>
|
|
||||||
<Profile>all</Profile>
|
|
||||||
<Group>@FirewallAPI.dll,-28752</Group>
|
|
||||||
</FirewallGroup>
|
|
||||||
</FirewallGroups>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="oobeSystem">
|
|
||||||
<component name="Microsoft-Windows-SecureStartup-FilterDriver" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<PreventDeviceEncryption>true</PreventDeviceEncryption>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-EnhancedStorage-Adm" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<TCGSecurityActivationDisabled>1</TCGSecurityActivationDisabled>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<UserAccounts>
|
|
||||||
<LocalAccounts>
|
|
||||||
<LocalAccount wcm:action="add">
|
|
||||||
<Name>Docker</Name>
|
|
||||||
<Group>Administrators</Group>
|
|
||||||
<Password>
|
|
||||||
<Value />
|
|
||||||
<PlainText>true</PlainText>
|
|
||||||
</Password>
|
|
||||||
</LocalAccount>
|
|
||||||
</LocalAccounts>
|
|
||||||
<AdministratorPassword>
|
|
||||||
<Value>password</Value>
|
|
||||||
<PlainText>true</PlainText>
|
|
||||||
</AdministratorPassword>
|
|
||||||
</UserAccounts>
|
|
||||||
<AutoLogon>
|
|
||||||
<Username>Docker</Username>
|
|
||||||
<Enabled>true</Enabled>
|
|
||||||
<LogonCount>65432</LogonCount>
|
|
||||||
<Password>
|
|
||||||
<Value />
|
|
||||||
<PlainText>true</PlainText>
|
|
||||||
</Password>
|
|
||||||
</AutoLogon>
|
|
||||||
<Display>
|
|
||||||
<ColorDepth>32</ColorDepth>
|
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
|
||||||
</Display>
|
|
||||||
<OOBE>
|
|
||||||
<HideEULAPage>true</HideEULAPage>
|
|
||||||
<HideLocalAccountScreen>true</HideLocalAccountScreen>
|
|
||||||
<HideOEMRegistrationScreen>true</HideOEMRegistrationScreen>
|
|
||||||
<HideOnlineAccountScreens>true</HideOnlineAccountScreens>
|
|
||||||
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
|
|
||||||
<NetworkLocation>Home</NetworkLocation>
|
|
||||||
<ProtectYourPC>3</ProtectYourPC>
|
|
||||||
<SkipUserOOBE>true</SkipUserOOBE>
|
|
||||||
<SkipMachineOOBE>true</SkipMachineOOBE>
|
|
||||||
</OOBE>
|
|
||||||
<RegisteredOrganization>Dockur</RegisteredOrganization>
|
|
||||||
<RegisteredOwner>Windows for Docker</RegisteredOwner>
|
|
||||||
<FirstLogonCommands>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" /v "AllowInsecureGuestAuth" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Allow guest access to network shares</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>2</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" /v "RequireSecuritySignature" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Disable SMB signing requirement</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>4</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\PasswordLess\Device" /v "DevicePasswordLessBuildVersion" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Enable option for passwordless sign-in</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>5</Order>
|
|
||||||
<CommandLine>powershell.exe -ExecutionPolicy Unrestricted -NoLogo -NoProfile -NonInteractive set-localuser -name "Docker" -passwordneverexpires 1</CommandLine>
|
|
||||||
<Description>Password Never Expires</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>6</Order>
|
|
||||||
<CommandLine>cmd /C POWERCFG -H OFF</CommandLine>
|
|
||||||
<Description>Disable Hibernation</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>7</Order>
|
|
||||||
<CommandLine>cmd /C POWERCFG -X -monitor-timeout-ac 0</CommandLine>
|
|
||||||
<Description>Disable monitor blanking</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>8</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Edge" /v "HideFirstRunExperience" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Disable first-run experience in Edge</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>9</Order>
|
|
||||||
<CommandLine>reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "ShowCopilotButton" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Hide Copilot button</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>10</Order>
|
|
||||||
<CommandLine>reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "HideFileExt" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Show file extensions in Explorer</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>11</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Power" /v "HibernateFileSizePercent" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Zero Hibernation File</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>12</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Power" /v "HibernateEnabled" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Disable Hibernation</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>13</Order>
|
|
||||||
<CommandLine>cmd /C POWERCFG -X -standby-timeout-ac 0</CommandLine>
|
|
||||||
<Description>Disable Sleep</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>14</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v "fAllowUnlistedRemotePrograms" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Enable RemoteAPP to launch unlisted programs</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>15</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList" /v "fDisabledAllowList" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Disable RemoteApp allowlist</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>16</Order>
|
|
||||||
<CommandLine>reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "ShowTaskViewButton" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Remove Task View from the Taskbar</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>17</Order>
|
|
||||||
<CommandLine>reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "TaskbarDa" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Remove Widgets from the Taskbar</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>18</Order>
|
|
||||||
<CommandLine>reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "TaskbarMn" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Remove Chat from the Taskbar</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>19</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "NoAutoUpdate" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Turn off Windows Update auto download</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>20</Order>
|
|
||||||
<CommandLine>netsh advfirewall firewall set rule group="@FirewallAPI.dll,-32752" new enable=Yes</CommandLine>
|
|
||||||
<Description>Enable Network Discovery</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>21</Order>
|
|
||||||
<CommandLine>netsh advfirewall firewall set rule group="@FirewallAPI.dll,-28502" new enable=Yes</CommandLine>
|
|
||||||
<Description>Enable File Sharing</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>22</Order>
|
|
||||||
<CommandLine>cmd /C rd /q C:\Windows.old</CommandLine>
|
|
||||||
<Description>Remove empty Windows.old folder</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>23</Order>
|
|
||||||
<CommandLine>cmd /C mklink /d %userprofile%\Desktop\Shared \\host.lan\Data</CommandLine>
|
|
||||||
<Description>Create desktop shortcut to shared folder</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>24</Order>
|
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
</FirstLogonCommands>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
</unattend>
|
|
||||||
+15
-10
@@ -164,12 +164,12 @@
|
|||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
<RunSynchronousCommand wcm:action="add">
|
<RunSynchronousCommand wcm:action="add">
|
||||||
<Order>2</Order>
|
<Order>2</Order>
|
||||||
<Path>pnputil -i -a C:\Windows\Drivers\viogpudo\viogpudo.inf</Path>
|
<Path>cmd.exe /c start "" /b /wait pnputil -i -a "C:\Windows\Drivers\viogpudo\viogpudo.inf"</Path>
|
||||||
<Description>Install VirtIO display driver</Description>
|
<Description>Install VirtIO display driver</Description>
|
||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
<RunSynchronousCommand wcm:action="add">
|
<RunSynchronousCommand wcm:action="add">
|
||||||
<Order>4</Order>
|
<Order>4</Order>
|
||||||
<Path>C:\Windows\Drivers\Balloon\blnsvr.exe -i</Path>
|
<Path>cmd.exe /c start "" /b /wait "C:\Windows\Drivers\Balloon\blnsvr.exe" -i</Path>
|
||||||
<Description>Install VirtIO Balloon service</Description>
|
<Description>Install VirtIO Balloon service</Description>
|
||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
</RunSynchronous>
|
</RunSynchronous>
|
||||||
@@ -210,14 +210,14 @@
|
|||||||
<Name>Docker</Name>
|
<Name>Docker</Name>
|
||||||
<Group>Administrators</Group>
|
<Group>Administrators</Group>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</LocalAccount>
|
</LocalAccount>
|
||||||
</LocalAccounts>
|
</LocalAccounts>
|
||||||
<AdministratorPassword>
|
<AdministratorPassword>
|
||||||
<Value>password</Value>
|
<Value>YQBkAG0AaQBuAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAUABhAHMAcwB3AG8AcgBkAA==</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</AdministratorPassword>
|
</AdministratorPassword>
|
||||||
</UserAccounts>
|
</UserAccounts>
|
||||||
<AutoLogon>
|
<AutoLogon>
|
||||||
@@ -225,14 +225,14 @@
|
|||||||
<Enabled>true</Enabled>
|
<Enabled>true</Enabled>
|
||||||
<LogonCount>65432</LogonCount>
|
<LogonCount>65432</LogonCount>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</AutoLogon>
|
</AutoLogon>
|
||||||
<Display>
|
<Display>
|
||||||
<ColorDepth>32</ColorDepth>
|
<ColorDepth>32</ColorDepth>
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
<HorizontalResolution>1280</HorizontalResolution>
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
<VerticalResolution>720</VerticalResolution>
|
||||||
</Display>
|
</Display>
|
||||||
<OOBE>
|
<OOBE>
|
||||||
<HideEULAPage>true</HideEULAPage>
|
<HideEULAPage>true</HideEULAPage>
|
||||||
@@ -360,6 +360,11 @@
|
|||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
<SynchronousCommand wcm:action="add">
|
<SynchronousCommand wcm:action="add">
|
||||||
<Order>24</Order>
|
<Order>24</Order>
|
||||||
|
<CommandLine>cmd /C net use Z: \\host.lan\Data /persistent:yes</CommandLine>
|
||||||
|
<Description>Map shared folder</Description>
|
||||||
|
</SynchronousCommand>
|
||||||
|
<SynchronousCommand wcm:action="add">
|
||||||
|
<Order>25</Order>
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
<Description>Execute custom script from the OEM folder if exists</Description>
|
||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
|
|||||||
@@ -1,292 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<unattend xmlns="urn:schemas-microsoft-com:unattend" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
|
|
||||||
<settings pass="windowsPE">
|
|
||||||
<component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<SetupUILanguage>
|
|
||||||
<UILanguage>en-US</UILanguage>
|
|
||||||
</SetupUILanguage>
|
|
||||||
<InputLocale>0409:00000409</InputLocale>
|
|
||||||
<SystemLocale>en-US</SystemLocale>
|
|
||||||
<UILanguage>en-US</UILanguage>
|
|
||||||
<UserLocale>en-US</UserLocale>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DiskConfiguration>
|
|
||||||
<WillShowUI>OnError</WillShowUI>
|
|
||||||
<Disk wcm:action="add">
|
|
||||||
<DiskID>0</DiskID>
|
|
||||||
<WillWipeDisk>true</WillWipeDisk>
|
|
||||||
<CreatePartitions>
|
|
||||||
<CreatePartition wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<Type>Primary</Type>
|
|
||||||
<Size>100</Size>
|
|
||||||
</CreatePartition>
|
|
||||||
<CreatePartition wcm:action="add">
|
|
||||||
<Order>2</Order>
|
|
||||||
<Type>Primary</Type>
|
|
||||||
<Extend>true</Extend>
|
|
||||||
</CreatePartition>
|
|
||||||
</CreatePartitions>
|
|
||||||
<ModifyPartitions>
|
|
||||||
<ModifyPartition wcm:action="add">
|
|
||||||
<Format>NTFS</Format>
|
|
||||||
<Label>System Reserved</Label>
|
|
||||||
<Order>1</Order>
|
|
||||||
<Active>true</Active>
|
|
||||||
<PartitionID>1</PartitionID>
|
|
||||||
<TypeID>0x27</TypeID>
|
|
||||||
</ModifyPartition>
|
|
||||||
<ModifyPartition wcm:action="add">
|
|
||||||
<Active>true</Active>
|
|
||||||
<Format>NTFS</Format>
|
|
||||||
<Label>Windows</Label>
|
|
||||||
<Letter>C</Letter>
|
|
||||||
<Order>2</Order>
|
|
||||||
<PartitionID>2</PartitionID>
|
|
||||||
</ModifyPartition>
|
|
||||||
</ModifyPartitions>
|
|
||||||
</Disk>
|
|
||||||
</DiskConfiguration>
|
|
||||||
<ImageInstall>
|
|
||||||
<OSImage>
|
|
||||||
<InstallFrom>
|
|
||||||
<MetaData wcm:action="add">
|
|
||||||
<Value>Windows 7 Enterprise</Value>
|
|
||||||
<Key>/IMAGE/NAME</Key>
|
|
||||||
</MetaData>
|
|
||||||
</InstallFrom>
|
|
||||||
<InstallTo>
|
|
||||||
<DiskID>0</DiskID>
|
|
||||||
<PartitionID>2</PartitionID>
|
|
||||||
</InstallTo>
|
|
||||||
<InstallToAvailablePartition>false</InstallToAvailablePartition>
|
|
||||||
</OSImage>
|
|
||||||
</ImageInstall>
|
|
||||||
<DynamicUpdate>
|
|
||||||
<Enable>true</Enable>
|
|
||||||
<WillShowUI>Never</WillShowUI>
|
|
||||||
</DynamicUpdate>
|
|
||||||
<UpgradeData>
|
|
||||||
<Upgrade>false</Upgrade>
|
|
||||||
<WillShowUI>Never</WillShowUI>
|
|
||||||
</UpgradeData>
|
|
||||||
<UserData>
|
|
||||||
<AcceptEula>true</AcceptEula>
|
|
||||||
<FullName>Docker</FullName>
|
|
||||||
<Organization>Windows for Docker</Organization>
|
|
||||||
</UserData>
|
|
||||||
<EnableFirewall>false</EnableFirewall>
|
|
||||||
<Diagnostics>
|
|
||||||
<OptIn>false</OptIn>
|
|
||||||
</Diagnostics>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="offlineServicing">
|
|
||||||
<component name="Microsoft-Windows-LUA-Settings" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<EnableLUA>false</EnableLUA>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="generalize">
|
|
||||||
<component name="Microsoft-Windows-PnPSysprep" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<PersistAllDeviceInstalls>true</PersistAllDeviceInstalls>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Security-SPP" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<SkipRearm>1</SkipRearm>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="specialize">
|
|
||||||
<component name="Microsoft-Windows-Security-SPP-UX" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<SkipAutoActivation>true</SkipAutoActivation>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<ComputerName>*</ComputerName>
|
|
||||||
<OEMInformation>
|
|
||||||
<Manufacturer>Dockur</Manufacturer>
|
|
||||||
<Model>Windows for Docker</Model>
|
|
||||||
</OEMInformation>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-ErrorReportingCore" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableWER>1</DisableWER>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-IE-InternetExplorer" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableAccelerators>true</DisableAccelerators>
|
|
||||||
<DisableFirstRunWizard>true</DisableFirstRunWizard>
|
|
||||||
<Home_Page>https://google.com</Home_Page>
|
|
||||||
<Help_Page>about:blank</Help_Page>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-IE-InternetExplorer" processorArchitecture="wow64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableAccelerators>true</DisableAccelerators>
|
|
||||||
<DisableFirstRunWizard>true</DisableFirstRunWizard>
|
|
||||||
<Home_Page>https://google.com</Home_Page>
|
|
||||||
<Help_Page>about:blank</Help_Page>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-SQMApi" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<CEIPEnabled>0</CEIPEnabled>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-SystemRestore-Main" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableSR>1</DisableSR>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<InputLocale>0409:00000409</InputLocale>
|
|
||||||
<SystemLocale>en-US</SystemLocale>
|
|
||||||
<UILanguage>en-US</UILanguage>
|
|
||||||
<UserLocale>en-US</UserLocale>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-TerminalServices-LocalSessionManager" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<fDenyTSConnections>false</fDenyTSConnections>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-TerminalServices-RDP-WinStationExtensions" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<UserAuthentication>0</UserAuthentication>
|
|
||||||
</component>
|
|
||||||
<component name="Networking-MPSSVC-Svc" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<FirewallGroups>
|
|
||||||
<FirewallGroup wcm:action="add" wcm:keyValue="RemoteDesktop">
|
|
||||||
<Active>true</Active>
|
|
||||||
<Profile>all</Profile>
|
|
||||||
<Group>@FirewallAPI.dll,-28752</Group>
|
|
||||||
</FirewallGroup>
|
|
||||||
</FirewallGroups>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Deployment" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<RunSynchronous>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<Path>C:\Windows\Drivers\Balloon\blnsvr.exe -i</Path>
|
|
||||||
<Description>Install VirtIO Balloon service</Description>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
</RunSynchronous>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="oobeSystem">
|
|
||||||
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<UserAccounts>
|
|
||||||
<LocalAccounts>
|
|
||||||
<LocalAccount wcm:action="add">
|
|
||||||
<Name>Docker</Name>
|
|
||||||
<Group>Administrators</Group>
|
|
||||||
<Password>
|
|
||||||
<Value />
|
|
||||||
<PlainText>true</PlainText>
|
|
||||||
</Password>
|
|
||||||
</LocalAccount>
|
|
||||||
</LocalAccounts>
|
|
||||||
<AdministratorPassword>
|
|
||||||
<Value>password</Value>
|
|
||||||
<PlainText>true</PlainText>
|
|
||||||
</AdministratorPassword>
|
|
||||||
</UserAccounts>
|
|
||||||
<AutoLogon>
|
|
||||||
<Username>Docker</Username>
|
|
||||||
<Enabled>true</Enabled>
|
|
||||||
<LogonCount>65432</LogonCount>
|
|
||||||
<Password>
|
|
||||||
<Value />
|
|
||||||
<PlainText>true</PlainText>
|
|
||||||
</Password>
|
|
||||||
</AutoLogon>
|
|
||||||
<Display>
|
|
||||||
<ColorDepth>32</ColorDepth>
|
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
|
||||||
</Display>
|
|
||||||
<OOBE>
|
|
||||||
<HideEULAPage>true</HideEULAPage>
|
|
||||||
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
|
|
||||||
<NetworkLocation>Home</NetworkLocation>
|
|
||||||
<ProtectYourPC>3</ProtectYourPC>
|
|
||||||
<SkipUserOOBE>true</SkipUserOOBE>
|
|
||||||
<SkipMachineOOBE>true</SkipMachineOOBE>
|
|
||||||
</OOBE>
|
|
||||||
<RegisteredOrganization>Dockur</RegisteredOrganization>
|
|
||||||
<RegisteredOwner>Windows for Docker</RegisteredOwner>
|
|
||||||
<FirstLogonCommands>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" /v "AllowInsecureGuestAuth" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Allow guest access to network shares</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>3</Order>
|
|
||||||
<CommandLine>cmd /C wmic useraccount where name="Docker" set PasswordExpires=false</CommandLine>
|
|
||||||
<Description>Password Never Expires</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>4</Order>
|
|
||||||
<CommandLine>cmd /C POWERCFG -H OFF</CommandLine>
|
|
||||||
<Description>Disable Hibernation</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>5</Order>
|
|
||||||
<CommandLine>cmd /C POWERCFG -X -monitor-timeout-ac 0</CommandLine>
|
|
||||||
<Description>Disable monitor blanking</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>6</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Network\NewNetworkWindowOff" /f</CommandLine>
|
|
||||||
<Description>Disable Network Discovery popup</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>7</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Network\NetworkLocationWizard" /v "HideWizard" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Disable Network Discovery popup</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>8</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\NewNetworks" /v NetworkList /t REG_MULTI_SZ /d "" /f</CommandLine>
|
|
||||||
<Description>Disable Network Discovery popup</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>9</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Edge" /v "HideFirstRunExperience" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Disable first-run experience in Edge</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>10</Order>
|
|
||||||
<CommandLine>reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "HideFileExt" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Show file extensions in Explorer</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>11</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Power" /v "HibernateFileSizePercent" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Zero Hibernation File</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>12</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Power" /v "HibernateEnabled" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Disable Hibernation</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>13</Order>
|
|
||||||
<CommandLine>cmd /C POWERCFG -X -standby-timeout-ac 0</CommandLine>
|
|
||||||
<Description>Disable Sleep</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>14</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v "fAllowUnlistedRemotePrograms" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Enable RemoteAPP to launch unlisted programs</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>15</Order>
|
|
||||||
<CommandLine>netsh advfirewall firewall set rule group="@FirewallAPI.dll,-32752" new enable=Yes</CommandLine>
|
|
||||||
<Description>Enable Network Discovery</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>16</Order>
|
|
||||||
<CommandLine>netsh advfirewall firewall set rule group="@FirewallAPI.dll,-28502" new enable=Yes</CommandLine>
|
|
||||||
<Description>Enable File Sharing</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>17</Order>
|
|
||||||
<CommandLine>cmd /C mklink /d %userprofile%\Desktop\Shared \\host.lan\Data</CommandLine>
|
|
||||||
<Description>Create desktop shortcut to shared folder</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>18</Order>
|
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
</FirstLogonCommands>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
</unattend>
|
|
||||||
@@ -156,7 +156,7 @@
|
|||||||
<RunSynchronous>
|
<RunSynchronous>
|
||||||
<RunSynchronousCommand wcm:action="add">
|
<RunSynchronousCommand wcm:action="add">
|
||||||
<Order>1</Order>
|
<Order>1</Order>
|
||||||
<Path>C:\Windows\Drivers\Balloon\blnsvr.exe -i</Path>
|
<Path>cmd.exe /c start "" /b /wait "C:\Windows\Drivers\Balloon\blnsvr.exe" -i</Path>
|
||||||
<Description>Install VirtIO Balloon service</Description>
|
<Description>Install VirtIO Balloon service</Description>
|
||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
</RunSynchronous>
|
</RunSynchronous>
|
||||||
@@ -170,14 +170,14 @@
|
|||||||
<Name>Docker</Name>
|
<Name>Docker</Name>
|
||||||
<Group>Administrators</Group>
|
<Group>Administrators</Group>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</LocalAccount>
|
</LocalAccount>
|
||||||
</LocalAccounts>
|
</LocalAccounts>
|
||||||
<AdministratorPassword>
|
<AdministratorPassword>
|
||||||
<Value>password</Value>
|
<Value>YQBkAG0AaQBuAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAUABhAHMAcwB3AG8AcgBkAA==</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</AdministratorPassword>
|
</AdministratorPassword>
|
||||||
</UserAccounts>
|
</UserAccounts>
|
||||||
<AutoLogon>
|
<AutoLogon>
|
||||||
@@ -185,14 +185,14 @@
|
|||||||
<Enabled>true</Enabled>
|
<Enabled>true</Enabled>
|
||||||
<LogonCount>65432</LogonCount>
|
<LogonCount>65432</LogonCount>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</AutoLogon>
|
</AutoLogon>
|
||||||
<Display>
|
<Display>
|
||||||
<ColorDepth>32</ColorDepth>
|
<ColorDepth>32</ColorDepth>
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
<HorizontalResolution>1280</HorizontalResolution>
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
<VerticalResolution>720</VerticalResolution>
|
||||||
</Display>
|
</Display>
|
||||||
<OOBE>
|
<OOBE>
|
||||||
<HideEULAPage>true</HideEULAPage>
|
<HideEULAPage>true</HideEULAPage>
|
||||||
@@ -287,6 +287,11 @@
|
|||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
<SynchronousCommand wcm:action="add">
|
<SynchronousCommand wcm:action="add">
|
||||||
<Order>18</Order>
|
<Order>18</Order>
|
||||||
|
<CommandLine>cmd /C net use Z: \\host.lan\Data /persistent:yes</CommandLine>
|
||||||
|
<Description>Map shared folder</Description>
|
||||||
|
</SynchronousCommand>
|
||||||
|
<SynchronousCommand wcm:action="add">
|
||||||
|
<Order>19</Order>
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
<Description>Execute custom script from the OEM folder if exists</Description>
|
||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
|
|||||||
@@ -156,7 +156,7 @@
|
|||||||
<RunSynchronous>
|
<RunSynchronous>
|
||||||
<RunSynchronousCommand wcm:action="add">
|
<RunSynchronousCommand wcm:action="add">
|
||||||
<Order>1</Order>
|
<Order>1</Order>
|
||||||
<Path>C:\Windows\Drivers\Balloon\blnsvr.exe -i</Path>
|
<Path>cmd.exe /c start "" /b /wait "C:\Windows\Drivers\Balloon\blnsvr.exe" -i</Path>
|
||||||
<Description>Install VirtIO Balloon service</Description>
|
<Description>Install VirtIO Balloon service</Description>
|
||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
</RunSynchronous>
|
</RunSynchronous>
|
||||||
@@ -170,14 +170,14 @@
|
|||||||
<Name>Docker</Name>
|
<Name>Docker</Name>
|
||||||
<Group>Administrators</Group>
|
<Group>Administrators</Group>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</LocalAccount>
|
</LocalAccount>
|
||||||
</LocalAccounts>
|
</LocalAccounts>
|
||||||
<AdministratorPassword>
|
<AdministratorPassword>
|
||||||
<Value>password</Value>
|
<Value>YQBkAG0AaQBuAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAUABhAHMAcwB3AG8AcgBkAA==</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</AdministratorPassword>
|
</AdministratorPassword>
|
||||||
</UserAccounts>
|
</UserAccounts>
|
||||||
<AutoLogon>
|
<AutoLogon>
|
||||||
@@ -185,14 +185,14 @@
|
|||||||
<Enabled>true</Enabled>
|
<Enabled>true</Enabled>
|
||||||
<LogonCount>65432</LogonCount>
|
<LogonCount>65432</LogonCount>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</AutoLogon>
|
</AutoLogon>
|
||||||
<Display>
|
<Display>
|
||||||
<ColorDepth>32</ColorDepth>
|
<ColorDepth>32</ColorDepth>
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
<HorizontalResolution>1280</HorizontalResolution>
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
<VerticalResolution>720</VerticalResolution>
|
||||||
</Display>
|
</Display>
|
||||||
<OOBE>
|
<OOBE>
|
||||||
<HideEULAPage>true</HideEULAPage>
|
<HideEULAPage>true</HideEULAPage>
|
||||||
@@ -287,6 +287,11 @@
|
|||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
<SynchronousCommand wcm:action="add">
|
<SynchronousCommand wcm:action="add">
|
||||||
<Order>18</Order>
|
<Order>18</Order>
|
||||||
|
<CommandLine>cmd /C net use Z: \\host.lan\Data /persistent:yes</CommandLine>
|
||||||
|
<Description>Map shared folder</Description>
|
||||||
|
</SynchronousCommand>
|
||||||
|
<SynchronousCommand wcm:action="add">
|
||||||
|
<Order>19</Order>
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
<Description>Execute custom script from the OEM folder if exists</Description>
|
||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
|
|||||||
+14
-9
@@ -156,7 +156,7 @@
|
|||||||
<RunSynchronous>
|
<RunSynchronous>
|
||||||
<RunSynchronousCommand wcm:action="add">
|
<RunSynchronousCommand wcm:action="add">
|
||||||
<Order>1</Order>
|
<Order>1</Order>
|
||||||
<Path>C:\Windows\Drivers\Balloon\blnsvr.exe -i</Path>
|
<Path>cmd.exe /c start "" /b /wait "C:\Windows\Drivers\Balloon\blnsvr.exe" -i</Path>
|
||||||
<Description>Install VirtIO Balloon service</Description>
|
<Description>Install VirtIO Balloon service</Description>
|
||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
</RunSynchronous>
|
</RunSynchronous>
|
||||||
@@ -170,14 +170,14 @@
|
|||||||
<Name>Docker</Name>
|
<Name>Docker</Name>
|
||||||
<Group>Administrators</Group>
|
<Group>Administrators</Group>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</LocalAccount>
|
</LocalAccount>
|
||||||
</LocalAccounts>
|
</LocalAccounts>
|
||||||
<AdministratorPassword>
|
<AdministratorPassword>
|
||||||
<Value>password</Value>
|
<Value>YQBkAG0AaQBuAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAUABhAHMAcwB3AG8AcgBkAA==</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</AdministratorPassword>
|
</AdministratorPassword>
|
||||||
</UserAccounts>
|
</UserAccounts>
|
||||||
<AutoLogon>
|
<AutoLogon>
|
||||||
@@ -185,14 +185,14 @@
|
|||||||
<Enabled>true</Enabled>
|
<Enabled>true</Enabled>
|
||||||
<LogonCount>65432</LogonCount>
|
<LogonCount>65432</LogonCount>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</AutoLogon>
|
</AutoLogon>
|
||||||
<Display>
|
<Display>
|
||||||
<ColorDepth>32</ColorDepth>
|
<ColorDepth>32</ColorDepth>
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
<HorizontalResolution>1280</HorizontalResolution>
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
<VerticalResolution>720</VerticalResolution>
|
||||||
</Display>
|
</Display>
|
||||||
<OOBE>
|
<OOBE>
|
||||||
<HideEULAPage>true</HideEULAPage>
|
<HideEULAPage>true</HideEULAPage>
|
||||||
@@ -287,6 +287,11 @@
|
|||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
<SynchronousCommand wcm:action="add">
|
<SynchronousCommand wcm:action="add">
|
||||||
<Order>18</Order>
|
<Order>18</Order>
|
||||||
|
<CommandLine>cmd /C net use Z: \\host.lan\Data /persistent:yes</CommandLine>
|
||||||
|
<Description>Map shared folder</Description>
|
||||||
|
</SynchronousCommand>
|
||||||
|
<SynchronousCommand wcm:action="add">
|
||||||
|
<Order>19</Order>
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
<Description>Execute custom script from the OEM folder if exists</Description>
|
||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
|
|||||||
@@ -161,14 +161,14 @@
|
|||||||
<Name>Docker</Name>
|
<Name>Docker</Name>
|
||||||
<Group>Administrators</Group>
|
<Group>Administrators</Group>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</LocalAccount>
|
</LocalAccount>
|
||||||
</LocalAccounts>
|
</LocalAccounts>
|
||||||
<AdministratorPassword>
|
<AdministratorPassword>
|
||||||
<Value>password</Value>
|
<Value>YQBkAG0AaQBuAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAUABhAHMAcwB3AG8AcgBkAA==</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</AdministratorPassword>
|
</AdministratorPassword>
|
||||||
</UserAccounts>
|
</UserAccounts>
|
||||||
<AutoLogon>
|
<AutoLogon>
|
||||||
@@ -176,14 +176,14 @@
|
|||||||
<Enabled>true</Enabled>
|
<Enabled>true</Enabled>
|
||||||
<LogonCount>65432</LogonCount>
|
<LogonCount>65432</LogonCount>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</AutoLogon>
|
</AutoLogon>
|
||||||
<Display>
|
<Display>
|
||||||
<ColorDepth>32</ColorDepth>
|
<ColorDepth>32</ColorDepth>
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
<HorizontalResolution>1280</HorizontalResolution>
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
<VerticalResolution>720</VerticalResolution>
|
||||||
</Display>
|
</Display>
|
||||||
<OOBE>
|
<OOBE>
|
||||||
<HideEULAPage>true</HideEULAPage>
|
<HideEULAPage>true</HideEULAPage>
|
||||||
@@ -278,6 +278,11 @@
|
|||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
<SynchronousCommand wcm:action="add">
|
<SynchronousCommand wcm:action="add">
|
||||||
<Order>18</Order>
|
<Order>18</Order>
|
||||||
|
<CommandLine>cmd /C net use Z: \\host.lan\Data /persistent:yes</CommandLine>
|
||||||
|
<Description>Map shared folder</Description>
|
||||||
|
</SynchronousCommand>
|
||||||
|
<SynchronousCommand wcm:action="add">
|
||||||
|
<Order>19</Order>
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
<Description>Execute custom script from the OEM folder if exists</Description>
|
||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
|
|||||||
@@ -161,14 +161,14 @@
|
|||||||
<Name>Docker</Name>
|
<Name>Docker</Name>
|
||||||
<Group>Administrators</Group>
|
<Group>Administrators</Group>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</LocalAccount>
|
</LocalAccount>
|
||||||
</LocalAccounts>
|
</LocalAccounts>
|
||||||
<AdministratorPassword>
|
<AdministratorPassword>
|
||||||
<Value>password</Value>
|
<Value>YQBkAG0AaQBuAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAUABhAHMAcwB3AG8AcgBkAA==</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</AdministratorPassword>
|
</AdministratorPassword>
|
||||||
</UserAccounts>
|
</UserAccounts>
|
||||||
<AutoLogon>
|
<AutoLogon>
|
||||||
@@ -176,14 +176,14 @@
|
|||||||
<Enabled>true</Enabled>
|
<Enabled>true</Enabled>
|
||||||
<LogonCount>65432</LogonCount>
|
<LogonCount>65432</LogonCount>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</AutoLogon>
|
</AutoLogon>
|
||||||
<Display>
|
<Display>
|
||||||
<ColorDepth>32</ColorDepth>
|
<ColorDepth>32</ColorDepth>
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
<HorizontalResolution>1280</HorizontalResolution>
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
<VerticalResolution>720</VerticalResolution>
|
||||||
</Display>
|
</Display>
|
||||||
<OOBE>
|
<OOBE>
|
||||||
<HideEULAPage>true</HideEULAPage>
|
<HideEULAPage>true</HideEULAPage>
|
||||||
@@ -278,6 +278,11 @@
|
|||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
<SynchronousCommand wcm:action="add">
|
<SynchronousCommand wcm:action="add">
|
||||||
<Order>18</Order>
|
<Order>18</Order>
|
||||||
|
<CommandLine>cmd /C net use Z: \\host.lan\Data /persistent:yes</CommandLine>
|
||||||
|
<Description>Map shared folder</Description>
|
||||||
|
</SynchronousCommand>
|
||||||
|
<SynchronousCommand wcm:action="add">
|
||||||
|
<Order>19</Order>
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
<Description>Execute custom script from the OEM folder if exists</Description>
|
||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
|
|||||||
+13
-8
@@ -161,14 +161,14 @@
|
|||||||
<Name>Docker</Name>
|
<Name>Docker</Name>
|
||||||
<Group>Administrators</Group>
|
<Group>Administrators</Group>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</LocalAccount>
|
</LocalAccount>
|
||||||
</LocalAccounts>
|
</LocalAccounts>
|
||||||
<AdministratorPassword>
|
<AdministratorPassword>
|
||||||
<Value>password</Value>
|
<Value>YQBkAG0AaQBuAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAUABhAHMAcwB3AG8AcgBkAA==</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</AdministratorPassword>
|
</AdministratorPassword>
|
||||||
</UserAccounts>
|
</UserAccounts>
|
||||||
<AutoLogon>
|
<AutoLogon>
|
||||||
@@ -176,14 +176,14 @@
|
|||||||
<Enabled>true</Enabled>
|
<Enabled>true</Enabled>
|
||||||
<LogonCount>65432</LogonCount>
|
<LogonCount>65432</LogonCount>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</AutoLogon>
|
</AutoLogon>
|
||||||
<Display>
|
<Display>
|
||||||
<ColorDepth>32</ColorDepth>
|
<ColorDepth>32</ColorDepth>
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
<HorizontalResolution>1280</HorizontalResolution>
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
<VerticalResolution>720</VerticalResolution>
|
||||||
</Display>
|
</Display>
|
||||||
<OOBE>
|
<OOBE>
|
||||||
<HideEULAPage>true</HideEULAPage>
|
<HideEULAPage>true</HideEULAPage>
|
||||||
@@ -278,6 +278,11 @@
|
|||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
<SynchronousCommand wcm:action="add">
|
<SynchronousCommand wcm:action="add">
|
||||||
<Order>18</Order>
|
<Order>18</Order>
|
||||||
|
<CommandLine>cmd /C net use Z: \\host.lan\Data /persistent:yes</CommandLine>
|
||||||
|
<Description>Map shared folder</Description>
|
||||||
|
</SynchronousCommand>
|
||||||
|
<SynchronousCommand wcm:action="add">
|
||||||
|
<Order>19</Order>
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
<Description>Execute custom script from the OEM folder if exists</Description>
|
||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
|
|||||||
@@ -1,317 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<unattend xmlns="urn:schemas-microsoft-com:unattend" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
|
|
||||||
<settings pass="windowsPE">
|
|
||||||
<component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<SetupUILanguage>
|
|
||||||
<UILanguage>en-US</UILanguage>
|
|
||||||
</SetupUILanguage>
|
|
||||||
<InputLocale>0409:00000409</InputLocale>
|
|
||||||
<SystemLocale>en-US</SystemLocale>
|
|
||||||
<UILanguage>en-US</UILanguage>
|
|
||||||
<UserLocale>en-US</UserLocale>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DiskConfiguration>
|
|
||||||
<Disk wcm:action="add">
|
|
||||||
<DiskID>0</DiskID>
|
|
||||||
<WillWipeDisk>true</WillWipeDisk>
|
|
||||||
<CreatePartitions>
|
|
||||||
<!-- System partition (ESP) -->
|
|
||||||
<CreatePartition wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<Type>EFI</Type>
|
|
||||||
<Size>128</Size>
|
|
||||||
</CreatePartition>
|
|
||||||
<!-- Microsoft reserved partition (MSR) -->
|
|
||||||
<CreatePartition wcm:action="add">
|
|
||||||
<Order>2</Order>
|
|
||||||
<Type>MSR</Type>
|
|
||||||
<Size>128</Size>
|
|
||||||
</CreatePartition>
|
|
||||||
<!-- Windows partition -->
|
|
||||||
<CreatePartition wcm:action="add">
|
|
||||||
<Order>3</Order>
|
|
||||||
<Type>Primary</Type>
|
|
||||||
<Extend>true</Extend>
|
|
||||||
</CreatePartition>
|
|
||||||
</CreatePartitions>
|
|
||||||
<ModifyPartitions>
|
|
||||||
<!-- System partition (ESP) -->
|
|
||||||
<ModifyPartition wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<PartitionID>1</PartitionID>
|
|
||||||
<Label>System</Label>
|
|
||||||
<Format>FAT32</Format>
|
|
||||||
</ModifyPartition>
|
|
||||||
<!-- MSR partition does not need to be modified -->
|
|
||||||
<ModifyPartition wcm:action="add">
|
|
||||||
<Order>2</Order>
|
|
||||||
<PartitionID>2</PartitionID>
|
|
||||||
</ModifyPartition>
|
|
||||||
<!-- Windows partition -->
|
|
||||||
<ModifyPartition wcm:action="add">
|
|
||||||
<Order>3</Order>
|
|
||||||
<PartitionID>3</PartitionID>
|
|
||||||
<Label>Windows</Label>
|
|
||||||
<Letter>C</Letter>
|
|
||||||
<Format>NTFS</Format>
|
|
||||||
</ModifyPartition>
|
|
||||||
</ModifyPartitions>
|
|
||||||
</Disk>
|
|
||||||
</DiskConfiguration>
|
|
||||||
<ImageInstall>
|
|
||||||
<OSImage>
|
|
||||||
<InstallTo>
|
|
||||||
<DiskID>0</DiskID>
|
|
||||||
<PartitionID>3</PartitionID>
|
|
||||||
</InstallTo>
|
|
||||||
<InstallToAvailablePartition>false</InstallToAvailablePartition>
|
|
||||||
</OSImage>
|
|
||||||
</ImageInstall>
|
|
||||||
<DynamicUpdate>
|
|
||||||
<Enable>true</Enable>
|
|
||||||
<WillShowUI>Never</WillShowUI>
|
|
||||||
</DynamicUpdate>
|
|
||||||
<UpgradeData>
|
|
||||||
<Upgrade>false</Upgrade>
|
|
||||||
<WillShowUI>Never</WillShowUI>
|
|
||||||
</UpgradeData>
|
|
||||||
<UserData>
|
|
||||||
<AcceptEula>true</AcceptEula>
|
|
||||||
<FullName>Docker</FullName>
|
|
||||||
<Organization>Windows for Docker</Organization>
|
|
||||||
</UserData>
|
|
||||||
<EnableFirewall>false</EnableFirewall>
|
|
||||||
<Diagnostics>
|
|
||||||
<OptIn>false</OptIn>
|
|
||||||
</Diagnostics>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="offlineServicing">
|
|
||||||
<component name="Microsoft-Windows-LUA-Settings" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<EnableLUA>false</EnableLUA>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="generalize">
|
|
||||||
<component name="Microsoft-Windows-PnPSysprep" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<PersistAllDeviceInstalls>true</PersistAllDeviceInstalls>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Security-SPP" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<SkipRearm>1</SkipRearm>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="specialize">
|
|
||||||
<component name="Microsoft-Windows-Security-SPP-UX" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<SkipAutoActivation>true</SkipAutoActivation>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<ComputerName>*</ComputerName>
|
|
||||||
<OEMInformation>
|
|
||||||
<Manufacturer>Dockur</Manufacturer>
|
|
||||||
<Model>Windows for Docker</Model>
|
|
||||||
</OEMInformation>
|
|
||||||
<OEMName>Windows for Docker</OEMName>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-ErrorReportingCore" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableWER>1</DisableWER>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-IE-InternetExplorer" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableAccelerators>true</DisableAccelerators>
|
|
||||||
<DisableFirstRunWizard>true</DisableFirstRunWizard>
|
|
||||||
<Home_Page>https://google.com</Home_Page>
|
|
||||||
<Help_Page>about:blank</Help_Page>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-IE-InternetExplorer" processorArchitecture="wow64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableAccelerators>true</DisableAccelerators>
|
|
||||||
<DisableFirstRunWizard>true</DisableFirstRunWizard>
|
|
||||||
<Home_Page>https://google.com</Home_Page>
|
|
||||||
<Help_Page>about:blank</Help_Page>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-SQMApi" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<CEIPEnabled>0</CEIPEnabled>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-SystemRestore-Main" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<DisableSR>1</DisableSR>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<InputLocale>0409:00000409</InputLocale>
|
|
||||||
<SystemLocale>en-US</SystemLocale>
|
|
||||||
<UILanguage>en-US</UILanguage>
|
|
||||||
<UserLocale>en-US</UserLocale>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Deployment" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<RunSynchronous>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<Path>reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\FirstNetwork" /v Category /t REG_DWORD /d 1 /f</Path>
|
|
||||||
<Description>Set Network Location to Home</Description>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
<RunSynchronousCommand wcm:action="add">
|
|
||||||
<Order>2</Order>
|
|
||||||
<Path>C:\Windows\Drivers\Balloon\blnsvr.exe -i</Path>
|
|
||||||
<Description>Install VirtIO Balloon service</Description>
|
|
||||||
</RunSynchronousCommand>
|
|
||||||
</RunSynchronous>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-TerminalServices-LocalSessionManager" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<fDenyTSConnections>false</fDenyTSConnections>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-TerminalServices-RDP-WinStationExtensions" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<UserAuthentication>0</UserAuthentication>
|
|
||||||
</component>
|
|
||||||
<component name="Networking-MPSSVC-Svc" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<FirewallGroups>
|
|
||||||
<FirewallGroup wcm:action="add" wcm:keyValue="RemoteDesktop">
|
|
||||||
<Active>true</Active>
|
|
||||||
<Profile>all</Profile>
|
|
||||||
<Group>@FirewallAPI.dll,-28752</Group>
|
|
||||||
</FirewallGroup>
|
|
||||||
</FirewallGroups>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
<settings pass="oobeSystem">
|
|
||||||
<component name="Microsoft-Windows-SecureStartup-FilterDriver" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<PreventDeviceEncryption>true</PreventDeviceEncryption>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-EnhancedStorage-Adm" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<TCGSecurityActivationDisabled>1</TCGSecurityActivationDisabled>
|
|
||||||
</component>
|
|
||||||
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
|
||||||
<UserAccounts>
|
|
||||||
<LocalAccounts>
|
|
||||||
<LocalAccount wcm:action="add">
|
|
||||||
<Name>Docker</Name>
|
|
||||||
<Group>Administrators</Group>
|
|
||||||
<Password>
|
|
||||||
<Value />
|
|
||||||
<PlainText>true</PlainText>
|
|
||||||
</Password>
|
|
||||||
</LocalAccount>
|
|
||||||
</LocalAccounts>
|
|
||||||
<AdministratorPassword>
|
|
||||||
<Value>password</Value>
|
|
||||||
<PlainText>true</PlainText>
|
|
||||||
</AdministratorPassword>
|
|
||||||
</UserAccounts>
|
|
||||||
<AutoLogon>
|
|
||||||
<Username>Docker</Username>
|
|
||||||
<Enabled>true</Enabled>
|
|
||||||
<LogonCount>65432</LogonCount>
|
|
||||||
<Password>
|
|
||||||
<Value />
|
|
||||||
<PlainText>true</PlainText>
|
|
||||||
</Password>
|
|
||||||
</AutoLogon>
|
|
||||||
<Display>
|
|
||||||
<ColorDepth>32</ColorDepth>
|
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
|
||||||
</Display>
|
|
||||||
<OOBE>
|
|
||||||
<HideEULAPage>true</HideEULAPage>
|
|
||||||
<HideLocalAccountScreen>true</HideLocalAccountScreen>
|
|
||||||
<HideOEMRegistrationScreen>true</HideOEMRegistrationScreen>
|
|
||||||
<HideOnlineAccountScreens>true</HideOnlineAccountScreens>
|
|
||||||
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
|
|
||||||
<NetworkLocation>Home</NetworkLocation>
|
|
||||||
<ProtectYourPC>3</ProtectYourPC>
|
|
||||||
<SkipUserOOBE>true</SkipUserOOBE>
|
|
||||||
<SkipMachineOOBE>true</SkipMachineOOBE>
|
|
||||||
</OOBE>
|
|
||||||
<RegisteredOrganization>Dockur</RegisteredOrganization>
|
|
||||||
<RegisteredOwner>Windows for Docker</RegisteredOwner>
|
|
||||||
<FirstLogonCommands>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>1</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" /v "AllowInsecureGuestAuth" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Allow guest access to network shares</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>3</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\PasswordLess\Device" /v "DevicePasswordLessBuildVersion" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Enable option for passwordless sign-in</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>4</Order>
|
|
||||||
<CommandLine>cmd /C wmic useraccount where name="Docker" set PasswordExpires=false</CommandLine>
|
|
||||||
<Description>Password Never Expires</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>5</Order>
|
|
||||||
<CommandLine>cmd /C POWERCFG -H OFF</CommandLine>
|
|
||||||
<Description>Disable Hibernation</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>6</Order>
|
|
||||||
<CommandLine>cmd /C POWERCFG -X -monitor-timeout-ac 0</CommandLine>
|
|
||||||
<Description>Disable monitor blanking</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>7</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Edge" /v "HideFirstRunExperience" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Disable first-run experience in Edge</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>8</Order>
|
|
||||||
<CommandLine>reg.exe add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "HideFileExt" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Show file extensions in Explorer</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>9</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Power" /v "HibernateFileSizePercent" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Zero Hibernation File</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>10</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Power" /v "HibernateEnabled" /t REG_DWORD /d 0 /f</CommandLine>
|
|
||||||
<Description>Disable Hibernation</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>11</Order>
|
|
||||||
<CommandLine>cmd /C POWERCFG -X -standby-timeout-ac 0</CommandLine>
|
|
||||||
<Description>Disable Sleep</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>12</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v "fAllowUnlistedRemotePrograms" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Enable RemoteApp to launch unlisted programs</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>13</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList" /v "fDisabledAllowList" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Disable RemoteApp allowlist</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>14</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" /v "NoAutoUpdate" /t REG_DWORD /d 1 /f</CommandLine>
|
|
||||||
<Description>Turn off Windows Update auto download</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>15</Order>
|
|
||||||
<CommandLine>netsh advfirewall firewall set rule group="@FirewallAPI.dll,-32752" new enable=Yes</CommandLine>
|
|
||||||
<Description>Enable Network Discovery</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>16</Order>
|
|
||||||
<CommandLine>reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Network\NewNetworkWindowOff" /f</CommandLine>
|
|
||||||
<Description>Disable Network Discovery popup</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>17</Order>
|
|
||||||
<CommandLine>netsh advfirewall firewall set rule group="@FirewallAPI.dll,-28502" new enable=Yes</CommandLine>
|
|
||||||
<Description>Enable File Sharing</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>18</Order>
|
|
||||||
<CommandLine>cmd /C mklink /d %userprofile%\Desktop\Shared \\host.lan\Data</CommandLine>
|
|
||||||
<Description>Create desktop shortcut to shared folder</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
<SynchronousCommand wcm:action="add">
|
|
||||||
<Order>19</Order>
|
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
|
||||||
</SynchronousCommand>
|
|
||||||
</FirstLogonCommands>
|
|
||||||
</component>
|
|
||||||
</settings>
|
|
||||||
</unattend>
|
|
||||||
@@ -151,7 +151,7 @@
|
|||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
<RunSynchronousCommand wcm:action="add">
|
<RunSynchronousCommand wcm:action="add">
|
||||||
<Order>2</Order>
|
<Order>2</Order>
|
||||||
<Path>C:\Windows\Drivers\Balloon\blnsvr.exe -i</Path>
|
<Path>cmd.exe /c start "" /b /wait "C:\Windows\Drivers\Balloon\blnsvr.exe" -i</Path>
|
||||||
<Description>Install VirtIO Balloon service</Description>
|
<Description>Install VirtIO Balloon service</Description>
|
||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
</RunSynchronous>
|
</RunSynchronous>
|
||||||
@@ -186,14 +186,14 @@
|
|||||||
<Name>Docker</Name>
|
<Name>Docker</Name>
|
||||||
<Group>Administrators</Group>
|
<Group>Administrators</Group>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</LocalAccount>
|
</LocalAccount>
|
||||||
</LocalAccounts>
|
</LocalAccounts>
|
||||||
<AdministratorPassword>
|
<AdministratorPassword>
|
||||||
<Value>password</Value>
|
<Value>YQBkAG0AaQBuAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAUABhAHMAcwB3AG8AcgBkAA==</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</AdministratorPassword>
|
</AdministratorPassword>
|
||||||
</UserAccounts>
|
</UserAccounts>
|
||||||
<AutoLogon>
|
<AutoLogon>
|
||||||
@@ -201,14 +201,14 @@
|
|||||||
<Enabled>true</Enabled>
|
<Enabled>true</Enabled>
|
||||||
<LogonCount>65432</LogonCount>
|
<LogonCount>65432</LogonCount>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</AutoLogon>
|
</AutoLogon>
|
||||||
<Display>
|
<Display>
|
||||||
<ColorDepth>32</ColorDepth>
|
<ColorDepth>32</ColorDepth>
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
<HorizontalResolution>1280</HorizontalResolution>
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
<VerticalResolution>720</VerticalResolution>
|
||||||
</Display>
|
</Display>
|
||||||
<OOBE>
|
<OOBE>
|
||||||
<HideEULAPage>true</HideEULAPage>
|
<HideEULAPage>true</HideEULAPage>
|
||||||
@@ -311,6 +311,11 @@
|
|||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
<SynchronousCommand wcm:action="add">
|
<SynchronousCommand wcm:action="add">
|
||||||
<Order>19</Order>
|
<Order>19</Order>
|
||||||
|
<CommandLine>cmd /C net use Z: \\host.lan\Data /persistent:yes</CommandLine>
|
||||||
|
<Description>Map shared folder</Description>
|
||||||
|
</SynchronousCommand>
|
||||||
|
<SynchronousCommand wcm:action="add">
|
||||||
|
<Order>20</Order>
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
<Description>Execute custom script from the OEM folder if exists</Description>
|
||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
|
|||||||
+14
-9
@@ -158,7 +158,7 @@
|
|||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
<RunSynchronousCommand wcm:action="add">
|
<RunSynchronousCommand wcm:action="add">
|
||||||
<Order>2</Order>
|
<Order>2</Order>
|
||||||
<Path>C:\Windows\Drivers\Balloon\blnsvr.exe -i</Path>
|
<Path>cmd.exe /c start "" /b /wait "C:\Windows\Drivers\Balloon\blnsvr.exe" -i</Path>
|
||||||
<Description>Install VirtIO Balloon service</Description>
|
<Description>Install VirtIO Balloon service</Description>
|
||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
</RunSynchronous>
|
</RunSynchronous>
|
||||||
@@ -193,14 +193,14 @@
|
|||||||
<Name>Docker</Name>
|
<Name>Docker</Name>
|
||||||
<Group>Administrators</Group>
|
<Group>Administrators</Group>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</LocalAccount>
|
</LocalAccount>
|
||||||
</LocalAccounts>
|
</LocalAccounts>
|
||||||
<AdministratorPassword>
|
<AdministratorPassword>
|
||||||
<Value>password</Value>
|
<Value>YQBkAG0AaQBuAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAUABhAHMAcwB3AG8AcgBkAA==</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</AdministratorPassword>
|
</AdministratorPassword>
|
||||||
</UserAccounts>
|
</UserAccounts>
|
||||||
<AutoLogon>
|
<AutoLogon>
|
||||||
@@ -208,14 +208,14 @@
|
|||||||
<Enabled>true</Enabled>
|
<Enabled>true</Enabled>
|
||||||
<LogonCount>65432</LogonCount>
|
<LogonCount>65432</LogonCount>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</AutoLogon>
|
</AutoLogon>
|
||||||
<Display>
|
<Display>
|
||||||
<ColorDepth>32</ColorDepth>
|
<ColorDepth>32</ColorDepth>
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
<HorizontalResolution>1280</HorizontalResolution>
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
<VerticalResolution>720</VerticalResolution>
|
||||||
</Display>
|
</Display>
|
||||||
<OOBE>
|
<OOBE>
|
||||||
<HideEULAPage>true</HideEULAPage>
|
<HideEULAPage>true</HideEULAPage>
|
||||||
@@ -318,6 +318,11 @@
|
|||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
<SynchronousCommand wcm:action="add">
|
<SynchronousCommand wcm:action="add">
|
||||||
<Order>19</Order>
|
<Order>19</Order>
|
||||||
|
<CommandLine>cmd /C net use Z: \\host.lan\Data /persistent:yes</CommandLine>
|
||||||
|
<Description>Map shared folder</Description>
|
||||||
|
</SynchronousCommand>
|
||||||
|
<SynchronousCommand wcm:action="add">
|
||||||
|
<Order>20</Order>
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
<Description>Execute custom script from the OEM folder if exists</Description>
|
||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
|
|||||||
@@ -94,7 +94,7 @@
|
|||||||
<RunSynchronous>
|
<RunSynchronous>
|
||||||
<RunSynchronousCommand wcm:action="add">
|
<RunSynchronousCommand wcm:action="add">
|
||||||
<Order>1</Order>
|
<Order>1</Order>
|
||||||
<Path>C:\Windows\Drivers\Balloon\blnsvr.exe -i</Path>
|
<Path>cmd.exe /c start "" /b /wait "C:\Windows\Drivers\Balloon\blnsvr.exe" -i</Path>
|
||||||
<Description>Install VirtIO Balloon service</Description>
|
<Description>Install VirtIO Balloon service</Description>
|
||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
</RunSynchronous>
|
</RunSynchronous>
|
||||||
@@ -120,14 +120,14 @@
|
|||||||
<Name>Docker</Name>
|
<Name>Docker</Name>
|
||||||
<Group>Administrators</Group>
|
<Group>Administrators</Group>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</LocalAccount>
|
</LocalAccount>
|
||||||
</LocalAccounts>
|
</LocalAccounts>
|
||||||
<AdministratorPassword>
|
<AdministratorPassword>
|
||||||
<Value>password</Value>
|
<Value>YQBkAG0AaQBuAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAUABhAHMAcwB3AG8AcgBkAA==</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</AdministratorPassword>
|
</AdministratorPassword>
|
||||||
</UserAccounts>
|
</UserAccounts>
|
||||||
<AutoLogon>
|
<AutoLogon>
|
||||||
@@ -135,14 +135,14 @@
|
|||||||
<Enabled>true</Enabled>
|
<Enabled>true</Enabled>
|
||||||
<LogonCount>65432</LogonCount>
|
<LogonCount>65432</LogonCount>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</AutoLogon>
|
</AutoLogon>
|
||||||
<Display>
|
<Display>
|
||||||
<ColorDepth>32</ColorDepth>
|
<ColorDepth>32</ColorDepth>
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
<HorizontalResolution>1280</HorizontalResolution>
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
<VerticalResolution>720</VerticalResolution>
|
||||||
</Display>
|
</Display>
|
||||||
<OOBE>
|
<OOBE>
|
||||||
<HideEULAPage>true</HideEULAPage>
|
<HideEULAPage>true</HideEULAPage>
|
||||||
@@ -266,6 +266,11 @@
|
|||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
<SynchronousCommand wcm:action="add">
|
<SynchronousCommand wcm:action="add">
|
||||||
<Order>24</Order>
|
<Order>24</Order>
|
||||||
|
<CommandLine>cmd /C net use Z: \\host.lan\Data /persistent:yes</CommandLine>
|
||||||
|
<Description>Map shared folder</Description>
|
||||||
|
</SynchronousCommand>
|
||||||
|
<SynchronousCommand wcm:action="add">
|
||||||
|
<Order>25</Order>
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
<Description>Execute custom script from the OEM folder if exists</Description>
|
||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
|
|||||||
@@ -94,7 +94,7 @@
|
|||||||
<RunSynchronous>
|
<RunSynchronous>
|
||||||
<RunSynchronousCommand wcm:action="add">
|
<RunSynchronousCommand wcm:action="add">
|
||||||
<Order>1</Order>
|
<Order>1</Order>
|
||||||
<Path>C:\Windows\Drivers\Balloon\blnsvr.exe -i</Path>
|
<Path>cmd.exe /c start "" /b /wait "C:\Windows\Drivers\Balloon\blnsvr.exe" -i</Path>
|
||||||
<Description>Install VirtIO Balloon service</Description>
|
<Description>Install VirtIO Balloon service</Description>
|
||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
</RunSynchronous>
|
</RunSynchronous>
|
||||||
@@ -120,14 +120,14 @@
|
|||||||
<Name>Docker</Name>
|
<Name>Docker</Name>
|
||||||
<Group>Administrators</Group>
|
<Group>Administrators</Group>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</LocalAccount>
|
</LocalAccount>
|
||||||
</LocalAccounts>
|
</LocalAccounts>
|
||||||
<AdministratorPassword>
|
<AdministratorPassword>
|
||||||
<Value>password</Value>
|
<Value>YQBkAG0AaQBuAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAUABhAHMAcwB3AG8AcgBkAA==</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</AdministratorPassword>
|
</AdministratorPassword>
|
||||||
</UserAccounts>
|
</UserAccounts>
|
||||||
<AutoLogon>
|
<AutoLogon>
|
||||||
@@ -135,14 +135,14 @@
|
|||||||
<Enabled>true</Enabled>
|
<Enabled>true</Enabled>
|
||||||
<LogonCount>65432</LogonCount>
|
<LogonCount>65432</LogonCount>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</AutoLogon>
|
</AutoLogon>
|
||||||
<Display>
|
<Display>
|
||||||
<ColorDepth>32</ColorDepth>
|
<ColorDepth>32</ColorDepth>
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
<HorizontalResolution>1280</HorizontalResolution>
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
<VerticalResolution>720</VerticalResolution>
|
||||||
</Display>
|
</Display>
|
||||||
<OOBE>
|
<OOBE>
|
||||||
<HideEULAPage>true</HideEULAPage>
|
<HideEULAPage>true</HideEULAPage>
|
||||||
@@ -266,6 +266,11 @@
|
|||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
<SynchronousCommand wcm:action="add">
|
<SynchronousCommand wcm:action="add">
|
||||||
<Order>24</Order>
|
<Order>24</Order>
|
||||||
|
<CommandLine>cmd /C net use Z: \\host.lan\Data /persistent:yes</CommandLine>
|
||||||
|
<Description>Map shared folder</Description>
|
||||||
|
</SynchronousCommand>
|
||||||
|
<SynchronousCommand wcm:action="add">
|
||||||
|
<Order>25</Order>
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
<Description>Execute custom script from the OEM folder if exists</Description>
|
||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
|
|||||||
+14
-9
@@ -94,7 +94,7 @@
|
|||||||
<RunSynchronous>
|
<RunSynchronous>
|
||||||
<RunSynchronousCommand wcm:action="add">
|
<RunSynchronousCommand wcm:action="add">
|
||||||
<Order>1</Order>
|
<Order>1</Order>
|
||||||
<Path>C:\Windows\Drivers\Balloon\blnsvr.exe -i</Path>
|
<Path>cmd.exe /c start "" /b /wait "C:\Windows\Drivers\Balloon\blnsvr.exe" -i</Path>
|
||||||
<Description>Install VirtIO Balloon service</Description>
|
<Description>Install VirtIO Balloon service</Description>
|
||||||
</RunSynchronousCommand>
|
</RunSynchronousCommand>
|
||||||
</RunSynchronous>
|
</RunSynchronous>
|
||||||
@@ -120,14 +120,14 @@
|
|||||||
<Name>Docker</Name>
|
<Name>Docker</Name>
|
||||||
<Group>Administrators</Group>
|
<Group>Administrators</Group>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</LocalAccount>
|
</LocalAccount>
|
||||||
</LocalAccounts>
|
</LocalAccounts>
|
||||||
<AdministratorPassword>
|
<AdministratorPassword>
|
||||||
<Value>password</Value>
|
<Value>YQBkAG0AaQBuAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAUABhAHMAcwB3AG8AcgBkAA==</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</AdministratorPassword>
|
</AdministratorPassword>
|
||||||
</UserAccounts>
|
</UserAccounts>
|
||||||
<AutoLogon>
|
<AutoLogon>
|
||||||
@@ -135,14 +135,14 @@
|
|||||||
<Enabled>true</Enabled>
|
<Enabled>true</Enabled>
|
||||||
<LogonCount>65432</LogonCount>
|
<LogonCount>65432</LogonCount>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</AutoLogon>
|
</AutoLogon>
|
||||||
<Display>
|
<Display>
|
||||||
<ColorDepth>32</ColorDepth>
|
<ColorDepth>32</ColorDepth>
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
<HorizontalResolution>1280</HorizontalResolution>
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
<VerticalResolution>720</VerticalResolution>
|
||||||
</Display>
|
</Display>
|
||||||
<OOBE>
|
<OOBE>
|
||||||
<HideEULAPage>true</HideEULAPage>
|
<HideEULAPage>true</HideEULAPage>
|
||||||
@@ -266,6 +266,11 @@
|
|||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
<SynchronousCommand wcm:action="add">
|
<SynchronousCommand wcm:action="add">
|
||||||
<Order>24</Order>
|
<Order>24</Order>
|
||||||
|
<CommandLine>cmd /C net use Z: \\host.lan\Data /persistent:yes</CommandLine>
|
||||||
|
<Description>Map shared folder</Description>
|
||||||
|
</SynchronousCommand>
|
||||||
|
<SynchronousCommand wcm:action="add">
|
||||||
|
<Order>25</Order>
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
<Description>Execute custom script from the OEM folder if exists</Description>
|
||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
|
|||||||
@@ -111,14 +111,14 @@
|
|||||||
<Name>Docker</Name>
|
<Name>Docker</Name>
|
||||||
<Group>Administrators</Group>
|
<Group>Administrators</Group>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</LocalAccount>
|
</LocalAccount>
|
||||||
</LocalAccounts>
|
</LocalAccounts>
|
||||||
<AdministratorPassword>
|
<AdministratorPassword>
|
||||||
<Value>password</Value>
|
<Value>YQBkAG0AaQBuAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAUABhAHMAcwB3AG8AcgBkAA==</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</AdministratorPassword>
|
</AdministratorPassword>
|
||||||
</UserAccounts>
|
</UserAccounts>
|
||||||
<AutoLogon>
|
<AutoLogon>
|
||||||
@@ -126,14 +126,14 @@
|
|||||||
<Enabled>true</Enabled>
|
<Enabled>true</Enabled>
|
||||||
<LogonCount>65432</LogonCount>
|
<LogonCount>65432</LogonCount>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</AutoLogon>
|
</AutoLogon>
|
||||||
<Display>
|
<Display>
|
||||||
<ColorDepth>32</ColorDepth>
|
<ColorDepth>32</ColorDepth>
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
<HorizontalResolution>1280</HorizontalResolution>
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
<VerticalResolution>720</VerticalResolution>
|
||||||
</Display>
|
</Display>
|
||||||
<OOBE>
|
<OOBE>
|
||||||
<HideEULAPage>true</HideEULAPage>
|
<HideEULAPage>true</HideEULAPage>
|
||||||
@@ -257,6 +257,11 @@
|
|||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
<SynchronousCommand wcm:action="add">
|
<SynchronousCommand wcm:action="add">
|
||||||
<Order>24</Order>
|
<Order>24</Order>
|
||||||
|
<CommandLine>cmd /C net use Z: \\host.lan\Data /persistent:yes</CommandLine>
|
||||||
|
<Description>Map shared folder</Description>
|
||||||
|
</SynchronousCommand>
|
||||||
|
<SynchronousCommand wcm:action="add">
|
||||||
|
<Order>25</Order>
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
<Description>Execute custom script from the OEM folder if exists</Description>
|
||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
|
|||||||
@@ -111,14 +111,14 @@
|
|||||||
<Name>Docker</Name>
|
<Name>Docker</Name>
|
||||||
<Group>Administrators</Group>
|
<Group>Administrators</Group>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</LocalAccount>
|
</LocalAccount>
|
||||||
</LocalAccounts>
|
</LocalAccounts>
|
||||||
<AdministratorPassword>
|
<AdministratorPassword>
|
||||||
<Value>password</Value>
|
<Value>YQBkAG0AaQBuAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAUABhAHMAcwB3AG8AcgBkAA==</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</AdministratorPassword>
|
</AdministratorPassword>
|
||||||
</UserAccounts>
|
</UserAccounts>
|
||||||
<AutoLogon>
|
<AutoLogon>
|
||||||
@@ -126,14 +126,14 @@
|
|||||||
<Enabled>true</Enabled>
|
<Enabled>true</Enabled>
|
||||||
<LogonCount>65432</LogonCount>
|
<LogonCount>65432</LogonCount>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</AutoLogon>
|
</AutoLogon>
|
||||||
<Display>
|
<Display>
|
||||||
<ColorDepth>32</ColorDepth>
|
<ColorDepth>32</ColorDepth>
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
<HorizontalResolution>1280</HorizontalResolution>
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
<VerticalResolution>720</VerticalResolution>
|
||||||
</Display>
|
</Display>
|
||||||
<OOBE>
|
<OOBE>
|
||||||
<HideEULAPage>true</HideEULAPage>
|
<HideEULAPage>true</HideEULAPage>
|
||||||
@@ -257,6 +257,11 @@
|
|||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
<SynchronousCommand wcm:action="add">
|
<SynchronousCommand wcm:action="add">
|
||||||
<Order>24</Order>
|
<Order>24</Order>
|
||||||
|
<CommandLine>cmd /C net use Z: \\host.lan\Data /persistent:yes</CommandLine>
|
||||||
|
<Description>Map shared folder</Description>
|
||||||
|
</SynchronousCommand>
|
||||||
|
<SynchronousCommand wcm:action="add">
|
||||||
|
<Order>25</Order>
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
<Description>Execute custom script from the OEM folder if exists</Description>
|
||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
|
|||||||
+13
-8
@@ -111,14 +111,14 @@
|
|||||||
<Name>Docker</Name>
|
<Name>Docker</Name>
|
||||||
<Group>Administrators</Group>
|
<Group>Administrators</Group>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</LocalAccount>
|
</LocalAccount>
|
||||||
</LocalAccounts>
|
</LocalAccounts>
|
||||||
<AdministratorPassword>
|
<AdministratorPassword>
|
||||||
<Value>password</Value>
|
<Value>YQBkAG0AaQBuAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAUABhAHMAcwB3AG8AcgBkAA==</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</AdministratorPassword>
|
</AdministratorPassword>
|
||||||
</UserAccounts>
|
</UserAccounts>
|
||||||
<AutoLogon>
|
<AutoLogon>
|
||||||
@@ -126,14 +126,14 @@
|
|||||||
<Enabled>true</Enabled>
|
<Enabled>true</Enabled>
|
||||||
<LogonCount>65432</LogonCount>
|
<LogonCount>65432</LogonCount>
|
||||||
<Password>
|
<Password>
|
||||||
<Value />
|
<Value>YQBkAG0AaQBuAFAAYQBzAHMAdwBvAHIAZAA=</Value>
|
||||||
<PlainText>true</PlainText>
|
<PlainText>false</PlainText>
|
||||||
</Password>
|
</Password>
|
||||||
</AutoLogon>
|
</AutoLogon>
|
||||||
<Display>
|
<Display>
|
||||||
<ColorDepth>32</ColorDepth>
|
<ColorDepth>32</ColorDepth>
|
||||||
<HorizontalResolution>1920</HorizontalResolution>
|
<HorizontalResolution>1280</HorizontalResolution>
|
||||||
<VerticalResolution>1080</VerticalResolution>
|
<VerticalResolution>720</VerticalResolution>
|
||||||
</Display>
|
</Display>
|
||||||
<OOBE>
|
<OOBE>
|
||||||
<HideEULAPage>true</HideEULAPage>
|
<HideEULAPage>true</HideEULAPage>
|
||||||
@@ -257,6 +257,11 @@
|
|||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
<SynchronousCommand wcm:action="add">
|
<SynchronousCommand wcm:action="add">
|
||||||
<Order>24</Order>
|
<Order>24</Order>
|
||||||
|
<CommandLine>cmd /C net use Z: \\host.lan\Data /persistent:yes</CommandLine>
|
||||||
|
<Description>Map shared folder</Description>
|
||||||
|
</SynchronousCommand>
|
||||||
|
<SynchronousCommand wcm:action="add">
|
||||||
|
<Order>25</Order>
|
||||||
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
<CommandLine>cmd /C if exist "C:\OEM\install.bat" start "Install" "cmd /C C:\OEM\install.bat"</CommandLine>
|
||||||
<Description>Execute custom script from the OEM folder if exists</Description>
|
<Description>Execute custom script from the OEM folder if exists</Description>
|
||||||
</SynchronousCommand>
|
</SynchronousCommand>
|
||||||
|
|||||||
+32
-12
@@ -11,14 +11,15 @@ An empty default means the variable is unset and its value is determined automat
|
|||||||
| `VERSION` | `11` | Windows version to install, such as `10` or `11`. |
|
| `VERSION` | `11` | Windows version to install, such as `10` or `11`. |
|
||||||
| `EDITION` | | Windows edition to install, such as `core` for Windows Server Core. |
|
| `EDITION` | | Windows edition to install, such as `core` for Windows Server Core. |
|
||||||
| `LANGUAGE` | `en-US` | Windows display language, such as `English`, `en-US`, or `en`. |
|
| `LANGUAGE` | `en-US` | Windows display language, such as `English`, `en-US`, or `en`. |
|
||||||
| `REGION` | | Windows regional format. Uses `LANGUAGE` when unset. |
|
| `KEY` | | Windows product key used to install and activate Windows. |
|
||||||
|
| `REGION` | | Regional format. Uses `LANGUAGE` when unset. |
|
||||||
| `KEYBOARD` | | Keyboard layout. Uses `LANGUAGE` when unset. |
|
| `KEYBOARD` | | Keyboard layout. Uses `LANGUAGE` when unset. |
|
||||||
| `USERNAME` | `Docker` | Name of the Windows user account. |
|
| `USERNAME` | `Docker` | Name of the Windows user account. |
|
||||||
| `PASSWORD` | `admin` | Password for the Windows account. |
|
| `PASSWORD` | `admin` | Password for the Windows account. |
|
||||||
| `KEY` | | Windows product key used to install and activate Windows. |
|
| `AUTOLOGIN` | `Y` | Automatically signs in to Windows after startup. |
|
||||||
| `MANUAL` | `N` | Enables manual installation instead of unattended installation. |
|
| `DOMAIN` | | Active Directory domain to join during installation. |
|
||||||
| `VERIFY` | `N` | Verifies downloaded images against a predefined list of checksums. |
|
| `DOMAIN_OU` | | Distinguished name of the organizational unit. |
|
||||||
| `REMOVE` | `Y` | Deletes the downloaded Windows ISO after installation to save space. |
|
| `WORKGROUP` | | Name of the Windows workgroup to join. |
|
||||||
|
|
||||||
## 🧠 CPU and Memory
|
## 🧠 CPU and Memory
|
||||||
|
|
||||||
@@ -27,6 +28,7 @@ An empty default means the variable is unset and its value is determined automat
|
|||||||
| `CPU_CORES` | `2` | Number of virtual CPU cores, such as `4`, `half`, or `max`. |
|
| `CPU_CORES` | `2` | Number of virtual CPU cores, such as `4`, `half`, or `max`. |
|
||||||
| `CPU_MODEL` | `host` | QEMU CPU model. |
|
| `CPU_MODEL` | `host` | QEMU CPU model. |
|
||||||
| `CPU_FLAGS` | | Additional QEMU CPU flags. |
|
| `CPU_FLAGS` | | Additional QEMU CPU flags. |
|
||||||
|
| `SMP` | | Custom CPU topology. Determined from `CPU_CORES` when unset. |
|
||||||
| `KVM` | `Y` | Enables KVM hardware acceleration. |
|
| `KVM` | `Y` | Enables KVM hardware acceleration. |
|
||||||
| `VMX` | `N` | Exposes Intel VMX virtualization extensions to the guest. |
|
| `VMX` | `N` | Exposes Intel VMX virtualization extensions to the guest. |
|
||||||
| `HV` | `Y` | Enables Hyper-V enlightenments for Windows guests. |
|
| `HV` | `Y` | Enables Hyper-V enlightenments for Windows guests. |
|
||||||
@@ -52,15 +54,15 @@ An empty default means the variable is unset and its value is determined automat
|
|||||||
|
|
||||||
| Variable | Default | Description |
|
| Variable | Default | Description |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| `NETWORK` | | Network mode, such as `nat`, `passt`, `slirp`, or `N` to disable networking. |
|
| `NETWORK` | | Network mode, such as `nat`, `user`, or `N` to disable networking. |
|
||||||
| `DHCP` | `N` | Enables macvtap networking so Windows receives an address from the external LAN through DHCP. |
|
| `DHCP` | `N` | Enables macvtap networking so Windows receives a DHCP address. |
|
||||||
| `HOST` | `Windows` | Hostname assigned to Windows. |
|
| `HOST` | | Optional Windows computer name and advertised network hostname. |
|
||||||
| `IP` | | Overrides the automatically selected guest IPv4 address. |
|
| `IP` | | Overrides the automatically selected guest IPv4 address. |
|
||||||
| `MAC` | | Guest network adapter MAC address. |
|
| `MAC` | | Guest network adapter MAC address. |
|
||||||
| `ADAPTER` | `virtio-net-pci` | QEMU network adapter model. |
|
| `ADAPTER` | `virtio-net-pci` | QEMU network adapter model. |
|
||||||
| `DEV` | `eth0` | Container network interface used as the uplink. |
|
| `DEV` | `eth0` | Container network interface used as the uplink. |
|
||||||
| `MTU` | | MTU assigned to the guest network interface. |
|
| `MTU` | | MTU assigned to the guest network interface. |
|
||||||
| `MASK` | `255.255.255.0` | IPv4 netmask. |
|
| `MASK` | `255.255.255.0` | IPv4 netmask for guest network. |
|
||||||
| `TAP` | `qemu` | TAP or macvtap interface name. |
|
| `TAP` | `qemu` | TAP or macvtap interface name. |
|
||||||
| `BRIDGE` | `docker` | Bridge name used for NAT networking. |
|
| `BRIDGE` | `docker` | Bridge name used for NAT networking. |
|
||||||
| `HOST_PORTS` | | Ports excluded from guest forwarding. |
|
| `HOST_PORTS` | | Ports excluded from guest forwarding. |
|
||||||
@@ -76,9 +78,10 @@ An empty default means the variable is unset and its value is determined automat
|
|||||||
| Variable | Default | Description |
|
| Variable | Default | Description |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| `DISPLAY` | `web` | Display backend, such as `web`, `vnc`, `disabled`, or `none`. |
|
| `DISPLAY` | `web` | Display backend, such as `web`, `vnc`, `disabled`, or `none`. |
|
||||||
|
| `LOSSY` | `N` | Enables lossy VNC compression to reduce bandwidth usage. |
|
||||||
| `VGA` | `virtio` | QEMU video adapter model. |
|
| `VGA` | `virtio` | QEMU video adapter model. |
|
||||||
| `WIDTH` | `1920` | Display width configured in Windows. |
|
| `WIDTH` | `1280` | Display width configured in Windows. |
|
||||||
| `HEIGHT` | `1080` | Display height configured in Windows. |
|
| `HEIGHT` | `720` | Display height configured in Windows. |
|
||||||
| `GPU` | `N` | Enables experimental Intel iGPU acceleration. |
|
| `GPU` | `N` | Enables experimental Intel iGPU acceleration. |
|
||||||
| `RENDERNODE` | `/dev/dri/renderD128` | Render node used for GPU acceleration. |
|
| `RENDERNODE` | `/dev/dri/renderD128` | Render node used for GPU acceleration. |
|
||||||
|
|
||||||
@@ -102,12 +105,14 @@ An empty default means the variable is unset and its value is determined automat
|
|||||||
|---|---|---|
|
|---|---|---|
|
||||||
| `SAMBA` | `Y` | Enables the Samba shared folder. |
|
| `SAMBA` | `Y` | Enables the Samba shared folder. |
|
||||||
| `SAMBA_DEBUG` | `N` | Enables Samba debug output. |
|
| `SAMBA_DEBUG` | `N` | Enables Samba debug output. |
|
||||||
|
| `SHORTCUT` | `Y` | Creates desktop and drive shortcuts to the shared folder. |
|
||||||
|
|
||||||
## ⚙️ System
|
## ⚙️ System
|
||||||
|
|
||||||
| Variable | Default | Description |
|
| Variable | Default | Description |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| `MACHINE` | `q35` | QEMU machine type. |
|
| `MACHINE` | `q35` | QEMU machine type. |
|
||||||
|
| `PCI_BUS` | `pcie.0` | Overrides the PCI bus used for attached devices. |
|
||||||
| `UUID` | | UUID assigned to Windows. |
|
| `UUID` | | UUID assigned to Windows. |
|
||||||
| `HPET` | `off` | QEMU HPET timer setting. |
|
| `HPET` | `off` | QEMU HPET timer setting. |
|
||||||
| `VMPORT` | `off` | QEMU VMware port setting. |
|
| `VMPORT` | `off` | QEMU VMware port setting. |
|
||||||
@@ -120,6 +125,7 @@ An empty default means the variable is unset and its value is determined automat
|
|||||||
|---|---|---|
|
|---|---|---|
|
||||||
| `BOOT_MODE` | `windows` | Boot configuration, such as `windows`, `windows_secure`, or `windows_legacy`. |
|
| `BOOT_MODE` | `windows` | Boot configuration, such as `windows`, `windows_secure`, or `windows_legacy`. |
|
||||||
| `BOOT_INDEX` | `9` | Boot priority index for the installation media. |
|
| `BOOT_INDEX` | `9` | Boot priority index for the installation media. |
|
||||||
|
| `MEDIA_TYPE` | | Device type used for installation media. |
|
||||||
| `BIOS` | | Custom firmware file. |
|
| `BIOS` | | Custom firmware file. |
|
||||||
| `TPM` | `N` | Enables the TPM emulator, usually set by `BOOT_MODE`. |
|
| `TPM` | `N` | Enables the TPM emulator, usually set by `BOOT_MODE`. |
|
||||||
| `SMM` | `N` | Enables System Management Mode, usually set by `BOOT_MODE`. |
|
| `SMM` | `N` | Enables System Management Mode, usually set by `BOOT_MODE`. |
|
||||||
@@ -145,12 +151,25 @@ Also see [Dynamic memory allocation](https://github.com/qemus/qemu/blob/master/d
|
|||||||
| `BALLOONING_INTERVAL` | `5` | Polling interval in seconds. |
|
| `BALLOONING_INTERVAL` | `5` | Polling interval in seconds. |
|
||||||
| `BALLOONING_DEBUG` | `N` | Enables debug output for the ballooning monitor. |
|
| `BALLOONING_DEBUG` | `N` | Enables debug output for the ballooning monitor. |
|
||||||
|
|
||||||
|
## 💿 Installation
|
||||||
|
|
||||||
|
| Variable | Default | Description |
|
||||||
|
|---|---|---|
|
||||||
|
| `CONNECTIONS` | `4` | Number of connections used for ISO file downloads. |
|
||||||
|
| `MIDO` | `Y` | Enables downloading Windows ISO files directly from Microsoft. |
|
||||||
|
| `ESD` | `Y` | Enables downloading Windows through the ESD-based installation method. |
|
||||||
|
| `VERIFY` | `N` | Verifies downloaded installation media against predefined checksums. |
|
||||||
|
| `REMOVE` | `Y` | Deletes the downloaded Windows ISO after installation to save space. |
|
||||||
|
| `MANUAL` | `N` | Enables manual installation instead of unattended installation. |
|
||||||
|
| `REBUILD` | `Y` | Skips rebuilding the Windows ISO and uses the original image unchanged. |
|
||||||
|
| `COMMAND` | | Command to be executed during the final step of automatic installation. |
|
||||||
|
|
||||||
## 🔌 Shutdown
|
## 🔌 Shutdown
|
||||||
|
|
||||||
| Variable | Default | Description |
|
| Variable | Default | Description |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| `SHUTDOWN` | `Y` | Enables graceful ACPI shutdown. |
|
| `SHUTDOWN` | `Y` | Enables graceful ACPI shutdown. |
|
||||||
| `TIMEOUT` | `115` | Maximum time, in seconds, to wait before forcing Windows to stop. |
|
| `TIMEOUT` | `105` | Maximum time, in seconds, to wait before forcing Windows to stop. |
|
||||||
|
|
||||||
## 🐞 Debugging
|
## 🐞 Debugging
|
||||||
|
|
||||||
@@ -158,6 +177,7 @@ Also see [Dynamic memory allocation](https://github.com/qemus/qemu/blob/master/d
|
|||||||
|---|---|---|
|
|---|---|---|
|
||||||
| `DEBUG` | `N` | Enables verbose debug output. |
|
| `DEBUG` | `N` | Enables verbose debug output. |
|
||||||
| `TRACE` | `N` | Enables shell command tracing. |
|
| `TRACE` | `N` | Enables shell command tracing. |
|
||||||
|
| `LOG` | `N` | Saves all output from `install.bat` to `C:\OEM\install.log` for troubleshooting. |
|
||||||
| `DETECTED` | | Overrides the automatically detected Windows image identifier. |
|
| `DETECTED` | | Overrides the automatically detected Windows image identifier. |
|
||||||
| `SERIAL` | `mon:stdio` | QEMU serial device configuration. |
|
| `SERIAL` | `mon:stdio` | QEMU serial device configuration. |
|
||||||
| `MONITOR` | `unix:$QEMU_DIR/monitor.sock,server,wait=off,nodelay` | QEMU monitor configuration. |
|
| `MONITOR` | `unix:$QEMU_DIR/monitor.sock,server,wait=off,nodelay` | QEMU monitor configuration. |
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ metadata:
|
|||||||
name: windows
|
name: windows
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: windows
|
app: windows
|
||||||
|
|||||||
@@ -133,6 +133,10 @@ kubectl apply -f https://raw.githubusercontent.com/dockur/windows/refs/heads/mas
|
|||||||
| `2012` | Windows Server 2012 | 4.3 GB |
|
| `2012` | Windows Server 2012 | 4.3 GB |
|
||||||
| `2008` | Windows Server 2008 | 3.0 GB |
|
| `2008` | Windows Server 2008 | 3.0 GB |
|
||||||
| `2003` | Windows Server 2003 | 0.6 GB |
|
| `2003` | Windows Server 2003 | 0.6 GB |
|
||||||
|
||||
|
||||||
|
| `core11` | Tiny11 Core | 3.0 GB |
|
||||||
|
| `tiny11` | Tiny11 | 5.3 GB |
|
||||||
|
| `tiny10` | Tiny10 | 3.6 GB |
|
||||||
|
|
||||||
> [!TIP]
|
> [!TIP]
|
||||||
> To install ARM64 versions of Windows use [dockur/windows-arm](https://github.com/dockur/windows-arm/).
|
> To install ARM64 versions of Windows use [dockur/windows-arm](https://github.com/dockur/windows-arm/).
|
||||||
@@ -171,7 +175,7 @@ kubectl apply -f https://raw.githubusercontent.com/dockur/windows/refs/heads/mas
|
|||||||
- ./example:/shared
|
- ./example:/shared
|
||||||
```
|
```
|
||||||
|
|
||||||
Replace the example path `./example` with your desired shared folder, which then will become visible as `Shared`.
|
Replace the example path `./example` with your desired shared folder, which then will become visible as `Shared` on the desktop and as drive `Z:`.
|
||||||
|
|
||||||
### How do I change the amount of CPU or RAM?
|
### How do I change the amount of CPU or RAM?
|
||||||
|
|
||||||
@@ -216,6 +220,22 @@ kubectl apply -f https://raw.githubusercontent.com/dockur/windows/refs/heads/mas
|
|||||||
PASSWORD: "gates"
|
PASSWORD: "gates"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
When `DOMAIN` is set, these variables are used as domain credentials instead.
|
||||||
|
|
||||||
|
### How do I join an Active Directory domain?
|
||||||
|
|
||||||
|
Windows can automatically join an Active Directory domain during installation. Specify the domain name in your compose file:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
environment:
|
||||||
|
DOMAIN: "example.com"
|
||||||
|
DOMAIN_OU: "OU=Virtual Machines,OU=Servers,DC=example,DC=com"
|
||||||
|
```
|
||||||
|
|
||||||
|
Use the domain name, such as `example.com`, rather than a URL. The supplied account is added to the local Administrators group and automatically signed in after installation. `DOMAIN_OU` is optional and specifies where the computer account should be created.
|
||||||
|
|
||||||
|
Windows must be able to resolve and reach the domain controller through the domain's DNS server.
|
||||||
|
|
||||||
### How do I select the Windows language?
|
### How do I select the Windows language?
|
||||||
|
|
||||||
By default, the English version of Windows will be downloaded.
|
By default, the English version of Windows will be downloaded.
|
||||||
@@ -257,9 +277,16 @@ kubectl apply -f https://raw.githubusercontent.com/dockur/windows/refs/heads/mas
|
|||||||
|
|
||||||
Replace the example path `./example.iso` with the filename of your desired ISO file. The value of `VERSION` will be ignored in this case.
|
Replace the example path `./example.iso` with the filename of your desired ISO file. The value of `VERSION` will be ignored in this case.
|
||||||
|
|
||||||
### How do I run a script after installation?
|
### How do I run a command after installation?
|
||||||
|
|
||||||
To run your own script after installation, you can create a file called `install.bat` and place it in a folder together with any additional files it needs (software to be installed for example).
|
To execute a single command during the final step of the automatic installation, add the `COMMAND` environment variable:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
environment:
|
||||||
|
COMMAND: 'reg add "HKLM\Software\Example" /v Enabled /t REG_DWORD /d 1 /f'
|
||||||
|
```
|
||||||
|
|
||||||
|
To run a script or include additional files, create a file called `install.bat` and place it in a folder together with any files it needs, such as software to be installed.
|
||||||
|
|
||||||
Then bind that folder in your compose file like this:
|
Then bind that folder in your compose file like this:
|
||||||
|
|
||||||
@@ -268,7 +295,7 @@ kubectl apply -f https://raw.githubusercontent.com/dockur/windows/refs/heads/mas
|
|||||||
- ./example:/oem
|
- ./example:/oem
|
||||||
```
|
```
|
||||||
|
|
||||||
The example folder `./example` will be copied to `C:\OEM` and the `install.bat` file inside that folder will be executed during the last step of the automatic installation.
|
The example folder `./example` will be copied to `C:\OEM` and the `install.bat` file inside it will be executed during the final step of the automatic installation.
|
||||||
|
|
||||||
### How do I perform a manual installation?
|
### How do I perform a manual installation?
|
||||||
|
|
||||||
|
|||||||
+1769
File diff suppressed because it is too large
Load Diff
+582
-960
File diff suppressed because it is too large
Load Diff
+14
-2
@@ -14,6 +14,8 @@ cd /run
|
|||||||
. server.sh # Start webserver
|
. server.sh # Start webserver
|
||||||
. define.sh # Define versions
|
. define.sh # Define versions
|
||||||
. mido.sh # Download Windows
|
. mido.sh # Download Windows
|
||||||
|
. answer.sh # Setup answer files
|
||||||
|
. image.sh # Detect image files
|
||||||
. install.sh # Run installation
|
. install.sh # Run installation
|
||||||
. disk.sh # Initialize disks
|
. disk.sh # Initialize disks
|
||||||
. display.sh # Initialize graphics
|
. display.sh # Initialize graphics
|
||||||
@@ -47,17 +49,27 @@ sed -u \
|
|||||||
-e 's/failed to load Boot/skipped Boot/g' \
|
-e 's/failed to load Boot/skipped Boot/g' \
|
||||||
-e 's/0): Not Found/0)/g' &
|
-e 's/0): Not Found/0)/g' &
|
||||||
|
|
||||||
|
output=$!
|
||||||
|
|
||||||
if ! enabled "$SHUTDOWN"; then
|
if ! enabled "$SHUTDOWN"; then
|
||||||
exec "${cmd[@]}" ${ARGS:+ $ARGS} >"$pipe"
|
exec "${cmd[@]}" ${ARGS:+ $ARGS} >"$pipe" 2>&1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
"${cmd[@]}" ${ARGS:+ $ARGS} >"$pipe" &
|
if ! interactive; then
|
||||||
|
"${cmd[@]}" ${ARGS:+ $ARGS} >"$pipe" 2>&1 &
|
||||||
|
else
|
||||||
|
startConsole "$pipe"
|
||||||
|
startQemu "${cmd[@]}" ${ARGS:+ $ARGS} >"$pipe" 2>&1
|
||||||
|
fi
|
||||||
|
|
||||||
pid=$!
|
pid=$!
|
||||||
( sleep 30; boot ) &
|
( sleep 30; boot ) &
|
||||||
|
|
||||||
rc=0
|
rc=0
|
||||||
wait "$pid" || rc=$?
|
wait "$pid" || rc=$?
|
||||||
|
interactive && stopConsole
|
||||||
|
wait "$output" || :
|
||||||
|
|
||||||
[ -f "$QEMU_END" ] && exit "$rc"
|
[ -f "$QEMU_END" ] && exit "$rc"
|
||||||
|
|
||||||
sleep 1 & wait $!
|
sleep 1 & wait $!
|
||||||
|
|||||||
+1359
File diff suppressed because it is too large
Load Diff
+339
-472
File diff suppressed because it is too large
Load Diff
+355
-205
@@ -6,7 +6,7 @@ handleCurlError() {
|
|||||||
local code="$1"
|
local code="$1"
|
||||||
local server="$2"
|
local server="$2"
|
||||||
local reason="${3:-}"
|
local reason="${3:-}"
|
||||||
local signal=""
|
local signal
|
||||||
|
|
||||||
if [ -n "$reason" ] && (( code <= 125 )); then
|
if [ -n "$reason" ] && (( code <= 125 )); then
|
||||||
error "Request to $server servers failed: ${reason%.}."
|
error "Request to $server servers failed: ${reason%.}."
|
||||||
@@ -43,10 +43,9 @@ curlRequest() {
|
|||||||
local agent="$3"
|
local agent="$3"
|
||||||
shift 3
|
shift 3
|
||||||
|
|
||||||
local log reason
|
local log reason response
|
||||||
local rc=0 response=""
|
|
||||||
|
|
||||||
if ! log=$(mktemp); then
|
if ! log=$(mktemp -p "$QEMU_DIR"); then
|
||||||
error "Failed to create a temporary curl log."
|
error "Failed to create a temporary curl log."
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
@@ -62,7 +61,7 @@ curlRequest() {
|
|||||||
--tlsv1.2 \
|
--tlsv1.2 \
|
||||||
--http1.1 \
|
--http1.1 \
|
||||||
"$@" 2>"$log")
|
"$@" 2>"$log")
|
||||||
rc=$?
|
local rc=$?
|
||||||
} || :
|
} || :
|
||||||
|
|
||||||
if (( rc != 0 )); then
|
if (( rc != 0 )); then
|
||||||
@@ -84,31 +83,20 @@ curlRequest() {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
getAgent() {
|
|
||||||
|
|
||||||
local browser_version
|
|
||||||
|
|
||||||
# Determine approximate latest Firefox release
|
|
||||||
browser_version="$((124 + ($(date +%s) - 1710892800) / 2419200))"
|
|
||||||
echo "Mozilla/5.0 (X11; Linux x86_64; rv:${browser_version}.0) Gecko/20100101 Firefox/${browser_version}.0"
|
|
||||||
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
downloadWindows() {
|
downloadWindows() {
|
||||||
|
|
||||||
local id="$1"
|
local id="$1"
|
||||||
local lang="$2"
|
local lang="$2"
|
||||||
local desc="$3"
|
local desc="$3"
|
||||||
|
|
||||||
local ovToken="" ovTicks="" ovTime=""
|
local ovToken="" ovTicks="" ovTime
|
||||||
local skuId="" skuUrl="" skuJson=""
|
local skuId skuJson
|
||||||
local linkUrl="" linkJson="" link=""
|
local linkJson link
|
||||||
local language="" orgId="" ovData=""
|
local language ovData
|
||||||
local instance="" vlsUrl="" ovUrl=""
|
local session agent
|
||||||
local session="" agent="" type=""
|
local type winVer
|
||||||
local winVer="" page="" productId=""
|
local page productId
|
||||||
local rc=0 profile="606624d44113"
|
local profile="606624d44113"
|
||||||
|
|
||||||
agent=$(getAgent)
|
agent=$(getAgent)
|
||||||
language=$(getLanguage "$lang" "name")
|
language=$(getLanguage "$lang" "name")
|
||||||
@@ -135,10 +123,6 @@ downloadWindows() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Get product edition ID for latest release of given Windows version
|
# Get product edition ID for latest release of given Windows version
|
||||||
# Product edition ID: This specifies both the Windows release (e.g. 22H2) and edition ("multi-edition" is default, either Home/Pro/Edu/etc., we select "Pro" in the answer files) in one number
|
|
||||||
# This is the *only* request we make that Fido doesn't. Fido manually maintains a list of all the Windows release/edition product edition IDs in its script (see: $WindowsVersions array). This is helpful for downloading older releases (e.g. Windows 10 1909, 21H1, etc.) but we always want to get the newest release which is why we get this value dynamically
|
|
||||||
# Also, keeping a "$WindowsVersions" array like Fido does would be way too much of a maintenance burden
|
|
||||||
# Remove "Accept" header that curl sends by default
|
|
||||||
enabled "$DEBUG" && echo "Parsing download page: ${url}"
|
enabled "$DEBUG" && echo "Parsing download page: ${url}"
|
||||||
|
|
||||||
curlRequest page "Microsoft" "$agent" \
|
curlRequest page "Microsoft" "$agent" \
|
||||||
@@ -157,8 +141,8 @@ downloadWindows() {
|
|||||||
|
|
||||||
# Microsoft download "protection" requires the sessionId to be whitelisted through vlscppe.microsoft.com/tags
|
# Microsoft download "protection" requires the sessionId to be whitelisted through vlscppe.microsoft.com/tags
|
||||||
|
|
||||||
orgId="y6jn8c31"
|
local orgId="y6jn8c31"
|
||||||
vlsUrl="https://vlscppe.microsoft.com/tags?org_id=$orgId&session_id=$session"
|
local vlsUrl="https://vlscppe.microsoft.com/tags?org_id=$orgId&session_id=$session"
|
||||||
|
|
||||||
enabled "$DEBUG" && echo "Getting Session ID: $session"
|
enabled "$DEBUG" && echo "Getting Session ID: $session"
|
||||||
|
|
||||||
@@ -172,8 +156,8 @@ downloadWindows() {
|
|||||||
# Microsoft download "protection" also requires an ov-df.microsoft.com request/reply
|
# Microsoft download "protection" also requires an ov-df.microsoft.com request/reply
|
||||||
# 1) Request mdt.js to get w and rticks. InstanceId is (currently) constant.
|
# 1) Request mdt.js to get w and rticks. InstanceId is (currently) constant.
|
||||||
|
|
||||||
instance="560dc9f3-1aa5-4a2f-b63c-9e18f8d0e175"
|
local instance="560dc9f3-1aa5-4a2f-b63c-9e18f8d0e175"
|
||||||
ovUrl="https://ov-df.microsoft.com/mdt.js?instanceId=$instance&PageId=si&session_id=$session"
|
local ovUrl="https://ov-df.microsoft.com/mdt.js?instanceId=$instance&PageId=si&session_id=$session"
|
||||||
|
|
||||||
enabled "$DEBUG" && echo -n "Getting OV data: "
|
enabled "$DEBUG" && echo -n "Getting OV data: "
|
||||||
|
|
||||||
@@ -214,7 +198,7 @@ downloadWindows() {
|
|||||||
|
|
||||||
enabled "$DEBUG" && echo -n "Getting language SKU ID: "
|
enabled "$DEBUG" && echo -n "Getting language SKU ID: "
|
||||||
|
|
||||||
skuUrl="https://www.microsoft.com/software-download-connector/api/getskuinformationbyproductedition?profile=$profile&ProductEditionId=$productId&SKU=undefined&friendlyFileName=undefined&Locale=en-US&sessionID=$session"
|
local skuUrl="https://www.microsoft.com/software-download-connector/api/getskuinformationbyproductedition?profile=$profile&ProductEditionId=$productId&SKU=undefined&friendlyFileName=undefined&Locale=en-US&sessionID=$session"
|
||||||
|
|
||||||
curlRequest skuJson "Microsoft" "$agent" \
|
curlRequest skuJson "Microsoft" "$agent" \
|
||||||
--referer "$url" \
|
--referer "$url" \
|
||||||
@@ -222,7 +206,7 @@ downloadWindows() {
|
|||||||
--max-filesize 100K \
|
--max-filesize 100K \
|
||||||
-- "$skuUrl" || return 1
|
-- "$skuUrl" || return 1
|
||||||
|
|
||||||
{ skuId=$(echo "$skuJson" | jq --arg LANG "$language" -r '.Skus[] | select(.Language==$LANG).Id') 2>/dev/null; rc=$?; } || :
|
{ skuId=$(echo "$skuJson" | jq --arg LANG "$language" -r '.Skus[] | select(.Language==$LANG).Id') 2>/dev/null; local rc=$?; } || :
|
||||||
|
|
||||||
if [ -z "$skuId" ] || [[ "${skuId,,}" == "null" ]] || (( rc != 0 )); then
|
if [ -z "$skuId" ] || [[ "${skuId,,}" == "null" ]] || (( rc != 0 )); then
|
||||||
language=$(getLanguage "$lang" "desc")
|
language=$(getLanguage "$lang" "desc")
|
||||||
@@ -236,7 +220,7 @@ downloadWindows() {
|
|||||||
# Get ISO download link
|
# Get ISO download link
|
||||||
# If any request is going to be blocked by Microsoft it's always this last one (the previous requests always seem to succeed)
|
# If any request is going to be blocked by Microsoft it's always this last one (the previous requests always seem to succeed)
|
||||||
|
|
||||||
linkUrl="https://www.microsoft.com/software-download-connector/api/GetProductDownloadLinksBySku?profile=$profile&ProductEditionId=undefined&SKU=$skuId&friendlyFileName=undefined&Locale=en-US&sessionID=$session"
|
local linkUrl="https://www.microsoft.com/software-download-connector/api/GetProductDownloadLinksBySku?profile=$profile&ProductEditionId=undefined&SKU=$skuId&friendlyFileName=undefined&Locale=en-US&sessionID=$session"
|
||||||
|
|
||||||
curlRequest linkJson "Microsoft" "$agent" \
|
curlRequest linkJson "Microsoft" "$agent" \
|
||||||
--referer "$url" \
|
--referer "$url" \
|
||||||
@@ -277,8 +261,8 @@ downloadWindowsEval() {
|
|||||||
local id="$1"
|
local id="$1"
|
||||||
local lang="$2"
|
local lang="$2"
|
||||||
local desc="$3"
|
local desc="$3"
|
||||||
local filter="" culture="" compare="" language=""
|
local culture compare type
|
||||||
local agent="" type="" winVer=""
|
local agent language winVer
|
||||||
|
|
||||||
case "${id,,}" in
|
case "${id,,}" in
|
||||||
"win11${PLATFORM,,}-enterprise-eval" )
|
"win11${PLATFORM,,}-enterprise-eval" )
|
||||||
@@ -288,8 +272,8 @@ downloadWindowsEval() {
|
|||||||
type="iot"
|
type="iot"
|
||||||
winVer="windows-11-iot-enterprise-ltsc-eval" ;;
|
winVer="windows-11-iot-enterprise-ltsc-eval" ;;
|
||||||
"win11${PLATFORM,,}-enterprise-ltsc-eval" )
|
"win11${PLATFORM,,}-enterprise-ltsc-eval" )
|
||||||
type="iot"
|
type="ltsc"
|
||||||
winVer="windows-11-iot-enterprise-ltsc-eval" ;;
|
winVer="windows-11-enterprise" ;;
|
||||||
"win2025-eval" )
|
"win2025-eval" )
|
||||||
type="server"
|
type="server"
|
||||||
winVer="windows-server-2025" ;;
|
winVer="windows-server-2025" ;;
|
||||||
@@ -316,9 +300,7 @@ downloadWindowsEval() {
|
|||||||
culture=$(getLanguage "$lang" "culture")
|
culture=$(getLanguage "$lang" "culture")
|
||||||
|
|
||||||
local country="${culture#*-}"
|
local country="${culture#*-}"
|
||||||
local link=""
|
local link="" links page
|
||||||
local links=""
|
|
||||||
local page=""
|
|
||||||
local url="https://www.microsoft.com/en-us/evalcenter/download-$winVer"
|
local url="https://www.microsoft.com/en-us/evalcenter/download-$winVer"
|
||||||
|
|
||||||
enabled "$DEBUG" && echo "Parsing download page: ${url}"
|
enabled "$DEBUG" && echo "Parsing download page: ${url}"
|
||||||
@@ -336,7 +318,7 @@ downloadWindowsEval() {
|
|||||||
|
|
||||||
enabled "$DEBUG" && echo "Getting download link.."
|
enabled "$DEBUG" && echo "Getting download link.."
|
||||||
|
|
||||||
filter="https://go.microsoft.com/fwlink/?linkid=[0-9]\+&clcid=0x[0-9a-z]\+&culture=${culture,,}&country=${country,,}"
|
local filter="https://go.microsoft.com/fwlink/?linkid=[0-9]\+&clcid=0x[0-9a-z]\+&culture=${culture,,}&country=${country,,}"
|
||||||
|
|
||||||
if ! echo "$page" | grep -io "$filter" > /dev/null; then
|
if ! echo "$page" | grep -io "$filter" > /dev/null; then
|
||||||
filter="https://go.microsoft.com/fwlink/p/?linkid=[0-9]\+&clcid=0x[0-9a-z]\+&culture=${culture,,}&country=${country,,}"
|
filter="https://go.microsoft.com/fwlink/p/?linkid=[0-9]\+&clcid=0x[0-9a-z]\+&culture=${culture,,}&country=${country,,}"
|
||||||
@@ -354,17 +336,18 @@ downloadWindowsEval() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
case "$type" in
|
case "$type" in
|
||||||
"iot" | "ltsc" )
|
"iot" )
|
||||||
case "${PLATFORM,,}" in
|
case "${PLATFORM,,}" in
|
||||||
"x64" )
|
"x64" )
|
||||||
if [[ "$winVer" != "windows-10"* ]]; then
|
link=$(echo "$links" | head -n 1) ;;
|
||||||
link=$(echo "$links" | head -n 1)
|
|
||||||
else
|
|
||||||
link=$(echo "$links" | head -n 4 | tail -n 1)
|
|
||||||
fi ;;
|
|
||||||
"arm64" )
|
"arm64" )
|
||||||
link=$(echo "$links" | head -n 2 | tail -n 1) ;;
|
link=$(echo "$links" | head -n 2 | tail -n 1) ;;
|
||||||
esac ;;
|
esac ;;
|
||||||
|
"ltsc" )
|
||||||
|
case "${PLATFORM,,}" in
|
||||||
|
"x64" )
|
||||||
|
link=$(echo "$links" | head -n 2 | tail -n 1) ;;
|
||||||
|
esac ;;
|
||||||
"enterprise" )
|
"enterprise" )
|
||||||
case "${PLATFORM,,}" in
|
case "${PLATFORM,,}" in
|
||||||
"x64" )
|
"x64" )
|
||||||
@@ -397,15 +380,18 @@ downloadWindowsEval() {
|
|||||||
--head \
|
--head \
|
||||||
-- "$link" || return 1
|
-- "$link" || return 1
|
||||||
|
|
||||||
|
local lower="${link,,}"
|
||||||
|
local separator='(^|[[:space:]_./-])'
|
||||||
|
|
||||||
case "${PLATFORM,,}" in
|
case "${PLATFORM,,}" in
|
||||||
"x64" )
|
"x64" )
|
||||||
if [[ "${link,,}" != *"x64"* ]]; then
|
if [[ "$lower" =~ ${separator}(arm64|a64) ]]; then
|
||||||
echo "Found download link: $link"
|
echo "Found download link: $link"
|
||||||
error "Download link is for the wrong platform? Please report this at $SUPPORT/issues"
|
error "Download link is for the wrong platform? Please report this at $SUPPORT/issues"
|
||||||
return 1
|
return 1
|
||||||
fi ;;
|
fi ;;
|
||||||
"arm64" )
|
"arm64" )
|
||||||
if [[ "${link,,}" != *"a64"* && "${link,,}" != *"arm64"* ]]; then
|
if [[ "$lower" =~ ${separator}(x64|x86|amd64) ]]; then
|
||||||
if enabled "$DEBUG"; then
|
if enabled "$DEBUG"; then
|
||||||
echo "Found download link: $link"
|
echo "Found download link: $link"
|
||||||
echo "Link for ARM platform currently not available!"
|
echo "Link for ARM platform currently not available!"
|
||||||
@@ -415,35 +401,148 @@ downloadWindowsEval() {
|
|||||||
esac
|
esac
|
||||||
|
|
||||||
if enabled "$DEBUG" && enabled "$VERIFY" && [[ "${lang,,}" == "en"* ]]; then
|
if enabled "$DEBUG" && enabled "$VERIFY" && [[ "${lang,,}" == "en"* ]]; then
|
||||||
|
|
||||||
compare=$(getMido "$id" "$lang" "")
|
compare=$(getMido "$id" "$lang" "")
|
||||||
if [[ "${link,,}" != "${compare,,}" ]]; then
|
|
||||||
echo "Retrieved link does not match the fixed link: $compare"
|
if [ -n "$compare" ]; then
|
||||||
|
link_name="${link%%[?#]*}"
|
||||||
|
link_name="${link_name##*/}"
|
||||||
|
|
||||||
|
compare_name="${compare%%[?#]*}"
|
||||||
|
compare_name="${compare_name##*/}"
|
||||||
|
|
||||||
|
if [[ "${link_name,,}" != "${compare_name,,}" ]]; then
|
||||||
|
echo "Retrieved ISO file $link_name does not match the pre-defined filename: $compare_name"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
MIDO_URL="$link"
|
MIDO_URL="$link"
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getMidoDetected() {
|
||||||
|
|
||||||
|
# Return the answer-file identity for the Microsoft source that actually
|
||||||
|
# succeeded without changing the global DETECTED value.
|
||||||
|
|
||||||
|
local version="${1,,}"
|
||||||
|
local source="${2,,}"
|
||||||
|
local current="$3"
|
||||||
|
local default="$version"
|
||||||
|
local detected
|
||||||
|
|
||||||
|
[ -z "$source" ] && source="$version"
|
||||||
|
|
||||||
|
# Preserve a DETECTED value that existed before SUGGEST was assigned.
|
||||||
|
if enabled "${DETECTED_ORG:-}"; then
|
||||||
|
echo "$current"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Derive the normal answer-file identity from the requested download route.
|
||||||
|
case "$default" in
|
||||||
|
*"-enterprise-ltsc-eval" )
|
||||||
|
default="${default%-enterprise-ltsc-eval}-ltsc"
|
||||||
|
;;
|
||||||
|
*"-enterprise-iot-eval" )
|
||||||
|
default="${default%-enterprise-iot-eval}-iot"
|
||||||
|
;;
|
||||||
|
*"-eval" )
|
||||||
|
default="${default%-eval}"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Preserve a genuinely different DETECTED override.
|
||||||
|
if [ -n "$current" ] && [[ "${current,,}" != "$default" ]]; then
|
||||||
|
echo "$current"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Select the answer-file identity for the source that actually succeeded.
|
||||||
|
case "$source" in
|
||||||
|
*"-enterprise-ltsc-eval" )
|
||||||
|
detected="${source%-enterprise-ltsc-eval}-ltsc-eval"
|
||||||
|
;;
|
||||||
|
*"-enterprise-iot-eval" )
|
||||||
|
detected="${source%-enterprise-iot-eval}-iot-eval"
|
||||||
|
;;
|
||||||
|
*"-eval" )
|
||||||
|
detected="$source"
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
detected="${current:-$default}"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
echo "$detected"
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
downloadWindowsLtsc() {
|
||||||
|
|
||||||
|
local id="$1"
|
||||||
|
local lang="$2"
|
||||||
|
local desc="$3"
|
||||||
|
local alternate alternate_desc
|
||||||
|
|
||||||
|
case "${id,,}" in
|
||||||
|
"win11${PLATFORM,,}-enterprise-iot-eval" )
|
||||||
|
alternate="win11${PLATFORM,,}-enterprise-ltsc-eval"
|
||||||
|
;;
|
||||||
|
"win11${PLATFORM,,}-enterprise-ltsc-eval" )
|
||||||
|
alternate="win11${PLATFORM,,}-enterprise-iot-eval"
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
error "Invalid VERSION specified, value \"$id\" is not recognized!"
|
||||||
|
return 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if downloadWindowsEval "$id" "$lang" "$desc" > /dev/null 2>&1; then
|
||||||
|
MIDO_SOURCE="$id"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
alternate_desc=$(printEdition "$alternate" "$alternate" "Y")
|
||||||
|
|
||||||
|
info "Primary download source failed, trying $alternate_desc instead..."
|
||||||
|
|
||||||
|
if downloadWindowsEval "$alternate" "$lang" "$alternate_desc"; then
|
||||||
|
MIDO_SOURCE="$alternate"
|
||||||
|
warn "the requested $desc was unavailable, using $alternate_desc instead."
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
getWindows() {
|
getWindows() {
|
||||||
|
|
||||||
local version="$1"
|
local version="$1"
|
||||||
local lang="$2"
|
local lang="$2"
|
||||||
local desc="$3"
|
local desc="$3"
|
||||||
|
local web_desc="$4"
|
||||||
local language edition
|
local language edition
|
||||||
|
|
||||||
|
MIDO_SOURCE=""
|
||||||
language=$(getLanguage "$lang" "desc")
|
language=$(getLanguage "$lang" "desc")
|
||||||
edition=$(printEdition "$version" "$desc")
|
edition=$(printEdition "$version" "$desc" "Y")
|
||||||
|
|
||||||
local msg="Requesting $desc from the Microsoft servers..."
|
local msg="Requesting $desc from the Microsoft servers..."
|
||||||
info "$msg" && html "$msg"
|
local web_msg="Requesting $web_desc from the Microsoft servers..."
|
||||||
|
info "$msg" && html "$web_msg"
|
||||||
|
|
||||||
case "${version,,}" in
|
case "${version,,}" in
|
||||||
"win2008r2" | "win81${PLATFORM,,}"* | "win10${PLATFORM,,}-enterprise"* | \
|
"win2008r2"* | \
|
||||||
"win11${PLATFORM,,}-enterprise-iot"* | "win11${PLATFORM,,}-enterprise-ltsc"* )
|
"win81${PLATFORM,,}"* | \
|
||||||
|
"win10${PLATFORM,,}-enterprise"* | \
|
||||||
|
"win11${PLATFORM,,}-enterprise-iot-eval" )
|
||||||
if [[ "${lang,,}" != "en" && "${lang,,}" != "en-"* ]]; then
|
if [[ "${lang,,}" != "en" && "${lang,,}" != "en-"* ]]; then
|
||||||
error "No download in the $language language available for $edition!"
|
error "No download in the $language language available for $edition!"
|
||||||
MIDO_URL="" && return 1
|
MIDO_URL=""
|
||||||
|
return 1
|
||||||
fi ;;
|
fi ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
@@ -453,28 +552,57 @@ getWindows() {
|
|||||||
* )
|
* )
|
||||||
if [[ "${PLATFORM,,}" != "x64" ]]; then
|
if [[ "${PLATFORM,,}" != "x64" ]]; then
|
||||||
error "No download for the ${PLATFORM^^} platform available for $edition!"
|
error "No download for the ${PLATFORM^^} platform available for $edition!"
|
||||||
MIDO_URL="" && return 1
|
MIDO_URL=""
|
||||||
|
return 1
|
||||||
fi ;;
|
fi ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
case "${version,,}" in
|
case "${version,,}" in
|
||||||
"win11${PLATFORM,,}" )
|
"win11${PLATFORM,,}" )
|
||||||
downloadWindows "$version" "$lang" "$edition" && return 0
|
|
||||||
|
if downloadWindows "$version" "$lang" "$edition"; then
|
||||||
|
MIDO_SOURCE="$version"
|
||||||
|
return 0
|
||||||
|
fi ;;
|
||||||
|
|
||||||
|
"win11${PLATFORM,,}-enterprise-iot-eval" | \
|
||||||
|
"win11${PLATFORM,,}-enterprise-ltsc-eval" )
|
||||||
|
|
||||||
|
downloadWindowsLtsc "$version" "$lang" "$edition" && return 0
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"win11${PLATFORM,,}-enterprise"* )
|
"win11${PLATFORM,,}-enterprise"* )
|
||||||
downloadWindowsEval "$version" "$lang" "$edition" && return 0
|
|
||||||
|
if downloadWindowsEval "$version" "$lang" "$edition"; then
|
||||||
|
MIDO_SOURCE="$version"
|
||||||
|
return 0
|
||||||
|
fi ;;
|
||||||
|
|
||||||
|
"win2025-eval" | "win2022-eval" | "win2019-eval" | \
|
||||||
|
"win2019-hv" | "win2016-eval" | "win2012r2-eval" )
|
||||||
|
|
||||||
|
if downloadWindowsEval "$version" "$lang" "$edition"; then
|
||||||
|
MIDO_SOURCE="$version"
|
||||||
|
return 0
|
||||||
|
fi ;;
|
||||||
|
|
||||||
|
"win2008r2"*| "win81${PLATFORM,,}"* | "win10${PLATFORM,,}-enterprise"* ) ;;
|
||||||
|
|
||||||
|
* )
|
||||||
|
error "Invalid VERSION specified, value \"$version\" is not recognized!"
|
||||||
|
return 1
|
||||||
;;
|
;;
|
||||||
"win2025-eval" | "win2022-eval" | "win2019-eval" | "win2019-hv" | "win2016-eval" | "win2012r2-eval" )
|
|
||||||
downloadWindowsEval "$version" "$lang" "$edition" && return 0
|
|
||||||
;;
|
|
||||||
"win2008r2" | "win81${PLATFORM,,}"* | "win10${PLATFORM,,}-enterprise"* )
|
|
||||||
;;
|
|
||||||
* ) error "Invalid VERSION specified, value \"$version\" is not recognized!" ;;
|
|
||||||
esac
|
esac
|
||||||
|
|
||||||
MIDO_URL=$(getMido "$version" "$lang" "")
|
MIDO_URL=$(getMido "$version" "$lang" "")
|
||||||
[ -z "$MIDO_URL" ] && return 1
|
[ -z "$MIDO_URL" ] && return 1
|
||||||
|
|
||||||
|
if [[ "${version,,}" == "win2008r2"* ]]; then
|
||||||
|
MIDO_SOURCE="win2008r2-eval"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
MIDO_SOURCE="$version"
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -573,7 +701,7 @@ getESD() {
|
|||||||
local xmlFile="products.xml"
|
local xmlFile="products.xml"
|
||||||
local esdFile="esd_edition.xml"
|
local esdFile="esd_edition.xml"
|
||||||
local filterFile="products_filter.xml"
|
local filterFile="products_filter.xml"
|
||||||
local log query rc=0 reason=""
|
local log
|
||||||
|
|
||||||
file=$(getCatalog "$version" "file")
|
file=$(getCatalog "$version" "file")
|
||||||
catalog=$(getCatalog "$version" "url")
|
catalog=$(getCatalog "$version" "url")
|
||||||
@@ -595,16 +723,20 @@ getESD() {
|
|||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
log=$(mktemp)
|
if ! log=$(mktemp -p "$QEMU_DIR"); then
|
||||||
|
error "Failed to create a temporary wget log."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
{
|
{
|
||||||
LC_ALL=C wget "$catalog" -O "$dir/$file" --no-verbose --timeout=30 \
|
LC_ALL=C wget "$catalog" -O "$dir/$file" --no-verbose --timeout=30 \
|
||||||
--no-http-keep-alive --output-file="$log"
|
--no-http-keep-alive --output-file="$log"
|
||||||
rc=$?
|
local rc=$?
|
||||||
} || :
|
} || :
|
||||||
|
|
||||||
if (( rc != 0 )); then
|
if (( rc != 0 )); then
|
||||||
|
|
||||||
|
local reason
|
||||||
reason=$(sed -n \
|
reason=$(sed -n \
|
||||||
-e 's/^wget: //p' \
|
-e 's/^wget: //p' \
|
||||||
-e 's/^[0-9-]\{10\} [0-9:]\{8\} ERROR //p' \
|
-e 's/^[0-9-]\{10\} [0-9:]\{8\} ERROR //p' \
|
||||||
@@ -645,12 +777,12 @@ getESD() {
|
|||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -s "$dir/$xmlFile" ]; then
|
if [ ! -f "$dir/$xmlFile" ] || [ ! -s "$dir/$xmlFile" ]; then
|
||||||
error "Failed to find $xmlFile in $file!"
|
error "Failed to find $xmlFile in $file!"
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
query='//File[Architecture="'${PLATFORM,,}'"]'"${edition}"''
|
local query='//File[Architecture="'${PLATFORM,,}'"]'"${edition}"''
|
||||||
result=$(xmllint --nonet --xpath "${query}" "$dir/$xmlFile" 2>/dev/null || true)
|
result=$(xmllint --nonet --xpath "${query}" "$dir/$xmlFile" 2>/dev/null || true)
|
||||||
|
|
||||||
if [ -z "$result" ]; then
|
if [ -z "$result" ]; then
|
||||||
@@ -659,7 +791,7 @@ getESD() {
|
|||||||
result=$(xmllint --nonet --xpath "${query}" "$dir/$xmlFile" 2>/dev/null || true)
|
result=$(xmllint --nonet --xpath "${query}" "$dir/$xmlFile" 2>/dev/null || true)
|
||||||
|
|
||||||
if [ -z "$result" ]; then
|
if [ -z "$result" ]; then
|
||||||
desc=$(printEdition "$version" "$desc")
|
desc=$(printEdition "$version" "$desc" "Y")
|
||||||
language=$(getLanguage "$lang" "desc")
|
language=$(getLanguage "$lang" "desc")
|
||||||
error "No download link available for $desc!"
|
error "No download link available for $desc!"
|
||||||
return 1
|
return 1
|
||||||
@@ -674,7 +806,7 @@ getESD() {
|
|||||||
result=$(xmllint --nonet --xpath "//File[LanguageCode=\"${culture,,}\"]" "$dir/$filterFile" 2>/dev/null || true)
|
result=$(xmllint --nonet --xpath "//File[LanguageCode=\"${culture,,}\"]" "$dir/$filterFile" 2>/dev/null || true)
|
||||||
|
|
||||||
if [ -z "$result" ]; then
|
if [ -z "$result" ]; then
|
||||||
desc=$(printEdition "$version" "$desc")
|
desc=$(printEdition "$version" "$desc" "Y")
|
||||||
language=$(getLanguage "$lang" "desc")
|
language=$(getLanguage "$lang" "desc")
|
||||||
error "No download in the $language language available for $desc!"
|
error "No download in the $language language available for $desc!"
|
||||||
return 1
|
return 1
|
||||||
@@ -732,8 +864,8 @@ verifyFile() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local hash=""
|
|
||||||
local algo="SHA256"
|
local algo="SHA256"
|
||||||
|
local hash
|
||||||
|
|
||||||
[ -z "$check" ] && return 0
|
[ -z "$check" ] && return 0
|
||||||
! enabled "$VERIFY" && return 0
|
! enabled "$VERIFY" && return 0
|
||||||
@@ -743,15 +875,31 @@ verifyFile() {
|
|||||||
info "$msg" && html "$msg"
|
info "$msg" && html "$msg"
|
||||||
|
|
||||||
if [[ "${algo,,}" != "sha256" ]]; then
|
if [[ "${algo,,}" != "sha256" ]]; then
|
||||||
if ! hash=$(sha1sum "$iso" | cut -f1 -d' '); then
|
|
||||||
|
hash=$(sha1sum "$iso" | cut -f1 -d' ') || {
|
||||||
|
local rc=$?
|
||||||
|
|
||||||
|
if (( rc >= 129 )); then
|
||||||
|
exit "$rc"
|
||||||
|
fi
|
||||||
|
|
||||||
error "Failed to calculate SHA1 checksum for $iso!"
|
error "Failed to calculate SHA1 checksum for $iso!"
|
||||||
return 1
|
return 1
|
||||||
fi
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
if ! hash=$(sha256sum "$iso" | cut -f1 -d' '); then
|
|
||||||
|
hash=$(sha256sum "$iso" | cut -f1 -d' ') || {
|
||||||
|
local rc=$?
|
||||||
|
|
||||||
|
if (( rc >= 129 )); then
|
||||||
|
exit "$rc"
|
||||||
|
fi
|
||||||
|
|
||||||
error "Failed to calculate SHA256 checksum for $iso!"
|
error "Failed to calculate SHA256 checksum for $iso!"
|
||||||
return 1
|
return 1
|
||||||
fi
|
}
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$hash" == "$check" ]]; then
|
if [[ "$hash" == "$check" ]]; then
|
||||||
@@ -766,119 +914,31 @@ downloadFile() {
|
|||||||
|
|
||||||
local iso="$1"
|
local iso="$1"
|
||||||
local url="$2"
|
local url="$2"
|
||||||
local sum="$3"
|
local size="$3"
|
||||||
local size="$4"
|
local desc="$4"
|
||||||
local lang="$5"
|
local web_desc="$5"
|
||||||
local desc="$6"
|
local connections="${6:-1}"
|
||||||
local reason=""
|
local msg="Downloading $web_desc"
|
||||||
local msg="Downloading $desc"
|
local console_msg="Downloading $desc"
|
||||||
local rc total total_gb progress log
|
local domain dots
|
||||||
local domain dots agent space folder
|
|
||||||
|
|
||||||
agent=$(getAgent)
|
|
||||||
|
|
||||||
if [ -n "$size" ] && [[ "$size" != "0" ]]; then
|
|
||||||
|
|
||||||
folder=$(dirname -- "$iso")
|
|
||||||
|
|
||||||
if ! space=$(df --output=avail -B 1 "$folder" | tail -n 1); then
|
|
||||||
error "Failed to check free space in $folder!"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
total_gb=$(formatBytes "$space")
|
|
||||||
(( size > space )) && error "Not enough free space to download file, only $total_gb left!" && return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check if running with interactive TTY or redirected to docker log
|
|
||||||
if [ -t 1 ]; then
|
|
||||||
progress="--progress=bar:noscroll"
|
|
||||||
else
|
|
||||||
progress="--progress=dot:giga"
|
|
||||||
fi
|
|
||||||
|
|
||||||
html "$msg..."
|
|
||||||
/run/progress.sh "$iso" "$size" "$msg ([P])..." &
|
|
||||||
|
|
||||||
domain=$(echo "$url" | awk -F/ '{print $3}')
|
domain=$(echo "$url" | awk -F/ '{print $3}')
|
||||||
dots=$(echo "$domain" | tr -cd '.' | wc -c)
|
dots=$(echo "$domain" | tr -cd '.' | wc -c)
|
||||||
(( dots > 1 )) && domain=$(expr "$domain" : '.*\.\(.*\..*\)')
|
(( dots > 1 )) && domain=$(expr "$domain" : '.*\.\(.*\..*\)')
|
||||||
|
|
||||||
if [ -n "$domain" ] && [[ "${domain,,}" != *"microsoft.com" ]]; then
|
if [ -n "$domain" ] && [[ "${domain,,}" != *"microsoft.com" ]]; then
|
||||||
msg="Downloading $desc from $domain"
|
console_msg="Downloading $desc from $domain"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
info "$msg..."
|
info "$console_msg..."
|
||||||
log=$(mktemp)
|
|
||||||
enabled "$DEBUG" && echo "Downloading: $url"
|
|
||||||
|
|
||||||
{
|
downloadToFile \
|
||||||
LC_ALL=C wget "$url" -O "$iso" --continue --no-verbose --timeout=30 \
|
"$url" \
|
||||||
--no-http-keep-alive --user-agent "$agent" --show-progress "$progress" \
|
"$iso" \
|
||||||
--output-file="$log"
|
"$msg" \
|
||||||
rc=$?
|
"${size:-0}" \
|
||||||
} || :
|
"$connections" \
|
||||||
|
"Y"
|
||||||
fKill "progress.sh"
|
|
||||||
|
|
||||||
if (( rc != 0 )); then
|
|
||||||
reason=$(sed -n \
|
|
||||||
-e 's/^wget: //p' \
|
|
||||||
-e 's/^[0-9-]\{10\} [0-9:]\{8\} ERROR //p' \
|
|
||||||
"$log" | tail -n 1)
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -f "$log"
|
|
||||||
|
|
||||||
if (( rc == 0 )) && [ -f "$iso" ]; then
|
|
||||||
|
|
||||||
if ! total=$(stat -c%s "$iso"); then
|
|
||||||
error "Failed to determine downloaded file size: $iso"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
total_gb=$(formatBytes "$total")
|
|
||||||
|
|
||||||
if [ "$total" -lt 100000000 ]; then
|
|
||||||
error "Invalid download link: $url (is only $total_gb ?). Please report this at $SUPPORT/issues"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
verifyFile "$iso" "$size" "$total" "$sum" || return 1
|
|
||||||
|
|
||||||
isCompressed "$url" && UNPACK="Y"
|
|
||||||
|
|
||||||
html "Download finished successfully..."
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
msg="Failed to download $url"
|
|
||||||
|
|
||||||
if (( rc == 3 )); then
|
|
||||||
error "$msg because the file could not be written (disk full?)."
|
|
||||||
elif [ -n "$reason" ]; then
|
|
||||||
error "$msg: ${reason%.}."
|
|
||||||
else
|
|
||||||
error "$msg with exit status $rc."
|
|
||||||
fi
|
|
||||||
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
delay() {
|
|
||||||
|
|
||||||
local i
|
|
||||||
local delay="$1"
|
|
||||||
local msg="Will retry in X seconds..."
|
|
||||||
|
|
||||||
info "${msg/X/$delay}"
|
|
||||||
|
|
||||||
for i in $(seq "$delay" -1 1); do
|
|
||||||
html "${msg/X/$i}"
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
|
|
||||||
return 0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tryDownload() {
|
tryDownload() {
|
||||||
@@ -887,17 +947,77 @@ tryDownload() {
|
|||||||
local url="$2"
|
local url="$2"
|
||||||
local sum="$3"
|
local sum="$3"
|
||||||
local size="$4"
|
local size="$4"
|
||||||
local lang="$5"
|
|
||||||
local desc="$6"
|
local desc="$6"
|
||||||
local seconds="$7"
|
local seconds="$7"
|
||||||
|
local web_desc="$8"
|
||||||
|
local total
|
||||||
|
|
||||||
rm -f "$iso"
|
if downloadRetry \
|
||||||
downloadFile "$iso" "$url" "$sum" "$size" "$lang" "$desc" && return 0
|
"$iso" \
|
||||||
delay "$seconds"
|
"${CONNECTIONS:-1}" \
|
||||||
downloadFile "$iso" "$url" "$sum" "$size" "$lang" "$desc" && return 0
|
"$seconds" \
|
||||||
rm -f "$iso"
|
"$desc" \
|
||||||
|
"100000000" \
|
||||||
|
"$iso" \
|
||||||
|
"$url" \
|
||||||
|
"$size" \
|
||||||
|
"$desc" \
|
||||||
|
"$web_desc"; then
|
||||||
|
local rc=0
|
||||||
|
else
|
||||||
|
local rc=$?
|
||||||
|
fi
|
||||||
|
|
||||||
|
(( rc == 0 )) || return "$rc"
|
||||||
|
|
||||||
|
# The shared helper already inspected the file, so this should
|
||||||
|
# only fail if the downloaded file was removed unexpectedly afterward.
|
||||||
|
if ! total=$(stat -c%s -- "$iso" 2>/dev/null); then
|
||||||
|
error "Failed to determine downloaded file size: $iso"
|
||||||
return 1
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Status 2 means the completed download failed deterministic validation.
|
||||||
|
if ! verifyFile "$iso" "$size" "$total" "$sum"; then
|
||||||
|
if ! rm -f -- "$iso" "$iso.aria2"; then
|
||||||
|
warn "failed to remove invalid download \"$iso\"!"
|
||||||
|
fi
|
||||||
|
return 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Extract the .iso from the compressed archive if needed.
|
||||||
|
isCompressed "$url" && UNPACK="Y"
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
fallbackEnglish() {
|
||||||
|
|
||||||
|
local iso="$1"
|
||||||
|
local version="$2"
|
||||||
|
local lang="$3"
|
||||||
|
local desc="$4"
|
||||||
|
local web_desc="$5"
|
||||||
|
local culture web_msg
|
||||||
|
|
||||||
|
local msg="No working download method was found for $desc, falling back to English..."
|
||||||
|
info "$msg"
|
||||||
|
|
||||||
|
# Preserve the requested regional format and keyboard layout.
|
||||||
|
culture=$(getLanguage "$lang" "culture")
|
||||||
|
[ -z "$REGION" ] && REGION="$culture"
|
||||||
|
[ -z "$KEYBOARD" ] && KEYBOARD="$culture"
|
||||||
|
|
||||||
|
# Keep the original language-specific ISO filename so that restarts
|
||||||
|
# still locate the same image, but use English installation media.
|
||||||
|
LANGUAGE="en"
|
||||||
|
|
||||||
|
if ! rm -f -- "$iso"; then
|
||||||
|
error "Failed to remove ISO file \"$iso\" !"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
downloadImage "$iso" "$version" "$LANGUAGE"
|
||||||
}
|
}
|
||||||
|
|
||||||
downloadImage() {
|
downloadImage() {
|
||||||
@@ -905,17 +1025,20 @@ downloadImage() {
|
|||||||
local iso="$1"
|
local iso="$1"
|
||||||
local version="$2"
|
local version="$2"
|
||||||
local lang="$3"
|
local lang="$3"
|
||||||
|
local requested="$version"
|
||||||
local tried="n"
|
local tried="n"
|
||||||
local success="n"
|
local success="n"
|
||||||
local seconds="5"
|
local seconds="5"
|
||||||
local url sum size base desc language i
|
local detected="$DETECTED"
|
||||||
|
local url sum size base desc web_desc language i
|
||||||
|
|
||||||
if [[ "${version,,}" == "http"* ]]; then
|
if [[ "${version,,}" == "http"* ]]; then
|
||||||
|
|
||||||
base=$(basename "$iso")
|
base=$(basename "$iso")
|
||||||
desc=$(fromFile "$base")
|
desc=$(fromFile "$base")
|
||||||
|
web_desc="$desc"
|
||||||
|
|
||||||
tryDownload "$iso" "$version" "" "" "" "$desc" "$seconds" && return 0
|
tryDownload "$iso" "$version" "" "" "" "$desc" "$seconds" "$web_desc" && return 0
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -924,15 +1047,22 @@ downloadImage() {
|
|||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
desc=$(printVersion "$version" "")
|
desc=$(printVariant "$version" "" "Y")
|
||||||
|
web_desc=$(printVariant "$version" "")
|
||||||
|
|
||||||
if [[ "${lang,,}" != "en" && "${lang,,}" != "en-"* ]]; then
|
if [[ "${lang,,}" != "en" && "${lang,,}" != "en-"* ]]; then
|
||||||
|
|
||||||
language=$(getLanguage "$lang" "desc")
|
language=$(getLanguage "$lang" "desc")
|
||||||
|
|
||||||
if ! validVersion "$version" "$lang"; then
|
if ! validVersion "$version" "$lang"; then
|
||||||
desc=$(printEdition "$version" "$desc")
|
desc=$(printEdition "$version" "$desc" "Y")
|
||||||
error "The $language language version of $desc is not available, please switch to English."
|
web_desc=$(printEdition "$version" "$web_desc")
|
||||||
|
desc+=" in $language"
|
||||||
|
|
||||||
|
fallbackEnglish "$iso" "$version" "$lang" "$desc" "$web_desc" && return 0
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
desc+=" in $language"
|
desc+=" in $language"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -941,33 +1071,46 @@ downloadImage() {
|
|||||||
tried="y"
|
tried="y"
|
||||||
success="n"
|
success="n"
|
||||||
|
|
||||||
if getWindows "$version" "$lang" "$desc"; then
|
if getWindows "$version" "$lang" "$desc" "$web_desc"; then
|
||||||
success="y"
|
success="y"
|
||||||
else
|
else
|
||||||
delay "$seconds"
|
delay "$seconds"
|
||||||
getWindows "$version" "$lang" "$desc" && success="y"
|
getWindows "$version" "$lang" "$desc" "$web_desc" && success="y"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$success" == "y" ]]; then
|
if [[ "$success" == "y" ]]; then
|
||||||
|
|
||||||
|
detected=$(getMidoDetected "$version" "$MIDO_SOURCE" "$DETECTED")
|
||||||
url=$(getMido "$version" "$lang" "")
|
url=$(getMido "$version" "$lang" "")
|
||||||
|
|
||||||
sum=""
|
sum=""
|
||||||
size=""
|
size=""
|
||||||
|
|
||||||
|
# Skip verification if the retrieved URL differs from the static URL.
|
||||||
if [[ "${MIDO_URL%%\?*}" == "${url%%\?*}" ]]; then
|
if [[ "${MIDO_URL%%\?*}" == "${url%%\?*}" ]]; then
|
||||||
size=$(getMido "$version" "$lang" "size")
|
size=$(getMido "$version" "$lang" "size")
|
||||||
sum=$(getMido "$version" "$lang" "sum")
|
sum=$(getMido "$version" "$lang" "sum")
|
||||||
else
|
|
||||||
enabled "$DEBUG" && echo "Skipping verification because the retrieved URL differs from the static URL."
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
tryDownload "$iso" "$MIDO_URL" "$sum" "$size" "$lang" "$desc" "$seconds" && return 0
|
if tryDownload "$iso" "$MIDO_URL" "$sum" "$size" "$lang" "$desc" "$seconds" "$web_desc"; then
|
||||||
|
# Commit the candidate only after the image was downloaded and verified.
|
||||||
|
DETECTED="$detected"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
switchEdition "$version"
|
if switchEdition version; then
|
||||||
|
|
||||||
|
desc=$(printVariant "$DETECTED" "" "Y")
|
||||||
|
web_desc=$(printVariant "$DETECTED" "")
|
||||||
|
|
||||||
|
if [[ "${lang,,}" != "en" && "${lang,,}" != "en-"* ]]; then
|
||||||
|
desc+=" in $language"
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
if isESD "$version" "$lang"; then
|
if isESD "$version" "$lang"; then
|
||||||
|
|
||||||
@@ -986,16 +1129,17 @@ downloadImage() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$success" == "y" ]]; then
|
if [[ "$success" == "y" ]]; then
|
||||||
|
|
||||||
ISO="${ISO%.*}.esd"
|
ISO="${ISO%.*}.esd"
|
||||||
|
|
||||||
if tryDownload "$ISO" "$ESD" "$ESD_SUM" "$ESD_SIZE" "$lang" "$desc" "$seconds"; then
|
if tryDownload "$ISO" "$ESD" "$ESD_SUM" "$ESD_SIZE" "$lang" "$desc" "$seconds" "$web_desc"; then
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ISO="$iso"
|
ISO="$iso"
|
||||||
fi
|
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
for ((i=1;i<=MIRRORS;i++)); do
|
for ((i=1;i<=MIRRORS;i++)); do
|
||||||
|
|
||||||
@@ -1011,11 +1155,17 @@ downloadImage() {
|
|||||||
size=$(getSize "$i" "$version" "$lang")
|
size=$(getSize "$i" "$version" "$lang")
|
||||||
sum=$(getHash "$i" "$version" "$lang")
|
sum=$(getHash "$i" "$version" "$lang")
|
||||||
|
|
||||||
tryDownload "$iso" "$url" "$sum" "$size" "$lang" "$desc" "$seconds" && return 0
|
tryDownload "$iso" "$url" "$sum" "$size" "$lang" "$desc" "$seconds" "$web_desc" && return 0
|
||||||
fi
|
|
||||||
|
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
if [[ "${lang,,}" != "en" && "${lang,,}" != "en-"* ]]; then
|
||||||
|
if fallbackEnglish "$iso" "$requested" "$lang" "$desc" "$web_desc"; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+59
-176
@@ -2,68 +2,18 @@
|
|||||||
set -Eeuo pipefail
|
set -Eeuo pipefail
|
||||||
|
|
||||||
: "${SHUTDOWN:="Y"}" # Graceful ACPI shutdown
|
: "${SHUTDOWN:="Y"}" # Graceful ACPI shutdown
|
||||||
: "${TIMEOUT:="115"}" # QEMU termination timeout
|
: "${TIMEOUT:="105"}" # QEMU termination timeout
|
||||||
|
|
||||||
# Configure QEMU for graceful shutdown
|
# Configure QEMU for graceful shutdown
|
||||||
|
|
||||||
|
SHUTDOWN_SKIP=0
|
||||||
|
SHUTDOWN_SIGNAL=0
|
||||||
|
|
||||||
QEMU_PTY="$QEMU_DIR/qemu.pty"
|
QEMU_PTY="$QEMU_DIR/qemu.pty"
|
||||||
QEMU_END="$QEMU_DIR/qemu.end"
|
QEMU_END="$QEMU_DIR/qemu.end"
|
||||||
|
CONSOLE_PID="$QEMU_DIR/console.pid"
|
||||||
_trap() {
|
CONSOLE_SOCKET="$QEMU_DIR/console.sock"
|
||||||
|
QEMU_START_PID="$QEMU_DIR/qemu.start.pid"
|
||||||
local func="$1"; shift
|
|
||||||
local sig
|
|
||||||
TRAP_PID=$BASHPID
|
|
||||||
|
|
||||||
for sig; do
|
|
||||||
trap "$func $sig" "$sig"
|
|
||||||
done
|
|
||||||
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
signalCode() {
|
|
||||||
|
|
||||||
local sig="$1"
|
|
||||||
|
|
||||||
case "$sig" in
|
|
||||||
SIGHUP) echo 129 ;;
|
|
||||||
SIGINT) echo 130 ;;
|
|
||||||
SIGQUIT) echo 131 ;;
|
|
||||||
SIGABRT) echo 134 ;;
|
|
||||||
SIGTERM) echo 143 ;;
|
|
||||||
*) echo 0 ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
displayReason() {
|
|
||||||
|
|
||||||
local reason="$1"
|
|
||||||
|
|
||||||
case "$reason" in
|
|
||||||
129 ) echo "SIGHUP" ;;
|
|
||||||
130 ) echo "SIGINT" ;;
|
|
||||||
131 ) echo "SIGQUIT" ;;
|
|
||||||
134 ) echo "SIGABRT" ;;
|
|
||||||
143 ) echo "SIGTERM" ;;
|
|
||||||
* ) echo "$reason" ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
readQemuPid() {
|
|
||||||
|
|
||||||
local -n _pid="$1"
|
|
||||||
|
|
||||||
if [ ! -s "$QEMU_PID" ] || ! read -r _pid <"$QEMU_PID"; then
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
bootFailed() {
|
bootFailed() {
|
||||||
|
|
||||||
@@ -84,14 +34,20 @@ boot() {
|
|||||||
if [ -s "$QEMU_PTY" ]; then
|
if [ -s "$QEMU_PTY" ]; then
|
||||||
if [ "$(stat -c%s "$QEMU_PTY")" -gt 7 ]; then
|
if [ "$(stat -c%s "$QEMU_PTY")" -gt 7 ]; then
|
||||||
if ! bootFailed; then
|
if ! bootFailed; then
|
||||||
info "$(app) started successfully, visit http://127.0.0.1:8006/ to view the screen..."
|
|
||||||
|
if [[ "${DISPLAY,,}" == "web" ]] && ! disabled "${WEB:-Y}"; then
|
||||||
|
info "$(app) started successfully, visit http://127.0.0.1:$WEB_PORT/ to view the screen..."
|
||||||
|
else
|
||||||
|
info "$(app) started successfully."
|
||||||
|
fi
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
error "Timeout while waiting for QEMU to boot the machine, aborting..."
|
error "Timeout while waiting for QEMU to boot the machine, aborting..."
|
||||||
sKill "$QEMU_PID"
|
terminateQemu
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
@@ -125,22 +81,6 @@ ready() {
|
|||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
forceKillQemu() {
|
|
||||||
|
|
||||||
local reason="$1"
|
|
||||||
local pid=""
|
|
||||||
local display
|
|
||||||
|
|
||||||
! readQemuPid pid && return 0
|
|
||||||
! isAlive "$pid" && return 0
|
|
||||||
|
|
||||||
display=$(displayReason "$reason")
|
|
||||||
error "Forcefully terminating $(app), reason: $display..."
|
|
||||||
{ disown "$pid" || :; kill -9 -- "$pid" || :; } 2>/dev/null
|
|
||||||
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
markWindowsBooted() {
|
markWindowsBooted() {
|
||||||
|
|
||||||
local file="$STORAGE/windows.boot"
|
local file="$STORAGE/windows.boot"
|
||||||
@@ -170,22 +110,14 @@ markWindowsBooted() {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
cleanupHelpers() {
|
|
||||||
|
|
||||||
local pids=( "${SMB_PID:-}" "${NMB_PID:-}" "${DDN_PID:-}" \
|
|
||||||
"${TPM_PID:-}" "${WSD_PID:-}" "${WEB_PID:-}" \
|
|
||||||
"${AUX_PID:-}" "${AUDIO_PID:-}" "${PASST_PID:-}" \
|
|
||||||
"${DNSMASQ_PID:-}" "${BALLOONING_PID:-}" )
|
|
||||||
|
|
||||||
mKill "${pids[@]}"
|
|
||||||
|
|
||||||
closeNetwork
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
finish() {
|
finish() {
|
||||||
|
|
||||||
local reason=$1
|
local reason=$1 failed=0
|
||||||
|
|
||||||
|
if [ ! -f "$QEMU_END" ] && (( reason != 0 )); then
|
||||||
|
failed=1
|
||||||
|
fi
|
||||||
|
|
||||||
touch "$QEMU_END"
|
touch "$QEMU_END"
|
||||||
|
|
||||||
forceKillQemu "$reason"
|
forceKillQemu "$reason"
|
||||||
@@ -194,129 +126,76 @@ finish() {
|
|||||||
markWindowsBooted
|
markWindowsBooted
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cleanupHelpers
|
cleanupHelpers \
|
||||||
|
"${SMB_PID:-}" \
|
||||||
|
"${NMB_PID:-}" \
|
||||||
|
"${DDN_PID:-}"
|
||||||
|
|
||||||
if ! waitPidFile "$QEMU_PID" 10; then
|
if ! waitQemuExit 10; then
|
||||||
warn "Timed out while waiting for $(app) to exit!"
|
warn "Timed out while waiting for $(app) to exit!"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
(( reason != 1 )) && echo && echo "❯ Shutdown completed!"
|
echo
|
||||||
|
|
||||||
|
if (( failed == 0 )); then
|
||||||
|
echo "❯ Shutdown completed!"
|
||||||
|
else
|
||||||
|
error "QEMU exited unexpectedly!"
|
||||||
|
fi
|
||||||
|
|
||||||
exit "$reason"
|
exit "$reason"
|
||||||
}
|
}
|
||||||
|
|
||||||
normalizeTimeout() {
|
|
||||||
|
|
||||||
local term_grace=3 # seconds before loop ends to send SIGTERM
|
|
||||||
local cleanup_grace=3 # seconds reserved after the loop for cleanup
|
|
||||||
local min
|
|
||||||
|
|
||||||
TIMEOUT=$(strip "$TIMEOUT")
|
|
||||||
if [[ ! "$TIMEOUT" =~ ^[0-9]+$ ]]; then
|
|
||||||
TIMEOUT=115
|
|
||||||
fi
|
|
||||||
|
|
||||||
if (( TIMEOUT >= 30 )); then
|
|
||||||
term_grace=5
|
|
||||||
cleanup_grace=5
|
|
||||||
elif (( TIMEOUT >= 15 )); then
|
|
||||||
term_grace=4
|
|
||||||
cleanup_grace=4
|
|
||||||
fi
|
|
||||||
|
|
||||||
min=$((term_grace + cleanup_grace + 1))
|
|
||||||
(( TIMEOUT < min )) && (( TIMEOUT = min ))
|
|
||||||
|
|
||||||
wait_until=$((TIMEOUT - cleanup_grace))
|
|
||||||
sigterm_at=$((wait_until - term_grace))
|
|
||||||
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
sendAcpiShutdown() {
|
|
||||||
|
|
||||||
[ ! -S "$QEMU_DIR/monitor.sock" ] && return 0
|
|
||||||
|
|
||||||
# Send ACPI shutdown signal
|
|
||||||
nc -q 1 -w 1 -U "$QEMU_DIR/monitor.sock" &> /dev/null <<<'system_powerdown' || :
|
|
||||||
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
abortDuringSetup() {
|
abortDuringSetup() {
|
||||||
|
|
||||||
local code="$1"
|
local code="$1"
|
||||||
|
|
||||||
info "Cannot send ACPI signal during $(app) setup, aborting..."
|
info "Cannot send ACPI signal during $(app) setup, aborting..."
|
||||||
|
|
||||||
sKill "$QEMU_PID"
|
terminateQemu
|
||||||
|
|
||||||
if ! waitPidFile "$QEMU_PID" 5; then
|
if ! waitQemuExit 10; then
|
||||||
warn "Timed out while waiting for $(app) to exit!"
|
warn "Timed out while waiting for $(app) to exit!"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
finish "$code"
|
finish "$code"
|
||||||
}
|
}
|
||||||
|
|
||||||
waitForShutdown() {
|
gracefulShutdown() {
|
||||||
|
|
||||||
local cnt=0
|
|
||||||
local pid="$1"
|
|
||||||
local name="$APP"
|
|
||||||
local slp
|
|
||||||
|
|
||||||
while (( cnt <= wait_until )); do
|
|
||||||
|
|
||||||
sleep 1 &
|
|
||||||
slp=$!
|
|
||||||
|
|
||||||
# Stop waiting if the process has exited
|
|
||||||
! isAlive "$pid" && break
|
|
||||||
|
|
||||||
# Workaround for stale/zombie QEMU pid file
|
|
||||||
[ ! -s "$QEMU_PID" ] && break
|
|
||||||
|
|
||||||
if (( cnt == sigterm_at )); then
|
|
||||||
info "${name^} is still running, sending SIGTERM... ($cnt/$wait_until)"
|
|
||||||
kill -15 -- "$pid" 2>/dev/null || :
|
|
||||||
elif (( cnt > 0 )); then
|
|
||||||
info "Waiting for $name to shut down... ($cnt/$wait_until)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
sendAcpiShutdown
|
|
||||||
|
|
||||||
wait "$slp"
|
|
||||||
(( cnt++ ))
|
|
||||||
|
|
||||||
done
|
|
||||||
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
graceful_shutdown() {
|
|
||||||
|
|
||||||
local sig="$1"
|
local sig="$1"
|
||||||
local pid=""
|
local pid code
|
||||||
local code=0
|
|
||||||
|
|
||||||
[[ $BASHPID != "$TRAP_PID" ]] && return
|
[[ $BASHPID != "$TRAP_PID" ]] && return
|
||||||
|
|
||||||
code=$(signalCode "$sig")
|
code=$(signalCode "$sig")
|
||||||
|
|
||||||
if [ -f "$QEMU_END" ]; then
|
if [ -f "$QEMU_END" ]; then
|
||||||
echo && info "Received $1 signal while already shutting down..."
|
|
||||||
|
if (( code == 130 && SHUTDOWN_SIGNAL == code )); then
|
||||||
|
SHUTDOWN_SKIP=1
|
||||||
|
echo && info "Received SIGINT again, forcing shutdown..."
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo && info "Received $sig signal while already shutting down..."
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
set +e
|
set +e
|
||||||
|
SHUTDOWN_SIGNAL=$code
|
||||||
|
|
||||||
touch "$QEMU_END"
|
touch "$QEMU_END"
|
||||||
echo && info "Received $1 signal, sending ACPI shutdown signal..."
|
echo && info "Received $sig signal, sending ACPI shutdown signal..."
|
||||||
|
|
||||||
if ! readQemuPid pid; then
|
if ! readQemuPid pid; then
|
||||||
warn "QEMU PID file ($QEMU_PID) does not exist?"
|
if ! interactive || ! waitQemuPid pid; then
|
||||||
|
warn "QEMU PID file does not exist?"
|
||||||
finish "$code"
|
finish "$code"
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
if ! isAlive "$pid"; then
|
if [ -z "$pid" ] || ! isAlive "$pid"; then
|
||||||
warn "QEMU process with PID $pid does not exist?"
|
warn "QEMU process with PID $pid does not exist?"
|
||||||
finish "$code"
|
finish "$code"
|
||||||
fi
|
fi
|
||||||
@@ -325,7 +204,7 @@ graceful_shutdown() {
|
|||||||
abortDuringSetup "$code"
|
abortDuringSetup "$code"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
normalizeTimeout
|
normalizeTimeout 105
|
||||||
waitForShutdown "$pid"
|
waitForShutdown "$pid"
|
||||||
|
|
||||||
finish "$code"
|
finish "$code"
|
||||||
@@ -334,6 +213,10 @@ graceful_shutdown() {
|
|||||||
! enabled "$SHUTDOWN" && return 0
|
! enabled "$SHUTDOWN" && return 0
|
||||||
[ -n "${QEMU_TIMEOUT:-}" ] && TIMEOUT="$QEMU_TIMEOUT"
|
[ -n "${QEMU_TIMEOUT:-}" ] && TIMEOUT="$QEMU_TIMEOUT"
|
||||||
|
|
||||||
_trap graceful_shutdown SIGTERM SIGHUP SIGABRT SIGQUIT
|
if interactive; then
|
||||||
|
_trap gracefulShutdown SIGINT
|
||||||
|
fi
|
||||||
|
|
||||||
|
_trap gracefulShutdown SIGTERM SIGHUP SIGABRT SIGQUIT
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
|
|||||||
+10
-4
@@ -24,8 +24,7 @@ configureNetwork() {
|
|||||||
hostname="$UPLINK"
|
hostname="$UPLINK"
|
||||||
interfaces="$DEV"
|
interfaces="$DEV"
|
||||||
|
|
||||||
return 0
|
else
|
||||||
fi
|
|
||||||
|
|
||||||
hostname="host.lan"
|
hostname="host.lan"
|
||||||
|
|
||||||
@@ -39,6 +38,13 @@ configureNetwork() {
|
|||||||
interfaces+=",$SAMBA_INTERFACE"
|
interfaces+=",$SAMBA_INTERFACE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
netbios="${hostname%%.*}"
|
||||||
|
netbios="${netbios:0:15}"
|
||||||
|
|
||||||
|
[ -z "$netbios" ] && netbios="host"
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -81,7 +87,7 @@ addShare() {
|
|||||||
local name="$3"
|
local name="$3"
|
||||||
local comment="$4"
|
local comment="$4"
|
||||||
local cfg="$5"
|
local cfg="$5"
|
||||||
local owner=""
|
local owner
|
||||||
local tmp="/tmp/smb"
|
local tmp="/tmp/smb"
|
||||||
|
|
||||||
if [ ! -d "$dir" ]; then
|
if [ ! -d "$dir" ]; then
|
||||||
@@ -145,7 +151,7 @@ writeConfig() {
|
|||||||
if ! {
|
if ! {
|
||||||
echo "[global]"
|
echo "[global]"
|
||||||
echo " server string = Dockur"
|
echo " server string = Dockur"
|
||||||
echo " netbios name = $hostname"
|
echo " netbios name = $netbios"
|
||||||
echo " workgroup = WORKGROUP"
|
echo " workgroup = WORKGROUP"
|
||||||
echo " interfaces = $interfaces"
|
echo " interfaces = $interfaces"
|
||||||
echo " bind interfaces only = yes"
|
echo " bind interfaces only = yes"
|
||||||
|
|||||||
Reference in New Issue
Block a user