152 lines
No EOL
7 KiB
PowerShell
152 lines
No EOL
7 KiB
PowerShell
$configPath = "$PSScriptRoot\config.json"
|
|
$config = Get-Content -Path $configPath | ConvertFrom-Json
|
|
|
|
# Get the date format from the configuration, or use the default format if not provided
|
|
$chromedateFormat = $config.chrome.logging.logDateFormat
|
|
if (-not $chromedateFormat) {
|
|
$chromedateFormat = "dd/MM/yyyy HH:mm:ss"
|
|
}
|
|
|
|
# Function to log messages with the specified date format
|
|
$chromelogFileName = $config.chrome.logging.fileName
|
|
$chromelogFileFormat = $config.chrome.logging.fileFormat
|
|
if (-not $chromelogFileName) {
|
|
$chromelogFileName = "chrome_downloader"
|
|
}
|
|
if (-not $chromelogFileFormat) {
|
|
$chromelogFileFormat = "log"
|
|
}
|
|
|
|
$chromelogFileNameFormat = $chromelogFileName+"."+$chromelogFileFormat
|
|
|
|
# Get the date format from the configuration, or use the default format if not provided
|
|
$amazonworkspacedateFormat = $config.chrome.logging.logDateFormat
|
|
if (-not $amazonworkspacedateFormat) {
|
|
$amazonworkspacedateFormat = "dd/MM/yyyy HH:mm:ss"
|
|
}
|
|
|
|
# Function to log messages with the specified date format
|
|
$amazonworkspacelogFileName = $config.amazonWorkspace.logging.fileName
|
|
$amazonworkspacelogFileFormat = $config.amazonWorkspace.logging.fileFormat
|
|
if (-not $amazonworkspacelogFileName) {
|
|
$amazonworkspacelogFileName = "chrome_downloader"
|
|
}
|
|
if (-not $amazonworkspacelogFileFormat) {
|
|
$amazonworkspacelogFileFormat = "log"
|
|
}
|
|
|
|
$amazonworkspacelogFileNameFormat = $amazonworkspacelogFileName+"."+$amazonworkspacelogFileFormat
|
|
|
|
function chrome-Log-Message {
|
|
param (
|
|
[string]$message
|
|
)
|
|
$timestamp = Get-Date -Format $chromedateFormat
|
|
Write-Output "[$timestamp] - $message" | Out-File -Append -FilePath "$PSScriptRoot\$chromelogFileNameFormat" -Encoding utf8
|
|
}
|
|
|
|
function amazonworkspace-Log-Message {
|
|
param (
|
|
[string]$message
|
|
)
|
|
$timestamp = Get-Date -Format $amazonworkspacedateFormat
|
|
Write-Output "[$timestamp] - $message" | Out-File -Append -FilePath "$PSScriptRoot\$amazonworkspacelogFileNameFormat" -Encoding utf8
|
|
}
|
|
|
|
if ($config.chrome.options.enableRegularVersion -and -not $config.chrome.options.enableForcedVersion) {
|
|
$msiPath = "$PSScriptRoot\Chrome - VERSION\Files\googlechromestandaloneenterprise64.msi"
|
|
Start-Process -FilePath "msiexec.exe" -ArgumentList "/i `"$msiPath`" /quiet" -Wait
|
|
$chromeRegPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
|
|
$chromeVersion = Get-ChildItem -Path $chromeRegPath |
|
|
Get-ItemProperty |
|
|
Where-Object { $_.DisplayName -like "*Google Chrome*" } |
|
|
Select-Object -ExpandProperty DisplayVersion
|
|
# Rename the folder if the version was retrieved
|
|
if ($chromeVersion) {
|
|
$newFolderName = "Chrome - $chromeVersion"
|
|
try {
|
|
Rename-Item -Path $destinationFolder -NewName $newFolderName -ErrorAction Stop
|
|
chrome-Log-Message "Info: Folder renamed to $newFolderName"
|
|
} catch {
|
|
chrome-Log-Message "Error: Failed to rename folder - $_"
|
|
}
|
|
} else {
|
|
chrome-Log-Message "Warn: Chrome version could not be determined. Folder was not renamed."
|
|
}
|
|
}
|
|
elseif ($config.chrome.options.enableForcedVersion -and -not $config.chrome.options.enableRegularVersion) {
|
|
$msiPath = "$PSScriptRoot\Chrome - VERSION_force_update\googlechromestandaloneenterprise64.msi"
|
|
Start-Process -FilePath "msiexec.exe" -ArgumentList "/i `"$msiPath`" /quiet" -Wait
|
|
$chromeRegPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
|
|
$chromeVersion = Get-ChildItem -Path $chromeRegPath |
|
|
Get-ItemProperty |
|
|
Where-Object { $_.DisplayName -like "*Google Chrome*" } |
|
|
Select-Object -ExpandProperty DisplayVersion
|
|
# Rename the folder if the version was retrieved
|
|
if ($chromeVersion) {
|
|
$newFolderName = "Chrome - $chromeVersion" + "_force_update"
|
|
try {
|
|
Rename-Item -Path $forceUpdateFolder -NewName $newFolderName -ErrorAction Stop
|
|
chrome-Log-Message "Info: Folder renamed to $newFolderName"
|
|
} catch {
|
|
chrome-Log-Message "Error: Failed to rename folder - $_"
|
|
}
|
|
} else {
|
|
chrome-Log-Message "Warn: Chrome version could not be determined. Folder was not renamed."
|
|
}
|
|
}
|
|
elseif ($config.chrome.options.enableForcedVersion -and $config.chrome.options.enableRegularVersion) {
|
|
$msiPath = "$PSScriptRoot\Chrome - VERSION_force_update\googlechromestandaloneenterprise64.msi"
|
|
Start-Process -FilePath "msiexec.exe" -ArgumentList "/i `"$msiPath`" /quiet" -Wait
|
|
|
|
$chromeRegPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
|
|
$chromeVersion = Get-ChildItem -Path $chromeRegPath |
|
|
Get-ItemProperty |
|
|
Where-Object { $_.DisplayName -like "*Google Chrome*" } |
|
|
Select-Object -ExpandProperty DisplayVersion
|
|
|
|
# Rename both folders if the version was retrieved
|
|
if ($chromeVersion) {
|
|
# Regular version folder
|
|
$newRegularFolderName = "Chrome - $chromeVersion"
|
|
try {
|
|
Rename-Item -Path $destinationFolder -NewName $newRegularFolderName -ErrorAction Stop
|
|
chrome-Log-Message "Info: Folder renamed to $newRegularFolderName"
|
|
} catch {
|
|
chrome-Log-Message "Error: Failed to rename folder - $_"
|
|
}
|
|
|
|
# Forced version folder
|
|
$newForcedFolderName = "Chrome - $chromeVersion" + "_force_update"
|
|
try {
|
|
Rename-Item -Path $forceUpdateFolder -NewName $newForcedFolderName -ErrorAction Stop
|
|
chrome-Log-Message "Info: Folder renamed to $newForcedFolderName"
|
|
} catch {
|
|
chrome-Log-Message "Error: Failed to rename folder - $_"
|
|
}
|
|
} else {
|
|
chrome-Log-Message "Warn: Chrome version could not be determined. Folders were not renamed."
|
|
}
|
|
}
|
|
if ($config.amazonWorkspace.options.download) {
|
|
$msiPathamazonworkspace = "$PSScriptRoot\Amazon Workspace - VERSION\Files\Amazon+WorkSpaces.msi"
|
|
Start-Process -FilePath "msiexec.exe" -ArgumentList "/i `"$msiPathamazonworkspace`" /quiet" -Wait
|
|
$workspacesRegPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
|
|
$workspacesVersion = Get-ChildItem -Path $workspacesRegPath |
|
|
Get-ItemProperty |
|
|
Where-Object { $_.DisplayName -like "*Amazon Workspaces*" } |
|
|
Select-Object -ExpandProperty DisplayVersion
|
|
# Rename the folder if the version was retrieved
|
|
if ($workspacesVersion) {
|
|
$newFolderNameamazonworkspace = "Amazon Workspace - $workspacesVersion"
|
|
try {
|
|
Rename-Item -Path $amazonworkspacedestinationFolder -NewName $newFolderNameamazonworkspace -ErrorAction Stop
|
|
amazonworkspace-Log-Message "Info: Folder renamed to $newFolderNameamazonworkspace"
|
|
} catch {
|
|
amazonworkspace-Log-Message "Error: Failed to rename folder - $_"
|
|
}
|
|
} else {
|
|
amazonworkspace-Log-Message "Warn: Amazon Workspaces version could not be determined. Folder was not renamed."
|
|
}
|
|
}
|
|
Write-Output "For additional logs, please refer to $PSScriptRoot\$logFileName." |