# Check admin rights for AllUsers if ($AllUsers -and (-not (New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) throw "Administrator privileges required for AllUsers installation" # Verify file exists if (-not (Test-Path $BundlePath)) throw "Bundle file not found: $BundlePath" # Check if already installed $bundleInfo = Get-AppxPackage -Name (Get-AppxPackageManifest -Path $BundlePath).Package.Identity.Name if ($bundleInfo) Write-Log "Package already installed. Version: $($bundleInfo.Version)" $response = Read-Host "Do you want to reinstall? (y/n)" if ($response -ne 'y') Write-Log "Installation cancelled by user" return # Perform installation if ($AllUsers) Write-Log "Installing for all users..." Add-AppxPackage -Path $BundlePath -AllUsers -ErrorAction Stop else Write-Log "Installing for current user..." Add-AppxPackage -Path $BundlePath -ErrorAction Stop Write-Log "Installation completed successfully" Write-Host "✅ Installation successful!" -ForegroundColor Green
[switch]$AllUsers,
Solution: Remove existing version first
function Write-Log Out-File -FilePath $LogFile -Append Write-Host $Message