Provisioning: Add MSVC 2019 and upgrade MSVC 2017 to the latest version

Under coin/pre-provisioning can be found information what have been
provisioned to tier1 image

Visual studios are updated to versions:

MSVC 2019: version 16.3.1
MSVC 2017: version 15.9.16

Task-number: QTQAINFRA-2875
Change-Id: I3a9748296dcf088bb312dec8f78bdc59dfb281d1
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
This commit is contained in:
Heikki Halmet
2019-10-16 14:53:42 +03:00
parent 68189ab965
commit f1276acf5c
24 changed files with 324 additions and 30 deletions

View File

@@ -0,0 +1,11 @@
# List about manual pre-installations to Tier1 image:
Vmware tools: installed
Resolution: 1280 X 800
Coin setup (installed boostrap agent, disabled fast boot, disabled firewall (both public and private), disabled UAC, enabled autologin)
Remote Desktop Connection: enabled
Timezone: set to UTC
Administrator tools - services - Windows search: stop & disable
Power settings screen & slee: never
Turn windows features on or off -> Check the "SMB 1.0/CIFS File Sharing Support"

View File

@@ -0,0 +1,72 @@
#############################################################################
##
## 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.
##
## $QT_BEGIN_LICENSE:LGPL21$
## Commercial License Usage
## Licensees holding valid commercial Qt licenses may use this file in
## accordance with the commercial license agreement provided with the
## Software or, alternatively, in accordance with the terms contained in
## a written agreement between you and The Qt Company. For licensing terms
## and conditions see http://www.qt.io/terms-conditions. For further
## information use the contact form at http://www.qt.io/contact-us.
##
## GNU Lesser General Public License Usage
## Alternatively, this file may be used under the terms of the GNU Lesser
## General Public License version 2.1 or version 3 as published by the Free
## Software Foundation and appearing in the file LICENSE.LGPLv21 and
## LICENSE.LGPLv3 included in the packaging of this file. Please review the
## following information to ensure the GNU Lesser General Public License
## requirements will be met: https://www.gnu.org/licenses/lgpl.html and
## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
##
## As a special exception, The Qt Company gives you certain additional
## rights. These rights are described in The Qt Company LGPL Exception
## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
##
## $QT_END_LICENSE$
##
#############################################################################
# Windows 7 does not have Get-ScheduledTask and Unregister-ScheduledTask
# thus needing its own version.
Write-Host "Disabling defragmentation"
$version = Get-CimInstance Win32_OperatingSystem | Select-Object -ExpandProperty Caption
if ($version -like '*Windows 7*'){
$pi = New-Object System.Diagnostics.ProcessStartInfo
$pi.FileName = "C:\Windows\System32\schtasks.exe"
$pi.RedirectStandardError = $true
$pi.UseShellExecute = $false
$pi.Arguments = "/Delete /TN `"\Microsoft\Windows\Defrag\ScheduledDefrag`" /F"
$prog = New-Object System.Diagnostics.Process
$prog.StartInfo = $pi
$prog.Start() | Out-Null
$err = $prog.StandardError.ReadToEnd()
$prog.WaitForExit()
if ($prog.ExitCode -eq 0){
Write-Host "Scheduled defragmentation removed"
} else {
if ($err -like '*cannot find the file*'){
Write-Host "No scheduled defragmentation task found"
exit 0
} else {
Write-Host "Error while deleting scheduled defragmentation task: $err"
}
}
}
else {
try {
$state = (Get-ScheduledTask -ErrorAction Stop -TaskName "ScheduledDefrag").State
Write-Host "Scheduled defragmentation task found in state: $state"
}
catch {
Write-Host "No scheduled defragmentation task found"
exit 0
}
Write-Host "Unregistering scheduled defragmentation task"
Unregister-ScheduledTask -ErrorAction Stop -Confirm:$false -TaskName ScheduledDefrag
Write-Host "Scheduled Defragmentation task was cancelled"
}

View File

@@ -0,0 +1,4 @@
. "$PSScriptRoot\helpers.ps1"
# Disable the NTP from syncing
Run-Executable "w32tm.exe" "/config /syncfromflags:NO"

View File

@@ -0,0 +1,88 @@
. "$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"

View File

@@ -0,0 +1,16 @@
# 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

View File

@@ -0,0 +1,59 @@
###########################################################################
##
## 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.
##
## $QT_BEGIN_LICENSE:LGPL21$
## Commercial License Usage
## Licensees holding valid commercial Qt licenses may use this file in
## accordance with the commercial license agreement provided with the
## Software or, alternatively, in accordance with the terms contained in
## a written agreement between you and The Qt Company. For licensing terms
## and conditions see http://www.qt.io/terms-conditions. For further
## information use the contact form at http://www.qt.io/contact-us.
##
## GNU Lesser General Public License Usage
## Alternatively, this file may be used under the terms of the GNU Lesser
## General Public License version 2.1 or version 3 as published by the Free
## Software Foundation and appearing in the file LICENSE.LGPLv21 and
## LICENSE.LGPLv3 included in the packaging of this file. Please review the
## following information to ensure the GNU Lesser General Public License
## requirements will be met: https://www.gnu.org/licenses/lgpl.html and
## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
##
## As a special exception, The Qt Company gives you certain additional
## rights. These rights are described in The Qt Company LGPL Exception
## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
##
## $QT_END_LICENSE$
##
#############################################################################
# Turning off win defender.
#
# If disabled manually, windows will automatically enable it after
# some period of time. Disabling it speeds up the builds.
. "$PSScriptRoot\helpers.ps1"
Run-Executable "reg.exe" "ADD `"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender`" /V DisableAntiSpyware /T REG_dWORD /D 1 /F"
# 'Windows Defender Cache Maintenance' - "Periodic maintenance task."
DisableSchedulerTask "Windows Defender\Windows Defender Cache Maintenance"
# 'Windows Defender Cleanup' - "Periodic cleanup task."
DisableSchedulerTask "Windows Defender\Windows Defender Cleanup"
# 'Windows Defender Scheduled Scan' - "Periodic scan task."
DisableSchedulerTask "Windows Defender\Windows Defender Scheduled Scan"
# 'Windows Defender Verification' - "Periodic verification task."
DisableSchedulerTask "Windows Defender\Windows Defender Verification"
# Disable 'QueueReporting' - "Windows Error Reporting task to process queued reports."
DisableSchedulerTask "Windows Error Reporting\QueueReporting"
# Disable WindowsUpdate from Task Scheduler
DisableSchedulerTask "WindowsUpdate\Scheduled Start"

View File

@@ -0,0 +1,4 @@
# 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

View File

@@ -0,0 +1,25 @@
# 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")

View File

@@ -0,0 +1,54 @@
############################################################################
##
## Copyright (C) 2017 The Qt Company Ltd.
## Contact: http://www.qt.io/licensing/
##
## This file is part of the provisioning scripts of the Qt Toolkit.
##
## $QT_BEGIN_LICENSE:LGPL21$
## Commercial License Usage
## Licensees holding valid commercial Qt licenses may use this file in
## accordance with the commercial license agreement provided with the
## Software or, alternatively, in accordance with the terms contained in
## a written agreement between you and The Qt Company. For licensing terms
## and conditions see http://www.qt.io/terms-conditions. For further
## information use the contact form at http://www.qt.io/contact-us.
##
## GNU Lesser General Public License Usage
## Alternatively, this file may be used under the terms of the GNU Lesser
## General Public License version 2.1 or version 3 as published by the Free
## Software Foundation and appearing in the file LICENSE.LGPLv21 and
## LICENSE.LGPLv3 included in the packaging of this file. Please review the
## following information to ensure the GNU Lesser General Public License
## requirements will be met: https://www.gnu.org/licenses/lgpl.html and
## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
##
## As a special exception, The Qt Company gives you certain additional
## rights. These rights are described in The Qt Company LGPL Exception
## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
##
## $QT_END_LICENSE$
##
#############################################################################
# This script disables the automatic Windows updates
$service = get-service wuauserv
if (-not $service) {
Write-Host "Windows Update service not found."
exit 0
}
if ($service.Status -eq "Stopped") {
Write-Host "Windows Update service already stopped."
} else {
Write-Host "Stopping Windows Update service."
Stop-Service -Name "wuauserv" -Force
}
$startup = Get-WmiObject Win32_Service | Where-Object {$_.Name -eq "wuauserv"} | Select -ExpandProperty "StartMode"
if ($startup -ne "Disabled") {
set-service wuauserv -startup disabled
} else {
Write-Host "Windows Update service startup already disabled."
}

View File

@@ -34,7 +34,8 @@
# Visual Studio $version version $version_number was installed manually using $installer.
$version = "2017"
$version_number = "15.8.5"
# Current version was manually upgraded from the installer
$version_number = "15.9.16"
$installer = "http://ci-files01-hki.ci.local/input/windows/vs_professional__1312218103.1526017942.exe"
# Following components were selected from installer:

View File

@@ -0,0 +1,91 @@
############################################################################
##
## 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.
##
## $QT_BEGIN_LICENSE:LGPL21$
## Commercial License Usage
## Licensees holding valid commercial Qt licenses may use this file in
## accordance with the commercial license agreement provided with the
## Software or, alternatively, in accordance with the terms contained in
## a written agreement between you and The Qt Company. For licensing terms
## and conditions see http://www.qt.io/terms-conditions. For further
## information use the contact form at http://www.qt.io/contact-us.
##
## GNU Lesser General Public License Usage
## Alternatively, this file may be used under the terms of the GNU Lesser
## General Public License version 2.1 or version 3 as published by the Free
## Software Foundation and appearing in the file LICENSE.LGPLv21 and
## LICENSE.LGPLv3 included in the packaging of this file. Please review the
## following information to ensure the GNU Lesser General Public License
## requirements will be met: https://www.gnu.org/licenses/lgpl.html and
## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
##
## As a special exception, The Qt Company gives you certain additional
## rights. These rights are described in The Qt Company LGPL Exception
## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
##
## $QT_END_LICENSE$
##
#############################################################################
# Visual Studio $version version $version_number was installed manually using $installer.
$version = "2019"
# Current version was manually upgraded from the installer
$version_number = "16.3.2"
$installer = "http://ci-files01-hki.ci.local/input/windows/vs_professional__505064367.1547034421.exe"
.NET Framework 4.5 targeting pack
.NET Framework 4.5.1 targeting pack
.NET Framework 4.5.2 targeting pack
.NET Framework 4.6.1 SDK
.NET Framework 4.6.1 targeting pack
.NET Framework 4.6.2 SDK
.NET Framework 4.6.2 targeting pack
.NET Framework 4.7.2 SDK
.NET Framework 4.7.2 targeting pack
.NET Native
.NET Portable Library targeting pack
CLR data typer for SQL Sever
Connectivity and publishing tools
Data sources for SQL Server support
SQL ADAL runtime
SQL Server Command Linne Utilities
SQL Server Data Tools
SQL Server Express 2016 LocalDB
SQL Server ODBC Driver
ClickOnce Publishing
Developer Analytics tools
NuGet package manager
Text Template Transformation
C# and Visual Basic Roslyn compilers
C++ 2019 Redistributable Update
C++ Cmake tools for Windows
C++/CLI support for v142 build tools
MSBuild
MSVC v142 - VS 2019 C++ ARM build tools (v14.20)
MSVC v142 - VS 2019 C++ ARM64 build tools (v14.20)
MSVC v142 - VS 2019 C++ x64/x86 build tools (v14.20)
.NET profiling tools
C++ profiling tools
JavaScript diagnostics
Just-In-Time debugger
C# and Visual Basic
C++ core features
JavaSript and TypeScript language support
Razor Language Services
Graphics debugger and GPU profiler for DirectX
Image and 3D model editors
C++ ATL for v142 build tools (x86 & x64)
TypeScript 3.3 SDK
Windows 10 SDK (10.0.16299.0)
Windows 10 SDK (10.0.17134.0)
Windows 10 SDK (10.0.17763.0)
Windows 10 SDK (10.0.18362.0)
# NOTE! Work loads were added during installation!
echo "Visual Studio = $version version version_number" >> ~\versions.txt