powershell -ExecutionPolicy Bypass -File "Install-AccessDatabaseEngine.ps1"
try $process = Start-Process -FilePath $tempPath -ArgumentList $installArgs -Wait -PassThru -NoNewWindow accessdatabaseengine_x64.exe
if ($process.ExitCode -eq 0) Write-Host "Installation completed successfully." -ForegroundColor Green # Optional: log the installation "$(Get-Date) - Installation successful" else Write-Host "Installation failed with exit code: $($process.ExitCode)" -ForegroundColor Red "$(Get-Date) - Installation failed with exit code: $($process.ExitCode)" catch Write-Host "Installation error: $_" -ForegroundColor Red exit 1 accessdatabaseengine_x64.exe
catch Write-Host "Download failed: $_" -ForegroundColor Red exit 1 /quiet - no UI, /passive - shows progress (change to /quiet for total silence) $installArgs = "/quiet /norestart" accessdatabaseengine_x64.exe
foreach ($clsid in $providers) if (Test-Path $clsid) return $true
return $false Write-Host "Checking if Access Database Engine is already installed..." -ForegroundColor Cyan if (Test-ACEDriverInstalled) Write-Host "Access Database Engine appears to be already installed. Skipping installation." -ForegroundColor Green exit 0
# Alternative: check for ACE OLEDB provider in registry $providers = @( "HKLM:\SOFTWARE\Classes\CLSID\3BE786A0-0366-4F5C-8FB6-95A30E2BDB44" # ACE 12.0 "HKLM:\SOFTWARE\Classes\CLSID\3BE786A0-0366-4F5C-8FB6-95A30E2BDB45" # ACE 16.0 (2016) "HKLM:\SOFTWARE\WOW6432Node\Classes\CLSID\3BE786A0-0366-4F5C-8FB6-95A30E2BDB44" "HKLM:\SOFTWARE\WOW6432Node\Classes\CLSID\3BE786A0-0366-4F5C-8FB6-95A30E2BDB45" )