The cause of this issue has not been confirmed due to the lack of access to Chrome support. It has been the consensus of the Development and Support that this is an issue with the way that Chrome accesses the internal database that holds configuration and password information. This Database is protected by encryption and this encryption is compiled based on the current logged in user. This is to protect the current users information from being accessed by users with Administrator\Elevated access.
At the time of the creation of this article there is no resolution in regards to altering configuration of the Resource Updating toolset. Customers have reported that deleting the Directory structure, or reinstalling Chrome are possible workarounds.
It should be noted that Move tasks can be appended with scripting from with in the tool to accommodate leveraging installers ETC or that the Chrome Browser could be pushed out via Software Distribution outside the RUM tool.
As further Evidence that this is the cause of the issue and as a temporary workaround, using Incognito mode will let the browser work without issue as it does not save or access information in the Chrome Database.
Another possible workaround is to utilize a post-move RUM script to accomplish the following:
• Rename C:\Users\USER\AppData\Local\Google\Chrome\User Data\Default to Default_old
• Create new Default
• Copy Default_old\Bookmarks into Default\Bookmarks
From there Chrome backfills everything else into the new Default folder at first start while preserving Bookmarks.
Below is a sample snippet from a Powershell script to demonstrate how this can be accomplished.
***NOTE: This section of a Powershell script is provided as-is and is not supported by Quest Support. This script should be tested and functionality confirmed within in a lab environment prior to being used in production.
This Powershell script is called via a post-move cmd file which contains the below command line:
powershell.exe -executionpolicy bypass -file \\SERVER_SHARE\Scripts\PostMove.ps1
Sample Powershell script:
$hostName = $null
$userName = $null
[string]$hostName = Get-WmiObject -Class Win32_ComputerSystem | %{$_.Name}
[string]$userName = Get-WmiObject -Class Win32_ComputerSystem | %{$_.UserName}
#UserName check
if (-not $userName)
{
#Logon function
function get-loggedonuser ($computername){
$regexa = '.+Domain="(.+)",Name="(.+)"$'
$regexd = '.+LogonId="(\d+)"$'
$logontype = @{
"0"="Local System"
"2"="Interactive" #(Local logon)
"3"="Network" # (Remote logon)
"4"="Batch" # (Scheduled task)
"5"="Service" # (Service account logon)
"7"="Unlock" #(Screen saver)
"8"="NetworkCleartext" # (Cleartext network logon)
"9"="NewCredentials" #(RunAs using alternate credentials)
"10"="RemoteInteractive" #(RDP\TS\RemoteAssistance)
"11"="CachedInteractive" #(Local w\cached credentials)
}
$logon_sessions = @(gwmi win32_logonsession -ComputerName $computername)
$logon_users = @(gwmi win32_loggedonuser -ComputerName $computername)
$session_user = @{}
$logon_users |% {
$_.antecedent -match $regexa > $nul
$username = $matches[1] + "\" + $matches[2]
$_.dependent -match $regexd > $nul
$session = $matches[1]
$session_user[$session] += $username
}
$logon_sessions |%{
$starttime = [management.managementdatetimeconverter]::todatetime($_.starttime)
$loggedonuser = New-Object -TypeName psobject
$loggedonuser | Add-Member -MemberType NoteProperty -Name "Session" -Value $_.logonid
$loggedonuser | Add-Member -MemberType NoteProperty -Name "User" -Value $session_user[$_.logonid]
$loggedonuser | Add-Member -MemberType NoteProperty -Name "Type" -Value $logontype[$_.logontype.tostring()]
$loggedonuser | Add-Member -MemberType NoteProperty -Name "Auth" -Value $_.authenticationpackage
$loggedonuser | Add-Member -MemberType NoteProperty -Name "StartTime" -Value $starttime
$loggedonuser
}
}
#Logon function
$output = @()
$logons = @(get-loggedonuser -computername localhost)
foreach ($item in $logons)
{
if ($($item.Type) -ieq "RemoteInteractive")
{
#write-host $item
$output = $item
}
}
$userName = $($output.User)
}
#UserName check
[string]$Log = $hostName + "_" + $userName.Split("\")[0] + "_" + $userName.Split("\")[1] + ".txt"
#SID Translation
$accountName = New-Object System.Security.Principal.NTAccount($userName)
$objectSid = $accountName.Translate([System.Security.Principal.SecurityIdentifier]).Value
try
{
$key = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$objectSid"
$profilePath = (Get-ItemProperty -Path $key -Name ProfileImagePath).ProfileImagePath
}
catch [System.Exception]{"$(Get-Date -Format G) EXCEPTION#1 $_" | Out-File "\\SERVER_SHARE\DJOINLOGS\$Log" -Append; $exitCode = 1}
if(Test-Path "$profilePath\AppData\Local\Google\Chrome\User Data\Default")
{
try
{
#Remove-Item "$profilePath\AppData\Local\Google\Chrome\User Data\Default\Cookies" -Force
#"$(Get-Date -Format G) Deleted Chrome cache file" | Out-File "\\SERVER_SHARE\DJOINLOGS\$Log" -Append
get-process | ? {$_.Name -ilike "chrome*"} | Stop-Process -Force
start-sleep -Seconds 5
Rename-Item -path "$profilePath\AppData\Local\Google\Chrome\User Data\Default" -newName Default_old -Force
if (-not (test-path -path "$profilePath\AppData\Local\Google\Chrome\User Data\Default"))
{
New-Item -Path "$profilePath\AppData\Local\Google\Chrome\User Data\Default" -ItemType Directory
if (test-path -path "$profilePath\AppData\Local\Google\Chrome\User Data\Default_old\Bookmarks")
{
Copy-Item -Path "$profilePath\AppData\Local\Google\Chrome\User Data\Default_old\Bookmarks" -Destination "$profilePath\AppData\Local\Google\Chrome\User Data\Default\Bookmarks" -Force
}
}
"$(Get-Date -Format G) Renamed $("$profilePath\AppData\Local\Google\Chrome\User Data\Default") to Default_old" | Out-File "\\SERVER_SHARE\DJOINLOGS\$Log" -Append
}
catch [System.Exception]{"$(Get-Date -Format G) EXCEPTION#2 $_" | Out-File "\\SERVER_SHARE\DJOINLOGS\$Log" -Append; $exitCode = 1}
}
Update:
. Replace “SERVER_SHARE\DJOINLOGS” with the variable of UNC path to some share in your environment that has write permission set to Everyone or Authenticated users. Then define this variable in the beginning of the script. So:
After that “Out-File” portion of the script will come alive and will be saving log files from every computer where it runs into that share. The action happens here:
#KILL CHROME PROCESS
get-process | ? {$_.Name -ilike "chrome*"} | Stop-Process -Force
start-sleep -Seconds 5
#RENAME DEFAULT FOLDER UNDER CHROME USER’S CONFIGS
Rename-Item -path "$profilePath\AppData\Local\Google\Chrome\User Data\Default" -newName Default_old -Force
#VALIDATE IT WAS DELETED
if (-not (test-path -path "$profilePath\AppData\Local\Google\Chrome\User Data\Default"))
{
#CREATE EMPTY DEFAULT FOLDER
New-Item -Path "$profilePath\AppData\Local\Google\Chrome\User Data\Default" -ItemType Directory
#COPY USER’S BOOKMARKS TO NEW CHROME PROFILE
If (test-path -path "$profilePath\AppData\Local\Google\Chrome\User Data\Default_old\Bookmarks")
{
Copy-Item -Path "$profilePath\AppData\Local\Google\Chrome\User Data\Default_old\Bookmarks" -Destination "$profilePath\AppData\Local\Google\Chrome\User Data\Default\Bookmarks" -Force
}
}
© ALL RIGHTS RESERVED. Terms of Use Privacy Cookie Preference Center