|
# Iniciar-Chrome-PowerApps.ps1
|
|
# Abre o Chrome com perfil dedicado, limpando cache a cada execução,
|
|
# mantendo preferências, definindo pt-BR e permitindo pop-ups.
|
|
# Requer Windows + PowerShell 5+ e Google Chrome instalado.
|
|
|
|
# ========= CONFIGURAÇÕES =========
|
|
# URL de destino (usei & ao invés de &):
|
|
$TargetUrl = 'https://apps.powerapps.com/play/e/95203756-a24d-e221-aee4-040d2fcb80ea/a/25ae4e14-7c4c-4d30-8f9e-6a9b71d0b12d?tenantId=f1336bbd-288a-4586-b8d3-97841f4b5b97&sourcetime=1768431412364'
|
|
|
|
# Pasta do perfil dedicado (se preferir, altere o nome da pasta):
|
|
$UserDataDir = Join-Path $env:LOCALAPPDATA 'Google\Chrome\PowerApps_Profile'
|
|
$ProfileDir = Join-Path $UserDataDir 'Default'
|
|
|
|
# Se quiser *também* apagar dados locais das apps (IndexedDB, Local Storage, etc.),
|
|
# mude para $true (atenção: isso pode deslogar aplicativos web):
|
|
$AggressiveSiteDataCleanup = $false
|
|
# =================================
|
|
|
|
|
|
Write-Host ">> Preparando ambiente do Chrome para Power Apps..." -ForegroundColor Cyan
|
|
|
|
# 1) Localiza o executável do Chrome
|
|
$chromeCandidates = @(
|
|
Join-Path $env:ProgramFiles 'Google\Chrome\Application\chrome.exe'),
|
|
(Join-Path ${env:ProgramFiles(x86)} 'Google\Chrome\Application\chrome.exe'),
|
|
(Join-Path $env:LOCALAPPDATA 'Google\Chrome\Application\chrome.exe')
|
|
) | Where-Object { $_ -and (Test-Path $_) }
|
|
|
|
$ChromePath = $chromeCandidates | Select-Object -First 1
|
|
|
|
if (-not $ChromePath) {
|
|
Write-Error "Google Chrome não encontrado nas pastas padrão. Instale o Chrome ou ajuste o caminho no script."
|
|
exit 1
|
|
}
|
|
|
|
# 2) Garante que o perfil dedicado exista
|
|
New-Item -ItemType Directory -Path $ProfileDir -Force | Out-Null
|
|
|
|
# 3) Encerra instâncias do Chrome que estejam usando ESTE perfil (se houver)
|
|
try {
|
|
$procs = Get-CimInstance Win32_Process -Filter 'Name = "chrome.exe"' -ErrorAction SilentlyContinue |
|
|
Where-Object { $_.CommandLine -and ($_.CommandLine -match [Regex]::Escape($UserDataDir)) }
|
|
if ($procs) {
|
|
Write-Host ">> Encerrando instâncias do Chrome com o perfil dedicado..." -ForegroundColor Yellow
|
|
$procs | ForEach-Object { Stop-Process -Id $_.ProcessId -Force -ErrorAction SilentlyContinue }
|
|
Start-Sleep -Milliseconds 300
|
|
}
|
|
} catch { }
|
|
|
|
# 4) Limpa apenas cache (preserva cookies, logins e preferências)
|
|
$cachePaths = @(
|
|
Join-Path $ProfileDir 'Cache',
|
|
Join-Path $ProfileDir 'Code Cache',
|
|
Join-Path $ProfileDir 'GPUCache',
|
|
Join-Path $ProfileDir 'Service Worker\CacheStorage',
|
|
Join-Path $ProfileDir 'Service Worker\Database'
|
|
)
|
|
|
|
foreach ($p in $cachePaths) {
|
|
if (Test-Path -LiteralPath $p) {
|
|
try {
|
|
Write-Host ">> Limpando cache: $p" -ForegroundColor DarkGray
|
|
Remove-Item -LiteralPath $p -Recurse -Force -ErrorAction Stop
|
|
} catch {
|
|
Write-Warning "Não foi possível limpar: $p. Motivo: $($_.Exception.Message)"
|
|
}
|
|
}
|
|
}
|
|
|
|
# 5) (Opcional) Limpeza agressiva de dados das aplicações (pode deslogar sites)
|
|
if ($AggressiveSiteDataCleanup) {
|
|
$siteDataPaths = @(
|
|
Join-Path $ProfileDir 'Local Storage',
|
|
Join-Path $ProfileDir 'IndexedDB',
|
|
Join-Path $ProfileDir 'WebStorage',
|
|
Join-Path $ProfileDir 'File System',
|
|
Join-Path $ProfileDir 'Databases',
|
|
Join-Path $ProfileDir 'Storage',
|
|
Join-Path $ProfileDir 'BlobStorage'
|
|
)
|
|
|
|
foreach ($p in $siteDataPaths) {
|
|
if (Test-Path -LiteralPath $p) {
|
|
try {
|
|
Write-Host ">> (Agressivo) Removendo dados de aplicação: $p" -ForegroundColor DarkYellow
|
|
Remove-Item -LiteralPath $p -Recurse -Force -ErrorAction Stop
|
|
} catch {
|
|
Write-Warning "Não foi possível remover: $p. Motivo: $($_.Exception.Message)"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# 6) Argumentos do Chrome:
|
|
# - --user-data-dir => usa o perfil dedicado, preserva configurações do usuário
|
|
# - --lang=pt-BR => interface/idioma pt-BR
|
|
# - --disable-popup-blocking => permite pop-ups
|
|
# - --no-first-run => evita telas iniciais
|
|
# - --start-maximized => janela maximizada
|
|
$chromeArgs = @(
|
|
"--user-data-dir=""$UserDataDir""",
|
|
'--no-first-run',
|
|
'--disable-popup-blocking',
|
|
'--lang=pt-BR',
|
|
'--start-maximized',
|
|
$TargetUrl
|
|
)
|
|
|
|
Write-Host ">> Iniciando Chrome..." -ForegroundColor Green
|
|
Start-Process -FilePath $ChromePath -ArgumentList $chromeArgs
|