From ba660eeefee571a06aba1183793753873e0248d9 Mon Sep 17 00:00:00 2001 From: Alexey Pustovalov Date: Fri, 5 Nov 2021 12:56:03 +0200 Subject: [PATCH 1/7] Fixed PCRE library link --- Dockerfiles/build-base/windows/Dockerfile.agent | 2 +- Dockerfiles/build-base/windows/Dockerfile.agent2 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfiles/build-base/windows/Dockerfile.agent b/Dockerfiles/build-base/windows/Dockerfile.agent index 71d255339..f0c952ba5 100644 --- a/Dockerfiles/build-base/windows/Dockerfile.agent +++ b/Dockerfiles/build-base/windows/Dockerfile.agent @@ -16,7 +16,7 @@ ARG VS_BUILDTOOLS_URL=https://aka.ms/vs/16/release/vs_buildtools.exe ARG NASM_URL=https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/win64/nasm-2.15.05-installer-x64.exe ARG PERL_URL=https://strawberryperl.com/download/5.32.1.1/strawberry-perl-5.32.1.1-64bit.msi ARG GIT_URL=https://github.com/git-for-windows/git/releases/download/v2.33.0.windows.2/MinGit-2.33.0.2-busybox-64-bit.zip -ARG PCRE_URL=https://ftp.pcre.org/pub/pcre/pcre-$PCRE_VERSION.zip +ARG PCRE_URL=https://sourceforge.net/projects/pcre/files/pcre/$PCRE_VERSION/pcre-$PCRE_VERSION.zip ARG OPENSSL_URL=https://www.openssl.org/source/openssl-$OPENSSL_VERSION.tar.gz ARG LIBMODBUS_URL=https://github.com/stephane/libmodbus.git diff --git a/Dockerfiles/build-base/windows/Dockerfile.agent2 b/Dockerfiles/build-base/windows/Dockerfile.agent2 index 1d2cbb0ef..68fccdae5 100644 --- a/Dockerfiles/build-base/windows/Dockerfile.agent2 +++ b/Dockerfiles/build-base/windows/Dockerfile.agent2 @@ -19,7 +19,7 @@ ARG GIT_URL=https://github.com/git-for-windows/git/releases/download/v2.33.0.win ARG MINGW_URL=https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/8.1.0/threads-win32/sjlj/x86_64-8.1.0-release-win32-sjlj-rt_v6-rev0.7z ARG GOLANG_URL=https://golang.org/dl/go$GOLANG_VERSION.windows-amd64.msi ARG CYGWIN_URL=https://cygwin.com/setup-x86_64.exe -ARG PCRE_URL=https://ftp.pcre.org/pub/pcre/pcre-$PCRE_VERSION.zip +ARG PCRE_URL=https://sourceforge.net/projects/pcre/files/pcre/$PCRE_VERSION/pcre-$PCRE_VERSION.zip ARG OPENSSL_URL=https://www.openssl.org/source/openssl-$OPENSSL_VERSION.tar.gz ARG SEVEN_ZIP_URL=https://www.7-zip.org/a/7z$SEVEN_ZIP_VERSION-$BUILD_ARCH.msi From b625d8c7eb3e7f6091b80a9ad759e9dafeae1b10 Mon Sep 17 00:00:00 2001 From: Alexey Pustovalov Date: Fri, 5 Nov 2021 13:27:06 +0200 Subject: [PATCH 2/7] Fixed PCRE library link --- Dockerfiles/build-base/windows/Dockerfile.agent | 2 +- Dockerfiles/build-base/windows/Dockerfile.agent2 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfiles/build-base/windows/Dockerfile.agent b/Dockerfiles/build-base/windows/Dockerfile.agent index f0c952ba5..abf0e75a0 100644 --- a/Dockerfiles/build-base/windows/Dockerfile.agent +++ b/Dockerfiles/build-base/windows/Dockerfile.agent @@ -143,7 +143,7 @@ RUN Set-Location -Path $env:SystemDrive\.; ` ` Write-Host ('Downloading {0} ...' -f $env:PCRE_URL); ` [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; ` - Invoke-WebRequest -OutFile $env:SystemDrive\pcre.zip -Uri $env:PCRE_URL; ` + (new-object System.Net.WebClient).DownloadFile("""$env:PCRE_URL""","""$env:SystemDrive\pcre.zip"""); ` ` $sha256 = '5b709aa45ea3b8bb73052947200ad187f651a2049158fb5bbfed329e4322a977'; ` Write-Host ('Verifying SHA256 ({0}) ...' -f $sha256); ` diff --git a/Dockerfiles/build-base/windows/Dockerfile.agent2 b/Dockerfiles/build-base/windows/Dockerfile.agent2 index 68fccdae5..cada9d08c 100644 --- a/Dockerfiles/build-base/windows/Dockerfile.agent2 +++ b/Dockerfiles/build-base/windows/Dockerfile.agent2 @@ -166,7 +166,7 @@ RUN Set-Location -Path $env:SystemDrive\.; ` ` Write-Host ('Downloading {0} ...' -f $env:PCRE_URL); ` [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; ` - Invoke-WebRequest -OutFile $env:SystemDrive\pcre.zip -Uri $env:PCRE_URL; ` + (new-object System.Net.WebClient).DownloadFile("""$env:PCRE_URL""","""$env:SystemDrive\pcre.zip"""); ` ` Write-Host ('Verifying SHA256 ({0}) ...' -f $sha256); ` $sha256 = '5b709aa45ea3b8bb73052947200ad187f651a2049158fb5bbfed329e4322a977'; ` From 7310cb02c3e3d525c18d987fc2b2dc8e482a23e1 Mon Sep 17 00:00:00 2001 From: Alexey Pustovalov Date: Sat, 13 Nov 2021 02:27:21 +0200 Subject: [PATCH 3/7] Changed base Windows image for build --- .github/workflows/images_build_windows.yml | 2 +- Dockerfiles/build-base/windows/Dockerfile.agent | 7 +++++-- Dockerfiles/build-base/windows/Dockerfile.agent2 | 11 +++++++---- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/.github/workflows/images_build_windows.yml b/.github/workflows/images_build_windows.yml index 48f90c8d2..719b49f6c 100644 --- a/.github/workflows/images_build_windows.yml +++ b/.github/workflows/images_build_windows.yml @@ -137,7 +137,7 @@ jobs: echo "docker build --file=$dockerfile $tags $context" docker build --label org.opencontainers.image.revision=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.revision'] }} ` --label org.opencontainers.image.created=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.created'] }} ` - --build-arg=BUILD_BASE_IMAGE=mcr.microsoft.com/dotnet/framework/sdk:4.8-windowsservercore-${{ steps.base_os_tag.outputs.os_tag }} ` + --build-arg=BUILD_BASE_IMAGE=mcr.microsoft.com/windows/servercore:${{ steps.base_os_tag.outputs.os_tag }} ` --file=$dockerfile ` $tags ` $context diff --git a/Dockerfiles/build-base/windows/Dockerfile.agent b/Dockerfiles/build-base/windows/Dockerfile.agent index abf0e75a0..004da6b8b 100644 --- a/Dockerfiles/build-base/windows/Dockerfile.agent +++ b/Dockerfiles/build-base/windows/Dockerfile.agent @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 # escape=` -ARG BUILD_BASE_IMAGE=mcr.microsoft.com/dotnet/framework/sdk:4.8-windowsservercore-ltsc2022 +ARG BUILD_BASE_IMAGE=mcr.microsoft.com/windows/servercore:ltsc2022 FROM $BUILD_BASE_IMAGE ARG PCRE_VERSION=8.45 @@ -118,8 +118,11 @@ RUN Set-Location -Path $env:SystemDrive\.; ` --quiet ` --wait ` --norestart ` - --nocache modify ` + --nocache ` --installPath """${env:ProgramFiles(x86)}\Microsoft Visual Studio\2019\BuildTools""" ` + --channelUri https://aka.ms/vs/16/release/channel ` + --installChannelUri https://aka.ms/vs/16/release/channel ` + --channelId VisualStudio.16.Release ` # https://docs.microsoft.com/en-us/visualstudio/install/workload-component-id-vs-build-tools?view=vs-2019 --add Microsoft.VisualStudio.Component.Windows10SDK.19041 ` --add Microsoft.VisualStudio.Component.VC.CMake.Project; ` diff --git a/Dockerfiles/build-base/windows/Dockerfile.agent2 b/Dockerfiles/build-base/windows/Dockerfile.agent2 index cada9d08c..a9390dfc3 100644 --- a/Dockerfiles/build-base/windows/Dockerfile.agent2 +++ b/Dockerfiles/build-base/windows/Dockerfile.agent2 @@ -1,12 +1,12 @@ # syntax=docker/dockerfile:1 # escape=` -ARG BUILD_BASE_IMAGE=mcr.microsoft.com/dotnet/framework/sdk:4.8-windowsservercore-ltsc2022 +ARG BUILD_BASE_IMAGE=mcr.microsoft.com/windows/servercore:ltsc2022 FROM $BUILD_BASE_IMAGE as builder_base ARG PCRE_VERSION=8.45 ARG OPENSSL_VERSION=1.1.1l ARG ZLIB_VERSION=1.2.11 -ARG GOLANG_VERSION=1.17.2 +ARG GOLANG_VERSION=1.17.3 ARG SEVEN_ZIP_VERSION=1900 ARG BUILD_ARCH=x64 ARG CPU_MODEL=AMD64 @@ -67,7 +67,7 @@ RUN Set-Location -Path $env:SystemDrive\.; ` Write-Host ('Downloading {0} ...' -f $env:GOLANG_URL); ` [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; ` Invoke-WebRequest -OutFile $env:SystemDrive\go-amd64.msi -Uri $env:GOLANG_URL; ` - $sha256 = 'f7d54883e9bb653b1a50061a7fa42a6503c680a25cee32f16ccba51a77b0c83b'; ` + $sha256 = 'bf3c475726c9165eb5d809e1bb4ce33550a25850495aac0a5df6d0df05930936'; ` ` Write-Host ('Verifying SHA256 ({0}) ...' -f $sha256); ` if ((Get-FileHash $env:SystemDrive\go-amd64.msi -Algorithm sha256).Hash -ne $sha256) { ` @@ -141,8 +141,11 @@ RUN Set-Location -Path $env:SystemDrive\.; ` --quiet ` --wait ` --norestart ` - --nocache modify ` + --nocache ` --installPath """${env:ProgramFiles(x86)}\Microsoft Visual Studio\2019\BuildTools""" ` + --channelUri https://aka.ms/vs/16/release/channel ` + --installChannelUri https://aka.ms/vs/16/release/channel ` + --channelId VisualStudio.16.Release ` # https://docs.microsoft.com/en-us/visualstudio/install/workload-component-id-vs-build-tools?view=vs-2019 --add Microsoft.VisualStudio.Component.Windows10SDK.19041 ` --add Microsoft.VisualStudio.Component.VC.CMake.Project; ` From 5b839ca2bd7f9b0789f92a436652a33f3b39f6ef Mon Sep 17 00:00:00 2001 From: Alexey Pustovalov Date: Sat, 13 Nov 2021 16:09:15 +0100 Subject: [PATCH 4/7] Added smartmontools for checking SMART values with agent2 --- Dockerfiles/agent2/alpine/Dockerfile | 2 ++ Dockerfiles/agent2/centos/Dockerfile | 2 ++ Dockerfiles/agent2/ol/Dockerfile | 2 ++ Dockerfiles/agent2/rhel/Dockerfile | 2 ++ Dockerfiles/agent2/ubuntu/Dockerfile | 2 ++ 5 files changed, 10 insertions(+) diff --git a/Dockerfiles/agent2/alpine/Dockerfile b/Dockerfiles/agent2/alpine/Dockerfile index 34015ac3b..0c438e006 100644 --- a/Dockerfiles/agent2/alpine/Dockerfile +++ b/Dockerfiles/agent2/alpine/Dockerfile @@ -37,6 +37,8 @@ RUN set -eux && \ bash \ pcre \ coreutils \ + smartmontools \ + sudo \ iputils" && \ apk add \ --no-cache \ diff --git a/Dockerfiles/agent2/centos/Dockerfile b/Dockerfiles/agent2/centos/Dockerfile index 553a5faf2..bed2837ec 100644 --- a/Dockerfiles/agent2/centos/Dockerfile +++ b/Dockerfiles/agent2/centos/Dockerfile @@ -39,6 +39,8 @@ RUN set -eux && \ iputils \ pcre \ libcurl-minimal \ + smartmontools \ + sudo \ openssl-libs" && \ dnf -y install epel-release && \ dnf -y install \ diff --git a/Dockerfiles/agent2/ol/Dockerfile b/Dockerfiles/agent2/ol/Dockerfile index 4b0d33cf9..1ab885806 100644 --- a/Dockerfiles/agent2/ol/Dockerfile +++ b/Dockerfiles/agent2/ol/Dockerfile @@ -39,6 +39,8 @@ RUN set -eux && \ iputils \ pcre \ libcurl \ + smartmontools \ + sudo \ openssl-libs" && \ microdnf -y install \ --disablerepo="*" \ diff --git a/Dockerfiles/agent2/rhel/Dockerfile b/Dockerfiles/agent2/rhel/Dockerfile index acb3c505c..5207ba340 100644 --- a/Dockerfiles/agent2/rhel/Dockerfile +++ b/Dockerfiles/agent2/rhel/Dockerfile @@ -57,6 +57,8 @@ RUN set -eux && \ iputils \ shadow-utils \ pcre \ + smartmontools \ + sudo \ libcurl" && \ curl -sSL -o /tmp/epel-release-latest-8.noarch.rpm https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm && \ rpm -ivh /tmp/epel-release-latest-8.noarch.rpm && \ diff --git a/Dockerfiles/agent2/ubuntu/Dockerfile b/Dockerfiles/agent2/ubuntu/Dockerfile index afe3a9fba..0bdf393f9 100644 --- a/Dockerfiles/agent2/ubuntu/Dockerfile +++ b/Dockerfiles/agent2/ubuntu/Dockerfile @@ -36,6 +36,8 @@ RUN set -eux && \ INSTALL_PKGS="tini \ tzdata \ ca-certificates \ + smartmontools \ + sudo \ libssl1.1 \ libcurl4 \ libldap-2.4" && \ From 4aa30899d4b9402106c6056d2fd0be036750253a Mon Sep 17 00:00:00 2001 From: Alexey Pustovalov Date: Sat, 13 Nov 2021 16:41:45 +0100 Subject: [PATCH 5/7] Added smartmontools for checking SMART values with agent2 --- Dockerfiles/agent2/windows/Dockerfile | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/Dockerfiles/agent2/windows/Dockerfile b/Dockerfiles/agent2/windows/Dockerfile index 9f03088ac..39525335f 100644 --- a/Dockerfiles/agent2/windows/Dockerfile +++ b/Dockerfiles/agent2/windows/Dockerfile @@ -14,6 +14,8 @@ ARG MAJOR_VERSION ARG ZBX_VERSION ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git +ARG SMARTMONTOOLS_URL=https://sourceforge.net/projects/smartmontools/files/smartmontools/7.2/smartmontools-7.2-1.win32-setup.exe + LABEL org.opencontainers.image.title="Zabbix agent 2" ` org.opencontainers.image.authors="Alexey Pustovalov " ` org.opencontainers.image.vendor="Zabbix LLC" ` @@ -40,6 +42,23 @@ RUN $env:PATH = [string]::Format('{0}\zabbix\sbin;{0}\zabbix\bin;', $env:SystemD [Environment]::SetEnvironmentVariable('ZBX_HOME', $env:ZBX_HOME, [EnvironmentVariableTarget]::Machine); RUN Set-Location -Path $env:SystemDrive\.; ` + ` + Write-Host ('Downloading {0} ...' -f $env:SMARTMONTOOLS_URL); ` + [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; ` + Invoke-WebRequest -OutFile $env:SystemDrive\smartmontools-setup.exe -Uri $env:SMARTMONTOOLS_URL; ` + ` + $sha256 = '83a577757bac76d48c3999b097bac4cd94e7ed3cb3456560aa511c5ac28fb859'; ` + Write-Host ('Verifying SHA256 ({0}) ...' -f $sha256); ` + if ((Get-FileHash $env:SystemDrive\mingw.7z -Algorithm sha256).Hash -ne $sha256) { ` + Write-Host 'Checksum S.M.A.R.T. Monitoring Tools failed!'; ` + exit 1; ` + }; ` + Write-Host 'Installing ...'; ` + Start-Process ` + -FilePath $env:SystemDrive\smartmontools-setup.exe ` + -ArgumentList '/S' -Wait; ` + Write-Host 'Removing downloaded...'; ` + Remove-Item -Force -Path $env:SystemDrive\smartmontools-setup.exe; ` ` New-Item -ItemType directory -Path $env:ZBX_HOME\conf\zabbix_agentd.d | Out-Null; ` New-Item -ItemType directory -Path $env:ZBX_HOME\enc | Out-Null; ` From 3b33880cb0f3e79bf3ada950bfa1727607b4081e Mon Sep 17 00:00:00 2001 From: Alexey Pustovalov Date: Sat, 13 Nov 2021 18:41:16 +0100 Subject: [PATCH 6/7] Removed smartmontools for checking SMART values with agent2 on Windows images --- Dockerfiles/agent2/windows/Dockerfile | 19 ------------------- .../build-base/windows/Dockerfile.agent | 4 ++-- 2 files changed, 2 insertions(+), 21 deletions(-) diff --git a/Dockerfiles/agent2/windows/Dockerfile b/Dockerfiles/agent2/windows/Dockerfile index 39525335f..9f03088ac 100644 --- a/Dockerfiles/agent2/windows/Dockerfile +++ b/Dockerfiles/agent2/windows/Dockerfile @@ -14,8 +14,6 @@ ARG MAJOR_VERSION ARG ZBX_VERSION ARG ZBX_SOURCES=https://git.zabbix.com/scm/zbx/zabbix.git -ARG SMARTMONTOOLS_URL=https://sourceforge.net/projects/smartmontools/files/smartmontools/7.2/smartmontools-7.2-1.win32-setup.exe - LABEL org.opencontainers.image.title="Zabbix agent 2" ` org.opencontainers.image.authors="Alexey Pustovalov " ` org.opencontainers.image.vendor="Zabbix LLC" ` @@ -42,23 +40,6 @@ RUN $env:PATH = [string]::Format('{0}\zabbix\sbin;{0}\zabbix\bin;', $env:SystemD [Environment]::SetEnvironmentVariable('ZBX_HOME', $env:ZBX_HOME, [EnvironmentVariableTarget]::Machine); RUN Set-Location -Path $env:SystemDrive\.; ` - ` - Write-Host ('Downloading {0} ...' -f $env:SMARTMONTOOLS_URL); ` - [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; ` - Invoke-WebRequest -OutFile $env:SystemDrive\smartmontools-setup.exe -Uri $env:SMARTMONTOOLS_URL; ` - ` - $sha256 = '83a577757bac76d48c3999b097bac4cd94e7ed3cb3456560aa511c5ac28fb859'; ` - Write-Host ('Verifying SHA256 ({0}) ...' -f $sha256); ` - if ((Get-FileHash $env:SystemDrive\mingw.7z -Algorithm sha256).Hash -ne $sha256) { ` - Write-Host 'Checksum S.M.A.R.T. Monitoring Tools failed!'; ` - exit 1; ` - }; ` - Write-Host 'Installing ...'; ` - Start-Process ` - -FilePath $env:SystemDrive\smartmontools-setup.exe ` - -ArgumentList '/S' -Wait; ` - Write-Host 'Removing downloaded...'; ` - Remove-Item -Force -Path $env:SystemDrive\smartmontools-setup.exe; ` ` New-Item -ItemType directory -Path $env:ZBX_HOME\conf\zabbix_agentd.d | Out-Null; ` New-Item -ItemType directory -Path $env:ZBX_HOME\enc | Out-Null; ` diff --git a/Dockerfiles/build-base/windows/Dockerfile.agent b/Dockerfiles/build-base/windows/Dockerfile.agent index 004da6b8b..f5d0260f8 100644 --- a/Dockerfiles/build-base/windows/Dockerfile.agent +++ b/Dockerfiles/build-base/windows/Dockerfile.agent @@ -108,7 +108,7 @@ RUN Set-Location -Path $env:SystemDrive\.; ` ` Write-Host 'Installing Text::Template...'; ` cpan Text::Template; ` - ` + ` Write-Host ('Downloading {0} ...' -f $env:VS_BUILDTOOLS_URL); ` [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; ` Invoke-WebRequest -OutFile $env:SystemDrive\vs_buildtools.exe $env:VS_BUILDTOOLS_URL; ` @@ -135,7 +135,7 @@ RUN Set-Location -Path $env:SystemDrive\.; ` Write-Host 'Visual Studio components installation cleanup'; ` Write-Host 'Removing downloaded...'; ` Remove-Item -Force -Path $env:SystemDrive\vs_buildtools.exe; ` - Get-ChildItem -Path """${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer""" -Directory -Recurse | Remove-Item -Force –Recurse; ` + Get-ChildItem -Path """${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer""" -Directory -Recurse | Remove-Item -Force Recurse; ` Remove-Item -Force -Recurse $env:TEMP\*; ` Write-Host 'Build environment is ready...'; From 4943610f0bf391862078b2dea561c3452de03a50 Mon Sep 17 00:00:00 2001 From: Alexey Pustovalov Date: Sat, 13 Nov 2021 18:42:56 +0100 Subject: [PATCH 7/7] Removed smartmontools for checking SMART values with agent2 on Windows images --- Dockerfiles/build-base/windows/Dockerfile.agent | 2 +- Dockerfiles/build-base/windows/Dockerfile.agent2 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfiles/build-base/windows/Dockerfile.agent b/Dockerfiles/build-base/windows/Dockerfile.agent index f5d0260f8..35bbce64a 100644 --- a/Dockerfiles/build-base/windows/Dockerfile.agent +++ b/Dockerfiles/build-base/windows/Dockerfile.agent @@ -135,7 +135,7 @@ RUN Set-Location -Path $env:SystemDrive\.; ` Write-Host 'Visual Studio components installation cleanup'; ` Write-Host 'Removing downloaded...'; ` Remove-Item -Force -Path $env:SystemDrive\vs_buildtools.exe; ` - Get-ChildItem -Path """${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer""" -Directory -Recurse | Remove-Item -Force Recurse; ` + Get-ChildItem -Path """${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer""" -Directory -Recurse | Remove-Item -Force -Recurse; ` Remove-Item -Force -Recurse $env:TEMP\*; ` Write-Host 'Build environment is ready...'; diff --git a/Dockerfiles/build-base/windows/Dockerfile.agent2 b/Dockerfiles/build-base/windows/Dockerfile.agent2 index a9390dfc3..170a14da3 100644 --- a/Dockerfiles/build-base/windows/Dockerfile.agent2 +++ b/Dockerfiles/build-base/windows/Dockerfile.agent2 @@ -158,7 +158,7 @@ RUN Set-Location -Path $env:SystemDrive\.; ` Write-Host 'Visual Studio components installation cleanup'; ` Write-Host 'Removing downloaded...'; ` Remove-Item -Force -Path $env:SystemDrive\vs_buildtools.exe; ` - Get-ChildItem -Path """${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer""" -Directory -Recurse | Remove-Item -Force –Recurse; ` + Get-ChildItem -Path """${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer""" -Directory -Recurse | Remove-Item -Force -Recurse; ` Remove-Item -Force -Recurse $env:TEMP\*; ` Write-Host 'Build environment is ready...';