Office 365, SharePoint on-prem, System Center Configuration Manager, Windows, and much more!
Monday, June 18, 2018
Package and Deploy Chrome using PowerShell
This post tells you how to download, package, and deploy Google Chrome using Powershell
This code was provided from this source:
https://www.reddit.com/r/SCCM/comments/5pwjui/best_way_to_manage_chrome_with_sccm/
#Variables
$URI = 'https://dl.google.com/edgedl/chrome/install/GoogleChromeStandaloneEnterprise64.msi'
$OutFile = 'E:\temp\GoogleChromeStandaloneEnterprise64.msi'
$Proxy = 'http://lookatmeimaproxy:80'
$SCCMSource = '\\server\share\Google\Chrome'
$SCCMSiteCode = 'ABC'
# Download Chrome from the web
Write-Output "Downloading $URI to $OutFile"
$start_time = Get-Date
Invoke-WebRequest -Uri $URI -OutFile $OutFile -Proxy $Proxy
Write-Output "Download completed in: $((Get-Date).Subtract($start_time).Seconds) second(s)"
# Get file metadata
$a = 0
$objShell = New-Object -ComObject Shell.Application
$objFolder = $objShell.namespace((Get-Item $OutFile).DirectoryName)
foreach ($File in $objFolder.items()) {
IF ($file.path -eq $outfile) {
$FileMetaData = New-Object PSOBJECT
for ($a ; $a -le 266; $a++) {
if($objFolder.getDetailsOf($File, $a)) {
$hash += @{$($objFolder.getDetailsOf($objFolder.items, $a)) = $($objFolder.getDetailsOf($File, $a)) }
$FileMetaData | Add-Member $hash
$hash.clear()
} #end if
} #end for
}
}
# Move the downloaded file to the appropriate location
$ChromeVersion = $FileMetaData.Comments.split(' ')[0]
Write-Output "Downloaded version: $ChromeVersion"
$Filename = $((get-item $OutFile).name)
$destinationfolder = "$SCCMSource\$chromeversion"
Write-Output "Destination folder is $destinationfolder"
IF (!(test-path $destinationfolder)) {
Write-Output "$destinationfolder does not exist"
[System.IO.Directory]::CreateDirectory($destinationfolder)
Write-Output "Creating $destinationfolder"
[System.IO.File]::Move($OutFile,"$destinationfolder\$Filename")
Write-Output "Moving $OutFile to $destinationfolder"
$SavedPath = $(pwd)
IF (!(Get-WindowsFeature RSAT-AD-PowerShell).installed) {Add-WindowsFeature RSAT-AD-PowerShell}
IF (!(Get-Module ConfigurationManager)) {Import-Module (Join-Path $(Split-Path $env:SMS_ADMIN_UI_PATH) ConfigurationManager.psd1)}
IF ($(pwd).path -ne "$SCCMSiteCode`:\") {Set-Location "$SCCMSiteCode`:"}
IF (!(Get-CMDeploymentType -ApplicationName "google chrome" -DeploymentTypeName "Google Chrome - $chromeversion")) {
Write-Output "No deployment type exists for Google Chrome $ChromeVersion"
Add-CMMsiDeploymentType -ApplicationName "Google Chrome" -ContentLocation "$destinationfolder\$filename" -Comment "Automatically added by powershell magic: $(get-date)" -DeploymentTypeName "Google Chrome - $ChromeVersion" -InstallationBehaviorType InstallForSystem -InstallCommand "msiexec /i GoogleChromeStandaloneEnterprise64.msi /qn" -MaximumRuntimeMins 15 -EstimatedRuntimeMins 5 | Select LocalizedDescription, LocalizedDisplayName
WHILE ($((get-CMDeploymentType -ApplicationName 'Google Chrome' -DeploymentTypeName "Google Chrome - $chromeversion").PriorityInLatestApp) -ne '1') {
Write-Output "Priority currently: $((get-CMDeploymentType -ApplicationName 'Google Chrome' -DeploymentTypeName "Google Chrome - $chromeversion").PriorityInLatestApp)"
Write-Output "Increasing priority"
Set-CMDeploymentType -ApplicationName "Google Chrome" -DeploymentTypeName "Google Chrome - $chromeversion" -Priority Increase
}
Set-CMApplication -ApplicationName 'Google Chrome' -SoftwareVersion $chromeversion
}
Set-Location $SavedPath
}
ELSE {
Write-Output "$destinationfolder already exists"
Remove-Item $OutFile
Write-Output "Removed $OutFile"
}
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.