JustPaste.it

# Script per Provisioning AppxBundle e Dipendenze
# Eseguire questo script in PowerShell (come Amministratore) in Modalità Audit.

# --- 1. Definizione dei Percorsi (Verificare che tutti i file siano presenti in C:\) ---

# Appx Bundle principale
$AppxBundlePath = "C:\Ookla.SpeedtestbyOokla_1.18.194.0_neutral_~_43tkc6nmykmb6.AppxBundle"

# Dipendenze x64 (Framework, Runtime, VCLibs)
$DependencyPath1_x64 = "C:\Microsoft.NET.Native.Framework.1.7_1.7.27413.0_x64__8wekyb3d8bbwe.Appx"
$DependencyPath2_x64 = "C:\Microsoft.NET.Native.Runtime.1.7_1.7.27422.0_x64__8wekyb3d8bbwe.Appx"
$DependencyPath3_x64 = "C:\Microsoft.VCLibs.140.00_14.0.33519.0_x64__8wekyb3d8bbwe.Appx"

# Dipendenze x86 (Framework, Runtime, VCLibs)
$DependencyPath4_x86 = "C:\Microsoft.NET.Native.Framework.1.7_1.7.27413.0_x86__8wekyb3d8bbwe.Appx"
$DependencyPath5_x86 = "C:\Microsoft.NET.Native.Runtime.1.7_1.7.27422.0_x86__8wekyb3d8bbwe.Appx"
$DependencyPath6_x86 = "C:\Microsoft.VCLibs.140.00_14.0.33519.0_x86__8wekyb3d8bbwe.Appx"


# --- 2. Esecuzione del Provisioning DISM ---

Write-Host "Inizio Provisioning DISM per Ookla Speedtest..."

# Il comando è ora su una riga singola e usa le virgolette per espandere le variabili in modo sicuro.
$DismCommand = "DISM.EXE /Online /Add-ProvisionedAppxPackage /PackagePath:`"$AppxBundlePath`" /SkipLicense /Region:all /DependencyPackagePath:`"$DependencyPath1_x64`" /DependencyPackagePath:`"$DependencyPath2_x64`" /DependencyPackagePath:`"$DependencyPath3_x64`" /DependencyPackagePath:`"$DependencyPath4_x86`" /DependencyPackagePath:`"$DependencyPath5_x86`" /DependencyPackagePath:`"$DependencyPath6_x86`""

# Esegui il comando DISM
Invoke-Expression $DismCommand

if ($LASTEXITCODE -eq 0) {
    Write-Host "Provisioning DISM completato con successo."
} else {
    Write-Error "Errore critico durante il provisioning DISM. Codice di uscita: $LASTEXITCODE"
    Write-Error "Controllare i log di DISM e i percorsi dei file."
    Exit 1
}


# --- 3. Pulizia Installazione Utente Audit ---

Write-Host "Rimozione di eventuali installazioni precedenti dall'utente Audit..."
Get-AppxPackage -AllUsers | Where-Object {$_.Name -like "*Ookla*"} | Remove-AppxPackage -ErrorAction SilentlyContinue


# --- 4. Verifica Finale del Provisioning ---

Write-Host "Verifica del pacchetto aggiunto all'immagine..."
$Check = Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -like "*Ookla*"}

if ($Check) {
    Write-Host "=== VERIFICA COMPLETATA: Il pacchetto Ookla Speedtest è provisionato correttamente. ==="
    $Check | Format-List DisplayName, PackageName, Architecture
} else {
    Write-Error "!!! ERRORE: Il pacchetto Ookla non risulta provisionato. Controllare i log di DISM. !!!"
    Exit 1
}

Write-Host "PROCEDURA COMPLETATA. Ora è possibile eseguire Sysprep."