aboutsummaryrefslogtreecommitdiffstats
path: root/coin/provisioning/common
diff options
context:
space:
mode:
Diffstat (limited to 'coin/provisioning/common')
-rwxr-xr-xcoin/provisioning/common/linux/android_linux.sh4
-rwxr-xr-xcoin/provisioning/common/linux/docker.sh7
-rw-r--r--coin/provisioning/common/shared/testserver/.gitattributes1
-rw-r--r--coin/provisioning/common/shared/testserver/apache2_18.04/Dockerfile4
-rw-r--r--coin/provisioning/common/shared/testserver/californium/Dockerfile15
-rw-r--r--coin/provisioning/common/shared/testserver/cyrus/Dockerfile4
-rw-r--r--coin/provisioning/common/shared/testserver/cyrus_18.04/Dockerfile4
-rw-r--r--coin/provisioning/common/shared/testserver/danted_18.04/Dockerfile4
-rwxr-xr-xcoin/provisioning/common/shared/testserver/docker_images.sh (renamed from coin/provisioning/common/linux/docker_testserver.sh)26
-rwxr-xr-xcoin/provisioning/common/shared/testserver/docker_machine.sh7
-rwxr-xr-x[-rw-r--r--]coin/provisioning/common/shared/testserver/docker_testserver.sh (renamed from coin/provisioning/common/shared/testserver/testserver_util.sh)30
-rw-r--r--coin/provisioning/common/shared/testserver/echo/Dockerfile4
-rw-r--r--coin/provisioning/common/shared/testserver/echo_18.04/Dockerfile4
-rw-r--r--coin/provisioning/common/shared/testserver/freecoap/Dockerfile20
-rw-r--r--coin/provisioning/common/shared/testserver/ftp-proxy_18.04/Dockerfile4
-rw-r--r--coin/provisioning/common/shared/testserver/iptables/Dockerfile4
-rw-r--r--coin/provisioning/common/shared/testserver/iptables_18.04/Dockerfile4
-rw-r--r--coin/provisioning/common/shared/testserver/settings.sh5
-rw-r--r--coin/provisioning/common/shared/testserver/squid_18.04/Dockerfile4
-rw-r--r--coin/provisioning/common/shared/testserver/vsftpd_18.04/Dockerfile4
-rw-r--r--coin/provisioning/common/windows/android-openssl.ps12
-rw-r--r--coin/provisioning/common/windows/android.ps14
-rw-r--r--coin/provisioning/common/windows/disable-schedule-tasks.ps188
-rw-r--r--coin/provisioning/common/windows/disable-update-orchestrator.ps116
-rw-r--r--coin/provisioning/common/windows/disable-windows-file-protector.ps14
-rw-r--r--coin/provisioning/common/windows/disable-windows-update-medic.ps125
-rw-r--r--coin/provisioning/common/windows/disable-windows-updates.ps14
-rw-r--r--coin/provisioning/common/windows/helpers.ps132
28 files changed, 171 insertions, 163 deletions
diff --git a/coin/provisioning/common/linux/android_linux.sh b/coin/provisioning/common/linux/android_linux.sh
index b83c1c6e..44bd2281 100755
--- a/coin/provisioning/common/linux/android_linux.sh
+++ b/coin/provisioning/common/linux/android_linux.sh
@@ -51,13 +51,13 @@ basePath="http://ci-files01-hki.intra.qt.io/input/android"
toolsVersion="r26.1.1"
toolsFile="sdk-tools-linux-4333796.zip"
-ndkVersion="r19c"
+ndkVersion="r20"
ndkFile="android-ndk-$ndkVersion-linux-x86_64.zip"
sdkBuildToolsVersion="28.0.3"
sdkApiLevel="android-28"
toolsSha1="8c7c28554a32318461802c1291d76fccfafde054"
-ndkSha1="fd94d0be6017c6acbd193eb95e09cf4b6f61b834"
+ndkSha1="8665fc84a1b1f0d6ab3b5fdd1e30200cc7b9adff"
toolsTargetFile="/tmp/$toolsFile"
toolsSourceFile="$basePath/$toolsFile"
diff --git a/coin/provisioning/common/linux/docker.sh b/coin/provisioning/common/linux/docker.sh
index 08303700..9ce8b73b 100755
--- a/coin/provisioning/common/linux/docker.sh
+++ b/coin/provisioning/common/linux/docker.sh
@@ -2,7 +2,7 @@
#############################################################################
##
-## Copyright (C) 2018 The Qt Company Ltd.
+## Copyright (C) 2019 The Qt Company Ltd.
## Contact: http://www.qt.io/licensing/
##
## This file is part of the provisioning scripts of the Qt Toolkit.
@@ -56,7 +56,7 @@ sudo apt-get -y install ./containerd.io*.deb ./docker-ce*.deb ./docker-ce-cli*.
rm -f ./containerd.io*.deb ./docker-ce*.deb ./docker-ce-cli*.deb
sudo usermod -a -G docker $USER
-sudo docker info
+sudo docker --version
# Download and install the docker-compose extension from https://github.com/docker/compose/releases
f=docker-compose-$(uname -s)-$(uname -m)
@@ -65,10 +65,11 @@ DownloadURL \
https://github.com/docker/compose/releases/download/1.24.1/$f \
cfb3439956216b1248308141f7193776fcf4b9c9b49cbbe2fb07885678e2bb8a
sudo install -m 755 ./docker-compose* /usr/local/bin/docker-compose
+sudo docker-compose --version
rm ./docker-compose*
# Install Avahi to discover Docker containers in the test network
sudo apt-get install avahi-daemon -y
# Start testserver provisioning
-source "${BASH_SOURCE%/*}/docker_testserver.sh"
+sudo "$(readlink -f $(dirname ${BASH_SOURCE[0]}))/../shared/testserver/docker_testserver.sh"
diff --git a/coin/provisioning/common/shared/testserver/.gitattributes b/coin/provisioning/common/shared/testserver/.gitattributes
new file mode 100644
index 00000000..fcadb2cf
--- /dev/null
+++ b/coin/provisioning/common/shared/testserver/.gitattributes
@@ -0,0 +1 @@
+* text eol=lf
diff --git a/coin/provisioning/common/shared/testserver/apache2_18.04/Dockerfile b/coin/provisioning/common/shared/testserver/apache2_18.04/Dockerfile
new file mode 100644
index 00000000..dff9fe43
--- /dev/null
+++ b/coin/provisioning/common/shared/testserver/apache2_18.04/Dockerfile
@@ -0,0 +1,4 @@
+FROM ubuntu:18.04
+ARG packages="apache2 libcgi-session-perl avahi-daemon"
+RUN apt-get update && apt-get install -y $packages && dpkg -l $packages
+EXPOSE 80 443
diff --git a/coin/provisioning/common/shared/testserver/californium/Dockerfile b/coin/provisioning/common/shared/testserver/californium/Dockerfile
new file mode 100644
index 00000000..90722510
--- /dev/null
+++ b/coin/provisioning/common/shared/testserver/californium/Dockerfile
@@ -0,0 +1,15 @@
+FROM ubuntu:18.04
+
+RUN apt-get update && apt-get -y install git maven default-jdk avahi-daemon
+
+RUN mkdir -p /root/src/
+
+# Get californium-based CoAP test server
+WORKDIR /root/src
+RUN git clone https://github.com/selart/californium.git
+WORKDIR /root/src/californium
+RUN mvn clean install -q -DskipTests
+
+WORKDIR /
+
+EXPOSE 5683/udp 5684/udp
diff --git a/coin/provisioning/common/shared/testserver/cyrus/Dockerfile b/coin/provisioning/common/shared/testserver/cyrus/Dockerfile
new file mode 100644
index 00000000..55486175
--- /dev/null
+++ b/coin/provisioning/common/shared/testserver/cyrus/Dockerfile
@@ -0,0 +1,4 @@
+FROM ubuntu:16.04
+ARG packages="cyrus-imapd avahi-daemon"
+RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y $packages && dpkg -l $packages
+EXPOSE 143 993
diff --git a/coin/provisioning/common/shared/testserver/cyrus_18.04/Dockerfile b/coin/provisioning/common/shared/testserver/cyrus_18.04/Dockerfile
new file mode 100644
index 00000000..2e525ec6
--- /dev/null
+++ b/coin/provisioning/common/shared/testserver/cyrus_18.04/Dockerfile
@@ -0,0 +1,4 @@
+FROM ubuntu:18.04
+ARG packages="cyrus-imapd avahi-daemon"
+RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y $packages && dpkg -l $packages
+EXPOSE 143 993
diff --git a/coin/provisioning/common/shared/testserver/danted_18.04/Dockerfile b/coin/provisioning/common/shared/testserver/danted_18.04/Dockerfile
new file mode 100644
index 00000000..f48794af
--- /dev/null
+++ b/coin/provisioning/common/shared/testserver/danted_18.04/Dockerfile
@@ -0,0 +1,4 @@
+FROM ubuntu:18.04
+ARG packages="dante-server avahi-daemon"
+RUN apt-get update && apt-get install -y $packages && dpkg -l $packages
+EXPOSE 1080-1081
diff --git a/coin/provisioning/common/linux/docker_testserver.sh b/coin/provisioning/common/shared/testserver/docker_images.sh
index 2d5d9611..e98183d8 100755
--- a/coin/provisioning/common/linux/docker_testserver.sh
+++ b/coin/provisioning/common/shared/testserver/docker_images.sh
@@ -2,7 +2,7 @@
#############################################################################
##
-## Copyright (C) 2018 The Qt Company Ltd.
+## Copyright (C) 2019 The Qt Company Ltd.
## Contact: http://www.qt.io/licensing/
##
## This file is part of the provisioning scripts of the Qt Toolkit.
@@ -35,14 +35,21 @@
set -ex
-case ${BASH_SOURCE[0]} in
- */linux/*) SERVER_PATH="${BASH_SOURCE[0]%/linux/*}/shared/testserver" ;;
- */*) SERVER_PATH="${BASH_SOURCE[0]%/*}/../shared/testserver" ;;
- *) SERVER_PATH="../shared/testserver" ;;
+[ -x "$(command -v realpath)" ] && FILE=$(realpath ${BASH_SOURCE[0]}) || FILE=${BASH_SOURCE[0]}
+case $FILE in
+ */*) SERVER_PATH="${FILE%/*}" ;;
+ *) SERVER_PATH="." ;;
esac
-# testserver shared scripts
-source "$SERVER_PATH/testserver_util.sh"
+# Sort files by their SHA-1, and then return the accumulated result
+sha1tree () {
+ # For example, macOS doesn't install sha1sum by default. In such case, it uses shasum instead.
+ [ -x "$(command -v sha1sum)" ] || SHASUM=shasum
+
+ find "$@" -type f -print0 | \
+ xargs -0 ${SHASUM-sha1sum} | cut -d ' ' -f 1 | \
+ sort | ${SHASUM-sha1sum} | cut -d ' ' -f 1
+}
# Using SHA-1 of each server context as the tag of docker images. A tag labels a
# specific image version. It is used by docker compose file (docker-compose.yml)
@@ -55,8 +62,7 @@ source "$SERVER_PATH/settings.sh"
for server in $testserver
do
context="$SERVER_PATH/$server"
- # Sort files by their SHA-1 and use the accumulated result as the TAG
- sudo docker build -t qt-test-server-$server:$(sha1tree $context) $context
+ docker build -t qt-test-server-$server:$(sha1tree $context) $context
done
-sudo docker images
+docker images
diff --git a/coin/provisioning/common/shared/testserver/docker_machine.sh b/coin/provisioning/common/shared/testserver/docker_machine.sh
index 601056a4..8d791074 100755
--- a/coin/provisioning/common/shared/testserver/docker_machine.sh
+++ b/coin/provisioning/common/shared/testserver/docker_machine.sh
@@ -2,7 +2,7 @@
#############################################################################
##
-## Copyright (C) 2018 The Qt Company Ltd.
+## Copyright (C) 2019 The Qt Company Ltd.
## Contact: http://www.qt.io/licensing/
##
## This file is part of the provisioning scripts of the Qt Toolkit.
@@ -40,8 +40,11 @@ TestMachine='qt-test-server'
# Deploy docker virtual machine (Boot2Docker) into VirtualBox only if it doesn't exist
if [ -z $(docker-machine ls -q --filter "name=$TestMachine") ]
then
- docker-machine create -d virtualbox $TestMachine
+ docker-machine create $@ $TestMachine
docker-machine ip $TestMachine
+else
+ # Otherwise, start the docker machine and update with new TLS certificates.
+ docker-machine start $TestMachine && docker-machine regenerate-certs -f $TestMachine
fi
# Switch the docker engine to $TestMachine
diff --git a/coin/provisioning/common/shared/testserver/testserver_util.sh b/coin/provisioning/common/shared/testserver/docker_testserver.sh
index c42fb5e0..3a7c87e8 100644..100755
--- a/coin/provisioning/common/shared/testserver/testserver_util.sh
+++ b/coin/provisioning/common/shared/testserver/docker_testserver.sh
@@ -1,6 +1,8 @@
+#!/usr/bin/env bash
+
#############################################################################
##
-## Copyright (C) 2018 The Qt Company Ltd.
+## Copyright (C) 2019 The Qt Company Ltd.
## Contact: http://www.qt.io/licensing/
##
## This file is part of the provisioning scripts of the Qt Toolkit.
@@ -33,9 +35,23 @@
set -ex
-# Sort files by their SHA-1, and then return the accumulated result
-sha1tree () {
- find "$@" -type f -print0 | \
- xargs -0 shasum | cut -d ' ' -f 1 | \
- sort | shasum | cut -d ' ' -f 1
-}
+[ -x "$(command -v realpath)" ] && FILE=$(realpath ${BASH_SOURCE[0]}) || FILE=${BASH_SOURCE[0]}
+case $FILE in
+ */*) SERVER_PATH="${FILE%/*}" ;;
+ *) SERVER_PATH="." ;;
+esac
+
+# Create docker virtual machine (Boot2docker)
+case $1 in
+ VMX) source "$SERVER_PATH/docker_machine.sh" "-d virtualbox" ;;
+ Hyper-V)
+ # The Hyper-v has been enabled in Windows 10. Disable checking the hardware virtualization.
+ source "$SERVER_PATH/docker_machine.sh" "-d virtualbox --virtualbox-no-vtx-check" ;;
+ *) ;;
+esac
+
+# Display system-wide information of docker-engine
+docker info
+
+# Create images
+$SERVER_PATH/docker_images.sh
diff --git a/coin/provisioning/common/shared/testserver/echo/Dockerfile b/coin/provisioning/common/shared/testserver/echo/Dockerfile
new file mode 100644
index 00000000..653ca714
--- /dev/null
+++ b/coin/provisioning/common/shared/testserver/echo/Dockerfile
@@ -0,0 +1,4 @@
+FROM ubuntu:16.04
+ARG packages="xinetd avahi-daemon"
+RUN apt-get update && apt-get install -y $packages && dpkg -l $packages
+EXPOSE 7 7/UDP 13
diff --git a/coin/provisioning/common/shared/testserver/echo_18.04/Dockerfile b/coin/provisioning/common/shared/testserver/echo_18.04/Dockerfile
new file mode 100644
index 00000000..37f488cb
--- /dev/null
+++ b/coin/provisioning/common/shared/testserver/echo_18.04/Dockerfile
@@ -0,0 +1,4 @@
+FROM ubuntu:18.04
+ARG packages="xinetd avahi-daemon"
+RUN apt-get update && apt-get install -y $packages && dpkg -l $packages
+EXPOSE 7 7/UDP 13
diff --git a/coin/provisioning/common/shared/testserver/freecoap/Dockerfile b/coin/provisioning/common/shared/testserver/freecoap/Dockerfile
new file mode 100644
index 00000000..2c665bd5
--- /dev/null
+++ b/coin/provisioning/common/shared/testserver/freecoap/Dockerfile
@@ -0,0 +1,20 @@
+FROM ubuntu:18.04
+
+RUN apt-get update && apt-get -y install git avahi-daemon autoconf automake libtool make libgnutls28-dev
+
+RUN mkdir -p /root/src/
+
+# Get FreeCoAP test server
+WORKDIR /root/src
+RUN git clone https://github.com/keith-cullen/FreeCoAP.git
+WORKDIR /root/src/FreeCoAP
+RUN autoreconf --install
+RUN ./configure
+RUN make
+RUN make install
+WORKDIR /root/src/FreeCoAP/sample/time_server
+RUN make
+
+WORKDIR /
+
+EXPOSE 5685/udp
diff --git a/coin/provisioning/common/shared/testserver/ftp-proxy_18.04/Dockerfile b/coin/provisioning/common/shared/testserver/ftp-proxy_18.04/Dockerfile
new file mode 100644
index 00000000..0e7146ba
--- /dev/null
+++ b/coin/provisioning/common/shared/testserver/ftp-proxy_18.04/Dockerfile
@@ -0,0 +1,4 @@
+FROM ubuntu:18.04
+ARG packages="ftp-proxy avahi-daemon"
+RUN apt-get update && apt-get install -y $packages && dpkg -l $packages
+EXPOSE 2121
diff --git a/coin/provisioning/common/shared/testserver/iptables/Dockerfile b/coin/provisioning/common/shared/testserver/iptables/Dockerfile
new file mode 100644
index 00000000..cbee61d4
--- /dev/null
+++ b/coin/provisioning/common/shared/testserver/iptables/Dockerfile
@@ -0,0 +1,4 @@
+FROM ubuntu:16.04
+ARG packages="iptables avahi-daemon"
+RUN apt-get update && apt-get install -y $packages && dpkg -l $packages
+EXPOSE 1357
diff --git a/coin/provisioning/common/shared/testserver/iptables_18.04/Dockerfile b/coin/provisioning/common/shared/testserver/iptables_18.04/Dockerfile
new file mode 100644
index 00000000..5865e9c8
--- /dev/null
+++ b/coin/provisioning/common/shared/testserver/iptables_18.04/Dockerfile
@@ -0,0 +1,4 @@
+FROM ubuntu:18.04
+ARG packages="iptables avahi-daemon"
+RUN apt-get update && apt-get install -y $packages && dpkg -l $packages
+EXPOSE 1357
diff --git a/coin/provisioning/common/shared/testserver/settings.sh b/coin/provisioning/common/shared/testserver/settings.sh
index 041661f2..27832773 100644
--- a/coin/provisioning/common/shared/testserver/settings.sh
+++ b/coin/provisioning/common/shared/testserver/settings.sh
@@ -1,6 +1,6 @@
#############################################################################
##
-## Copyright (C) 2018 The Qt Company Ltd.
+## Copyright (C) 2019 The Qt Company Ltd.
## Contact: http://www.qt.io/licensing/
##
## This file is part of the provisioning scripts of the Qt Toolkit.
@@ -34,4 +34,5 @@
set -ex
# A list of test servers to be provisioned
-testserver='apache2 squid vsftpd ftp-proxy danted'
+testserver='apache2 squid vsftpd ftp-proxy danted echo cyrus iptables californium freecoap'
+testserver="$testserver apache2_18.04 squid_18.04 vsftpd_18.04 ftp-proxy_18.04 danted_18.04 echo_18.04 cyrus_18.04 iptables_18.04"
diff --git a/coin/provisioning/common/shared/testserver/squid_18.04/Dockerfile b/coin/provisioning/common/shared/testserver/squid_18.04/Dockerfile
new file mode 100644
index 00000000..208feec7
--- /dev/null
+++ b/coin/provisioning/common/shared/testserver/squid_18.04/Dockerfile
@@ -0,0 +1,4 @@
+FROM ubuntu:18.04
+ARG packages="squid avahi-daemon"
+RUN apt-get update && apt-get install -y $packages && dpkg -l $packages
+EXPOSE 3128-3130
diff --git a/coin/provisioning/common/shared/testserver/vsftpd_18.04/Dockerfile b/coin/provisioning/common/shared/testserver/vsftpd_18.04/Dockerfile
new file mode 100644
index 00000000..843472fd
--- /dev/null
+++ b/coin/provisioning/common/shared/testserver/vsftpd_18.04/Dockerfile
@@ -0,0 +1,4 @@
+FROM ubuntu:18.04
+ARG packages="vsftpd avahi-daemon"
+RUN apt-get update && apt-get install -y $packages && dpkg -l $packages
+EXPOSE 20-21
diff --git a/coin/provisioning/common/windows/android-openssl.ps1 b/coin/provisioning/common/windows/android-openssl.ps1
index e4306584..d1877b64 100644
--- a/coin/provisioning/common/windows/android-openssl.ps1
+++ b/coin/provisioning/common/windows/android-openssl.ps1
@@ -51,7 +51,7 @@ $sha1 = "056057782325134b76d1931c48f2c7e6595d7ef4"
$destination = "C:\Utils\openssl-android-master"
# msys unix style paths
-$ndkPath = "/c/Utils/Android/android-ndk-r19c"
+$ndkPath = "/c/Utils/Android/android-ndk-r20"
$openssl_path = "/c/Utils/openssl-android-master"
$cc_path = "$ndkPath/toolchains/llvm/prebuilt/windows-x86_64/bin"
Download https://www.openssl.org/source/openssl-$version.tar.gz \\ci-files01-hki.intra.qt.io\provisioning\openssl\openssl-$version.tar.gz $zip
diff --git a/coin/provisioning/common/windows/android.ps1 b/coin/provisioning/common/windows/android.ps1
index def09116..537e14a2 100644
--- a/coin/provisioning/common/windows/android.ps1
+++ b/coin/provisioning/common/windows/android.ps1
@@ -40,10 +40,10 @@
# That's why we need to use Andoid-21 API version in Qt 5.9.
# NDK
-$ndkVersion = "r19c"
+$ndkVersion = "r20"
$ndkCachedUrl = "\\ci-files01-hki.intra.qt.io\provisioning\android\android-ndk-$ndkVersion-windows-x86_64.zip"
$ndkOfficialUrl = "https://dl.google.com/android/repository/android-ndk-$ndkVersion-windows-x86_64.zip"
-$ndkChecksum = "c4cd8c0b6e7618ca0a871a5f24102e40c239f6a3"
+$ndkChecksum = "36e1dc77fad08ad2498fb94b13ad8caf26bbd9df"
$ndkFolder = "c:\Utils\Android\android-ndk-$ndkVersion"
$ndkZip = "c:\Windows\Temp\android_ndk_$ndkVersion.zip"
diff --git a/coin/provisioning/common/windows/disable-schedule-tasks.ps1 b/coin/provisioning/common/windows/disable-schedule-tasks.ps1
deleted file mode 100644
index 351f10c6..00000000
--- a/coin/provisioning/common/windows/disable-schedule-tasks.ps1
+++ /dev/null
@@ -1,88 +0,0 @@
-. "$PSScriptRoot\helpers.ps1"
-
-# This script will remove unneeded Tasks from Task Scheduler
-
-# Application Experience 'Microsoft Compatibility Appraiser' - "Collects program telemetry information if opted-in to the Microsoft Customer Experience Improvement Program."
-DisableSchedulerTask "Application Experience\Microsoft Compatibility Appraiser"
-
-# Application Experience 'ProgramDataUpdater' - "Collects program telemetry information if opted-in to the Microsoft Customer Experience Improvement Program"
-DisableSchedulerTask "Application Experience\ProgramDataUpdater"
-
-# Autochk 'Proxy' - "This task collects and uploads autochk SQM data if opted-in to the Microsoft Customer Experience Improvement Program."
-DisableSchedulerTask "Autochk\Proxy"
-
-# Chkdsk 'ProactiveScan' - "NTFS Volume Health Scan"
-DisableSchedulerTask "Chkdsk\ProactiveScan"
-
-# Chkdsk 'SyspartRepair'
-DeleteSchedulerTask "Chkdsk\SyspartRepair"
-
-# Customer Experience Improvement Program 'Consolidator' - "If the user has consented to participate in the Windows Customer Experience Improvement Program, this job collects and sends usage data to Microsoft."
-DisableSchedulerTask "Customer Experience Improvement Program\Consolidator"
-
-# Customer Experience Improvement Program 'sbCeip' - "The USB CEIP (Customer Experience Improvement Program) task collects Universal Serial Bus related statistics and information about your machine and sends it to the Windows Device Connectivity engineering group at Microsoft. The information received is used to help improve the reliability, stability, and overall functionality of USB in Windows. If the user has not consented to participate in Windows CEIP, this task does not do anything."
-DisableSchedulerTask "Customer Experience Improvement Program\UsbCeip"
-
-# Device Information 'Device'
-DisableSchedulerTask "Device Information\Device"
-
-# Diagnosis 'Scheduled' - "The Windows Scheduled Maintenance Task performs periodic maintenance of the computer system by fixing problems automatically or reporting them through Security and Maintenance."
-DisableSchedulerTask "Diagnosis\Scheduled"
-
-# DiskDiagnostic 'Microsoft-Windows-DiskDiagnosticDataCollector' - "The Windows Disk Diagnostic reports general disk and system information to Microsoft for users participating in the Customer Experience Program."
-DisableSchedulerTask "DiskDiagnostic\Microsoft-Windows-DiskDiagnosticDataCollector"
-
-# ExploitGuard 'ExploitGuard MDM policy Refresh' - "Task for applying changes to the machine's Exploit Protection settings."
-DisableSchedulerTask "ExploitGuard\ExploitGuard MDM policy Refresh"
-
-# Feedback/Siuf 'DmClient'
-DisableSchedulerTask "Feedback\Siuf\DmClient"
-
-# Feedback/Siuf 'DmClient'OnScenarioDownload'
-DisableSchedulerTask "Feedback\Siuf\DmClientOnScenarioDownload"
-
-# File Classification Infrastructure 'Property Definition Sync'
-DisableSchedulerTask "File Classification Infrastructure\Property Definition Sync"
-
-# InstallService 'ScanForUpdates'
-DisableSchedulerTask "InstallService\ScanForUpdates"
-
-# InstallService 'ScanForUpdatesAsUser'
-DisableSchedulerTask "InstallService\ScanForUpdatesAsUser"
-
-# LanguageComponentsInstaller 'Installation' - "Install language components that match the user's language list."
-DisableSchedulerTask "LanguageComponentsInstaller\Installation"
-
-# LanguageComponentsInstaller 'ReconcileLanguageResources' - "Install language components that match the user's language list."
-DisableSchedulerTask "LanguageComponentsInstaller\ReconcileLanguageResources"
-
-# PI 'Secure-Boot-Update' - "This task updates the Secure Boot variables."
-DisableSchedulerTask "PI\Secure-Boot-Update"
-
-# PI 'Sqm-Tasks' - "This task gathers information about the Trusted Platform Module (TPM), Secure Boot, and Measured Boot."
-DisableSchedulerTask "PI\Sqm-Tasks"
-
-# Power Efficiency Diagnotics 'AnalyzeSystem' - "This task analyzes the system looking for conditions that may cause high energy use."
-DisableSchedulerTask "PushToInstall\Registration"
-
-# Servicing 'StartComponentCleanup'
-DisableSchedulerTask "Servicing\StartComponentCleanup"
-
-# SettingSync 'BackgroundUploadTask'
-DeleteSchedulerTask "SettingSync\BackgroundUploadTask"
-
-# SoftwareProtectionPlatform 'SvcRestartTask' - "This task restarts the Software Protection Platform service at the specified time"
-DeleteSchedulerTask "SoftwareProtectionPlatform\SvcRestartTask"
-
-# SoftwareProtectionPlatform 'SvcRestartTaskLogon' - "This task restarts the Software Protection Platform service at the specified time"
-DisableSchedulerTask "SoftwareProtectionPlatform\SvcRestartTaskLogon"
-
-# SoftwareProtectionPlatform 'SvcRestartTaskNetwork' - "This task restarts the Software Protection Platform service when a new network is detected"
-DisableSchedulerTask "SoftwareProtectionPlatform\SvcRestartTaskNetwork"
-
-# UNP 'RunUpdateNotificationMgr'
-DeleteSchedulerTask "UNP\RunUpdateNotificationMgr"
-
-
-
-
diff --git a/coin/provisioning/common/windows/disable-update-orchestrator.ps1 b/coin/provisioning/common/windows/disable-update-orchestrator.ps1
deleted file mode 100644
index 5ae8fb0d..00000000
--- a/coin/provisioning/common/windows/disable-update-orchestrator.ps1
+++ /dev/null
@@ -1,16 +0,0 @@
-# Disable UpdateOrchestrator
-
-$name = "UpdateOrchestrator"
-$path = "C:\Windows\System32\Tasks\Microsoft\Windows\$name"
-
-takeown /F $path /A /R
-icacls $path /grant Administrators:F /T
-SCHTASKS /Change /TN "Microsoft\Windows\$name\Reboot" /DISABLE
-del "$path\Schedule Scan"
-del "$path\Schedule Scan Static Task"
-del "$path\Backup Scan"
-del "$path\UpdateModelTask"
-del "$path\USO_UxBroker"
-
-# Disable Update orchestrator service
-reg.exe ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsoSvc" /V Start /T REG_dWORD /D 4 /F
diff --git a/coin/provisioning/common/windows/disable-windows-file-protector.ps1 b/coin/provisioning/common/windows/disable-windows-file-protector.ps1
deleted file mode 100644
index f1d09fb5..00000000
--- a/coin/provisioning/common/windows/disable-windows-file-protector.ps1
+++ /dev/null
@@ -1,4 +0,0 @@
-# Disable Windows File Protection
-# Windows File Protection feature in Microsoft Windows prevents programs from replacing critical Windows system files.
-
-reg.exe ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /V SFCDisable /T REG_dWORD /D 0xffffff9d /F
diff --git a/coin/provisioning/common/windows/disable-windows-update-medic.ps1 b/coin/provisioning/common/windows/disable-windows-update-medic.ps1
deleted file mode 100644
index 6accbd3b..00000000
--- a/coin/provisioning/common/windows/disable-windows-update-medic.ps1
+++ /dev/null
@@ -1,25 +0,0 @@
-# Windows Update Medic Service (WaaSMedicSvc)'PerformRemediation' helps recover update-related services to the supported configuration.
-# WaasMedicSvc keeps re-starting Windows Update, even if it disabled manually.
-# Even Admin user don't have privileged to disable PerformRemediation from Task Scheduler which means that WaaSMedicSvc.dll need's to be removed from the system
-
-$limit = (Get-Date).AddMinutes(20)
-$path = "C:\Windows\System32\WaaSMedicSvc.dll"
-
-DO {
- takeown /F $path
- icacls $path /grant Administrators:f
- Write-host "Deleting $path"
-
- Try {
- del $path
- }
- Catch [System.UnauthorizedAccessException] {
- Write-host "Access to the path '$path' is denied."
- Continue
- }
-
- if ((Get-Date) -gt $limit) {
- exit 1
- }
-
-}while (Test-Path -Path "$path")
diff --git a/coin/provisioning/common/windows/disable-windows-updates.ps1 b/coin/provisioning/common/windows/disable-windows-updates.ps1
index 87414f03..15644cfe 100644
--- a/coin/provisioning/common/windows/disable-windows-updates.ps1
+++ b/coin/provisioning/common/windows/disable-windows-updates.ps1
@@ -33,6 +33,8 @@
# This script disables the automatic Windows updates
+. "$PSScriptRoot\helpers.ps1"
+
$service = get-service wuauserv
if (-not $service) {
Write-Host "Windows Update service not found."
@@ -43,7 +45,7 @@ if ($service.Status -eq "Stopped") {
Write-Host "Windows Update service already stopped."
} else {
Write-Host "Stopping Windows Update service."
- Stop-Service -Name "wuauserv" -Force
+ Retry {Stop-Service -Name "wuauserv" -Force} 20 5
}
$startup = Get-WmiObject Win32_Service | Where-Object {$_.Name -eq "wuauserv"} | Select -ExpandProperty "StartMode"
diff --git a/coin/provisioning/common/windows/helpers.ps1 b/coin/provisioning/common/windows/helpers.ps1
index 3ccb42ac..8599791d 100644
--- a/coin/provisioning/common/windows/helpers.ps1
+++ b/coin/provisioning/common/windows/helpers.ps1
@@ -204,6 +204,38 @@ function Get-Proxy {
return (Get-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings').proxyServer
}
+function Retry{
+ <#
+ usage:
+ Retry{CODE}
+ Retry{CODE} <num of retries> <delay_s>
+ #delay is in seconds
+ #>
+ Param(
+ [Parameter(mandatory=$true)]
+ [scriptblock]$command,
+ [int][ValidateRange(1, 20)]$retry = 5,
+ [int][ValidateRange(1, 60)]$delay_s = 5
+ )
+ $success=$false
+ $retry_count=0
+ do{
+ try {
+ Invoke-Command -ScriptBlock $command
+ $success=$true
+ }
+ catch {
+ $retry_count++
+ Write-Host "Error: $_, try: $retry_count, retrying in $delay_s seconds"
+ Start-Sleep -Seconds $delay_s
+ }
+ } until ($success -or $retry+1 -le $retry_count)
+
+ if (-not $success) {
+ Throw("Failed to run command successfully in $retry_count tries")
+ }
+}
+
function Remove {
Param (