From 347d8dd3b6a22fbe84c1687250528ddc720d0ddd Mon Sep 17 00:00:00 2001 From: Andy Mishechkin Date: Fri, 20 Dec 2019 14:36:00 +0400 Subject: [PATCH] Post-review code modification --- .../win/scripts/Installers/Install-Chrome.ps1 | 71 ++++++------------- .../Installers/Install-SeleniumWebDrivers.ps1 | 36 ++++++---- 2 files changed, 44 insertions(+), 63 deletions(-) diff --git a/images/win/scripts/Installers/Install-Chrome.ps1 b/images/win/scripts/Installers/Install-Chrome.ps1 index 970e56d1..1e4239b1 100644 --- a/images/win/scripts/Installers/Install-Chrome.ps1 +++ b/images/win/scripts/Installers/Install-Chrome.ps1 @@ -8,20 +8,18 @@ function Stop-SvcWithErrHandling [Parameter(Mandatory, ValueFromPipeLine = $true)] [string] $ServiceName ) - Begin { - Write-Debug "Function [Stop-SvcWithErrHnadlig] is started"; - } Process { $Service = Get-Service $ServiceName -ErrorAction SilentlyContinue - if(-not $Service) { - Write-Warning "[!] Service [$ServiceName] is not found"; + if (-not $Service) { + Write-Error "[!] Service [$ServiceName] is not found"; + exit 1; } else { - Write-Debug "Try to stop service [$ServiceName]"; + Write-Host "Try to stop service [$ServiceName]"; try { Stop-Service -Name $ServiceName -Force; $Service.WaitForStatus("Stopped", "00:01:00"); - Write-Debug "Service [$ServiceName] has been stoppet successfuly"; + Write-Host "Service [$ServiceName] has been stopped successfuly"; } catch { Write-Error "[!] Failed to stop service [$ServiceName] with error:" @@ -29,9 +27,6 @@ function Stop-SvcWithErrHandling } } } - End { - Write-Debug "Function [Stop-SvcWithErrHnadlig] is stopped"; - } } function Set-SvcWithErrHandling @@ -40,12 +35,10 @@ function Set-SvcWithErrHandling [Parameter(Mandatory, ValueFromPipeLine = $true)] [string] $ServiceName, [Parameter(Mandatory)] [hashtable] $Arguments ) - Begin { - Write-Debug "Function [Set-SvcWithErrHnadlig] is started"; - } + Process { $Service = Get-Service $ServiceName -ErrorAction SilentlyContinue - if(-not $Service) { + if (-not $Service) { Write-Warning "[!] Service [$ServiceName] is not found"; } try { @@ -56,62 +49,42 @@ function Set-SvcWithErrHandling $_ | Out-String | Write-Error; } } - End { - Write-Debug "Function [Stop-SvcWithErrHnadlig] is stopped"; - } -} - -function New-ItemWithErrHandling { - param ( - [Parameter(Mandatory)] [hashtable] $Arguments - ) - Write-Debug "Creation of [$($Arguments.Name)] item"; - try { - New-ItemProperty @Arguments; - } - catch { - Write-Warning "[!] Failed to create [$($Arguments.Name)] registry parameter"; - } } Import-Module -Name ImageHelpers -Force; $ChromeInstallerFile = "chrome_installer.exe"; -$ChromeInstallerUri = "https://dl.google.com/chrome/install/375.126/chrome_installer.exe"; +$ChromeInstallerUri = "https://dl.google.com/chrome/install/375.126/${ChromeInstallerFile}"; Install-Exe -Url $ChromeInstallerUri -Name $ChromeInstallerFile -ArgumentList ("/silent", "/install") -Write-Debug "Adding the firewall rule for Google update blocking"; +Write-Host "Adding the firewall rule for Google update blocking"; New-NetFirewallRule -DisplayName "BlockGoogleUpdate" -Direction Outbound -Action Block -Program "C:\Program Files (x86)\Google\Update\GoogleUpdate.exe"; -('gupdate','gupdatem') | Stop-SvcWithErrHandling; -('gupdate','gupdatem') | Set-SvcWithErrHandling -Arguments @{StartupType = "Disabled"}; +$GoogleSvcs = ('gupdate','gupdatem'); +$GoogleSvcs | Stop-SvcWithErrHandling; +$GoogleSvcs | Set-SvcWithErrHandling -Arguments @{StartupType = "Disabled"}; $regGoogleUpdatePath = "HKLM:\SOFTWARE\Policies\Google\Update"; $regGoogleUpdateChrome = "HKLM:\SOFTWARE\Policies\Google\Chrome"; ($regGoogleUpdatePath, $regGoogleUpdateChrome) | ForEach-Object { - Write-Debug "Creation of [$_] registry key"; - try { - New-Item -Path $_ -Force; - } - catch { - Write-Warning "[!] Failed to create [$_] registry key"; - } + New-Item -Path $_ -Force; } -$regGoogleUpdateParameters = @( +$regGoogleParameters = @( @{ Name = "AutoUpdateCheckPeriodMinutes"; Value = 00000000}, @{ Name = "UpdateDefault"; Value = 00000000 }, - @{ Name = "DisableAutoUpdateChecksCheckboxValuet"; Value = 00000000 }, - @{ Name = "Update{8A69D345-D564-463C-AFF1-A69D9E530F96}"; Value = 00000000 } + @{ Name = "DisableAutoUpdateChecksCheckboxValue"; Value = 00000001 }, + @{ Name = "Update{8A69D345-D564-463C-AFF1-A69D9E530F96}"; Value = 00000000 }, + @{ Path = $regGoogleUpdateChrome; Name = "DefaultBrowserSettingEnabled"; Value = 00000000 } ) -$regGoogleUpdateParameters | ForEach-Object { +$regGoogleParameters | ForEach-Object { $Arguments = $_; - $Arguments.Add("Path", $regGoogleUpdatePath); + if (-not ($Arguments.Path)) { + $Arguments.Add("Path", $regGoogleUpdatePath); + } $Arguments.Add("Force", $true); - New-ItemWithErrHandling -Arguments $Arguments + New-ItemProperty @Arguments; } -$Arguments = @{ Path = $regGoogleUpdateChrome; Name = "DefaultBrowserSettingEnabled"; Value = 00000000; Force = $true }; -New-ItemWithErrHandling -Arguments $Arguments; diff --git a/images/win/scripts/Installers/Install-SeleniumWebDrivers.ps1 b/images/win/scripts/Installers/Install-SeleniumWebDrivers.ps1 index 45e60d01..93d9d1ad 100644 --- a/images/win/scripts/Installers/Install-SeleniumWebDrivers.ps1 +++ b/images/win/scripts/Installers/Install-SeleniumWebDrivers.ps1 @@ -3,40 +3,48 @@ ## Desc: Install Selenium Web Drivers ################################################################################ $DestinationPath = "C:\"; -Write-Debug "Destination path: [$DestinationPath]"; -Write-Debug "Selenium drivers download and install..."; -Invoke-WebRequest -UseBasicParsing -Uri "https://seleniumwebdrivers.blob.core.windows.net/seleniumwebdrivers/SeleniumWebDrivers.zip" -OutFile SeleniumWebDrivers.zip; -Expand-Archive -Path SeleniumWebDrivers.zip -DestinationPath $DestinationPath -Force; -Remove-Item SeleniumWebDrivers.zip; +$DriversZipFile = "SeleniumWebDrivers.zip" +Write-Host "Destination path: [$DestinationPath]"; +Write-Host "Selenium drivers download and install..."; +try { + Invoke-WebRequest -UseBasicParsing -Uri "https://seleniumwebdrivers.blob.core.windows.net/seleniumwebdrivers/${DriversZipFile}" -OutFile $DriversZipFile; +} +catch { + Write-Error "[!] Failed to download $DriverZipFile"; + exit 1; +} + +Expand-Archive -Path $DriversZipFile -DestinationPath $DestinationPath -Force; +Remove-Item $DriversZipFile; $ChromeDriverPath = "$DestinationPath\SeleniumWebDrivers\ChromeDriver"; -Write-Debug "Chrome driver path: [$ChromeDriverPath]"; +Write-Host "Chrome driver path: [$ChromeDriverPath]"; Remove-Item -Path "$ChromeDriverPath\*" -Force; $ChromePath = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\chrome.exe').'(default)'; [version]$ChromeVersion = [System.Diagnostics.FileVersionInfo]::GetVersionInfo($ChromePath).ProductVersion; -Write-Debug "Chrome version: [$ChromeVersion]"; +Write-Host "Chrome version: [$ChromeVersion]"; $ChromeDriverVersionUri = "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_$($ChromeVersion.Major).$($ChromeVersion.Minor).$($ChromeVersion.Build)"; -Write-Debug "Chrome driver version Uri [$ChromeDriverVersionUri]"; -Write-Debug "Getting the Chrome driver version..."; +Write-Host "Chrome driver version Uri [$ChromeDriverVersionUri]"; +Write-Host "Getting the Chrome driver version..."; $ChromeDriverVersion = Invoke-WebRequest -Uri $ChromeDriverVersionUri; -Write-Debug "Current Chrome driver version: [$ChromeDriverVersion]"; +Write-Host "Current Chrome driver version: [$ChromeDriverVersion]"; $ChromeDriverZipDownloadUri = "https://chromedriver.storage.googleapis.com/$($ChromeDriverVersion.ToString())/chromedriver_win32.zip"; -Write-Debug "Chrome driver zip file download Uri: [$ChromeDriverZipDownloadUri]"; +Write-Host "Chrome driver zip file download Uri: [$ChromeDriverZipDownloadUri]"; $DestFile= "$ChromeDriverPath\chromedriver_win32.zip"; $ChromeDriverVersion.Content | Out-File -FilePath "$ChromeDriverPath\versioninfo.txt" -Force; -Write-Debug "Chrome driver download...."; +Write-Host "Chrome driver download...."; Invoke-WebRequest -Uri $ChromeDriverZipDownloadUri -OutFile $DestFile; -Write-Debug "Chrome driver install...."; +Write-Host "Chrome driver install...."; Expand-Archive -Path "$ChromeDriverPath\chromedriver_win32.zip" -DestinationPath $ChromeDriverPath -Force; Remove-Item -Path "$ChromeDriverPath\chromedriver_win32.zip" -Force; -Write-Debug "Setting the environment variables"; +Write-Host "Setting the environment variables"; setx IEWebDriver "C:\SeleniumWebDrivers\IEDriver" /M; setx GeckoWebDriver "C:\SeleniumWebDrivers\GeckoDriver" /M;