기존 크롬에서는 특정 폴더에 캐시 관련해 모두 저장되었기 때문에 아래의 shell script가 먹혔다.
현재 크롬은 이곳저곳 캐시를 흩뿌려 놓고 있어서 2가지 방법이 주로 쓰인다.
1) 캐시를 저장하는 폴더를 지정해서 실행
2) 브라우저를 띄워서 캐시 삭제 창 띄우고 삭제 클릭
1의 경우 browser를 파이썬 같은 걸로 띄울 때 파라미터를 주는 방식이다. 아예 캐시가 저장될 파라미터를 실행할 때 주고 그 폴더를 삭제하는 방식으로 캐시를 삭제한다. 다만 uipath에서는 이렇게 하려면 open browser 대신 start process로 실행 후 attach하는 방식이 되기 때문에 범용적으로 쓰기 어렵다.
2의 경우 브라우저를 open browser로 아무 주소로나 띄운 후, send hot key로 ctrl + shift + del 을 눌러 삭제 버튼을 누르고 대기해주는 방식이다. front로 진행하기 때문에 적절한 retry scope 및 확인 체크를 해주는 것을 추천한다.
캐시때문에 간간히 로그인 세션 등이 꼬일 때가 있기 때문에 프레임워크에 포함시키면 좋은 스크립트.
Cache.bat으로 만들어서 실행시키는 게 가장 무난해 보임
Invoke Power Shell 을 쓸 때, IsScript 체크 / TypeArgument 는 String으로 설정되어 있는지 체크.
+ 2022.05.13 : 크롬에 적용해보니 세션이 안 없어지길래 살펴보니 Network라는 폴더로 쿠키의 위치가 바뀌었음
=> Network 폴더 추가함
+ 기본적으로 크롬의 새로운 프로필(Default가 아닌 프로필)의 경우엔 그 경로도 포함해줘야 함
/******************************************* Powershell script *****************************
"-------------------"
Write-Host -ForegroundColor Green "SECTION 1: Getting the list of users"
"-------------------"
# Write Information to the screen
Write-Host -ForegroundColor yellow "Exporting the list of users to c:\users\%username%\users.csv"
# List the users in c:\users and export to the local profile for calling later
dir C:\Users | select Name | Export-Csv -Path C:\users\$env:USERNAME\users.csv -NoTypeInformation
$list=Test-Path C:\users\$env:USERNAME\users.csv
""
#########################
"-------------------"
Write-Host -ForegroundColor Green "SECTION 2: Beginning Script..."
"-------------------"
if ($list) {
"-------------------"
#Clear Mozilla Firefox Cache
Write-Host -ForegroundColor Green "SECTION 3: Clearing Mozilla Firefox Caches"
"-------------------"
Write-Host -ForegroundColor yellow "Clearing Mozilla caches"
Write-Host -ForegroundColor cyan
Import-CSV -Path C:\users\$env:USERNAME\users.csv -Header Name | foreach {
Remove-Item -path C:\Users\$($_.Name)\AppData\Local\Mozilla\Firefox\Profiles\*.default\cache\* -Recurse -Force -EA SilentlyContinue -Verbose
Remove-Item -path C:\Users\$($_.Name)\AppData\Local\Mozilla\Firefox\Profiles\*.default\cache\*.* -Recurse -Force -EA SilentlyContinue -Verbose
Remove-Item -path C:\Users\$($_.Name)\AppData\Local\Mozilla\Firefox\Profiles\*.default\cache2\entries\*.* -Recurse -Force -EA SilentlyContinue -Verbose
Remove-Item -path C:\Users\$($_.Name)\AppData\Local\Mozilla\Firefox\Profiles\*.default\thumbnails\* -Recurse -Force -EA SilentlyContinue -Verbose
Remove-Item -path C:\Users\$($_.Name)\AppData\Local\Mozilla\Firefox\Profiles\*.default\cookies.sqlite -Recurse -Force -EA SilentlyContinue -Verbose
Remove-Item -path C:\Users\$($_.Name)\AppData\Local\Mozilla\Firefox\Profiles\*.default\webappsstore.sqlite -Recurse -Force -EA SilentlyContinue -Verbose
Remove-Item -path C:\Users\$($_.Name)\AppData\Local\Mozilla\Firefox\Profiles\*.default\chromeappsstore.sqlite -Recurse -Force -EA SilentlyContinue -Verbose
}
Write-Host -ForegroundColor yellow "Clearing Mozilla caches"
Write-Host -ForegroundColor yellow "Done..."
""
"-------------------"
# Clear Google Chrome
Write-Host -ForegroundColor Green "SECTION 4: Clearing Google Chrome Caches"
"-------------------"
Write-Host -ForegroundColor yellow "Clearing Google caches"
Write-Host -ForegroundColor cyan
Import-CSV -Path C:\users\$env:USERNAME\users.csv -Header Name | foreach {
Remove-Item -path "C:\Users\$($_.Name)\AppData\Local\Google\Chrome\User Data\Default\Cache\*" -Recurse -Force -EA SilentlyContinue -Verbose
Remove-Item -path "C:\Users\$($_.Name)\AppData\Local\Google\Chrome\User Data\Default\Cache2\entries\*" -Recurse -Force -EA SilentlyContinue -Verbose
Remove-Item -path "C:\Users\$($_.Name)\AppData\Local\Google\Chrome\User Data\Default\Cookies" -Recurse -Force -EA SilentlyContinue -Verbose
Remove-Item -path "C:\Users\$($_.Name)\AppData\Local\Google\Chrome\User Data\Default\Media Cache" -Recurse -Force -EA SilentlyContinue -Verbose
Remove-Item -path "C:\Users\$($_.Name)\AppData\Local\Google\Chrome\User Data\Default\Cookies-Journal" -Recurse -Force -EA SilentlyContinue -Verbose
Remove-Item -path "C:\Users\$($_.Name)\AppData\Local\Google\Chrome\User Data\Default\Sessions\*" -Recurse -Force -EA SilentlyContinue -Verbose
Remove-Item -path "C:\Users\$($_.Name)\AppData\Local\Google\Chrome\User Data\Default\Session Storage\*" -Recurse -Force -EA SilentlyContinue -Verbose
Remove-Item -path "C:\Users\$($_.Name)\AppData\Local\Google\Chrome\User Data\Default\Network\*" -Recurse -Force -EA SilentlyContinue -Verbose
# Comment out the following line to remove the Chrome Write Font Cache too.
# Remove-Item -path "C:\Users\$($_.Name)\AppData\Local\Google\Chrome\User Data\Default\ChromeDWriteFontCache" -Recurse -Force -EA SilentlyContinue -Verbose
}
Write-Host -ForegroundColor yellow "Done..."
""
"-------------------"
# Clear Internet Explorer
Write-Host -ForegroundColor Green "SECTION 5: Clearing Internet Explorer Caches"
"-------------------"
Write-Host -ForegroundColor yellow "Clearing Google caches"
Write-Host -ForegroundColor cyan
Import-CSV -Path C:\users\$env:USERNAME\users.csv | foreach {
Remove-Item -path "C:\Users\$($_.Name)\AppData\Local\Microsoft\Windows\Temporary Internet Files\*" -Recurse -Force -EA SilentlyContinue -Verbose
Remove-Item -path "C:\Users\$($_.Name)\AppData\Local\Microsoft\Windows\WER\*" -Recurse -Force -EA SilentlyContinue -Verbose
Remove-Item -path "C:\Users\$($_.Name)\AppData\Local\Temp\*" -Recurse -Force -EA SilentlyContinue -Verbose
Remove-Item -path "C:\Windows\Temp\*" -Recurse -Force -EA SilentlyContinue -Verbose
Remove-Item -path "C:\`$recycle.bin\" -Recurse -Force -EA SilentlyContinue -Verbose
}
Write-Host -ForegroundColor yellow "Done..."
""
Write-Host -ForegroundColor Green "All Tasks Done!"
} else {
Write-Host -ForegroundColor Yellow "Session Cancelled"
}