Downloads Chrome and Amazon Workspaces in MSI Files for Deployment usage
Find a file
2024-05-27 10:30:21 +02:00
Template Template 2024-05-21 11:02:23 +02:00
.gitattributes Initial commit 2024-05-21 10:58:46 +02:00
.gitignore Change the log file name 2024-05-26 17:44:21 +02:00
Chrome Downloader.ps1 Fixed the admin logging 2024-05-27 09:05:27 +02:00
config.json Feature: Added Auto Renamer 2024-05-26 17:00:16 +02:00
LICENSE Initial commit 2024-05-21 10:58:46 +02:00
README.md Update README.md 2024-05-27 10:30:21 +02:00
Rename.ps1 Change the log file name 2024-05-26 17:44:21 +02:00

Google Chrome Downloader MSI Script

This PowerShell script automates the process of downloading and organizing Google Chrome installers based on specified configurations. It supports downloading both 64-bit and 32-bit versions of Chrome and organizing them into appropriate folders.

Script Overview

Configuration

The script reads its configuration from a JSON file named config.json located in the same directory as the script. The configuration options include:

Configuration File

The config.json file should be structured as follows:

{
  "options": {
    "enableRegularVersion": true,
    "enableForcedVersion": false,
    "enableNumberedVersion": false
  },
  "logDateFormat": "dd/MM/yyyy HH:mm:ss"
}
  • enableRegularVersion: A boolean flag to enable downloading and installing the regular version of Chrome.
  • enableForcedVersion: A boolean flag to enable downloading and installing the forced update version of Chrome.
  • enableNumberedVersion: A boolean flag to enable the automatic renaming of the folder to the newest version of Chrome. ⚠️ This option requires administrative privileges when executing the script! ⚠️
  • logDateFormat: A string defining the format of timestamps in logs. The default format is dd/MM/yyyy HH:mm:ss.

Date Configuration

yyyy: This specifier represents the year portion of the date. It uses four digits to represent the year. For example, 2024.
MM: This specifier represents the month portion of the date. It uses two digits to represent the month, with leading zeros if necessary. For example, 05 represents May.
dd: This specifier represents the day portion of the date. It uses two digits to represent the day of the month, with leading zeros if necessary. For example, 23.
HH: This specifier represents the hour portion of the time in 24-hour format. It uses two digits to represent the hour, ranging from 00 to 23. For example, 14 represents 2 PM in 24-hour format.
More info on HH format
HH (24-hour format): When HH is used, it represents the hour portion of the time in a 24-hour format, where the hour is represented with two digits from 00 to 23. The HH specifier does not use AM/PM designators since it covers the full 24-hour range. Example: HH:mm:ss might output 14:30:00, representing 2:30 PM in 24-hour format.
hh (12-hour format): When hh is used, it represents the hour portion of the time in a 12-hour format, where the hour is represented with one or two digits from 1 to 12. The hh specifier is typically used alongside the tt specifier (AM/PM designator) to indicate whether the time is in the AM or PM. Example: hh:mm:ss tt might output 02:30:00 PM, representing 2:30 PM.
mm: This specifier represents the minute portion of the time. It uses two digits to represent the minutes, with leading zeros if necessary. For example, 30.
ss: This specifier represents the second portion of the time. It uses two digits to represent the seconds, with leading zeros if necessary. For example, 45.
tt: This specifier represents the AM/PM designator in a 12-hour time format. It is typically used alongside the hh specifier to indicate whether the time is in the AM or PM. For example, AM or PM.

Examples

"logDateFormat": "yyyy'/'MM'/'dd hh:mm:ss tt"

Output: 2024/06/29 03:19:30 p.m.

"logDateFormat": "MM/dd/yyyy HH:mm:ss"

Output: 06.29.2024 15:19:30

"logDateFormat": "dd-MM-yyyy HH:mm:ss"

Output: 29-06-2024 15:19:30

Numbered Version

enableNumberedVersion: Set this to true to enable automatic renaming of the folder based on the downloaded Chrome version. This action requires administrative privileges.

For example, if this option is enabled, the folders will be named as follows:

false:

Chrome - VERSION_force_update

true:

Chrome - 125.0.6422.113_force_update

The enableNumberedVersion configuration requires administrative privileges because the only way to obtain the Chrome version number is by installing the MSI file and retrieving the version from the Windows registry.

Script Usage

1. Prepare the Environment:

Ensure that config.json is present in the same directory as the script. Create the following template folders and populate them with necessary files:

  • Template\Chrome-Template
  • Template\Chrome-Template-Forced

2. Downloading the Script:

You can download the script using git clone command. Follow these steps:

  1. Open your terminal or command prompt.
  2. Navigate to the directory where you want to download the script.
  3. Run the following command:
git clone https://github.com/OlaYZen/Chrome-Downloader.git

This command will clone the repository into your current directory.

3. Run the Script:

  • Open PowerShell and navigate to the directory containing the script and config.json.
  • Execute the script:
& '.\Chrome Downloader.ps1' 

4. Monitor the Logs:

  • Check chrome_downloader.log in the script directory for detailed logs of the execution process, including any errors encountered.