# check-prerequisites.ps1 # Script per verificare i prerequisiti degli script PowerShell function Write-Status { param( [string]$check, [bool]$passed, [string]$details ) $status = if ($passed) { "[OK]" } else { "[ERRORE]" } Write-Host "`n$check : $status" if ($details) { Write-Host $details } } # Verifica versione PowerShell $psVersion = $PSVersionTable.PSVersion $psVersionOk = $psVersion.Major -ge 5 -and $psVersion.Minor -ge 1 Write-Status -check "Versione PowerShell" -passed $psVersionOk -details "Versione installata: $($psVersion.ToString())`nVersione minima richiesta: 5.1" # Verifica System.Data assembly try { Add-Type -AssemblyName System.Data $adoNetOk = $true Write-Status -check "ADO.NET System.Data" -passed $true -details "Assembly System.Data caricato correttamente" } catch { $adoNetOk = $false Write-Status -check "ADO.NET System.Data" -passed $false -details "Errore nel caricamento di System.Data" } # Verifica SqlCommand try { $connection = New-Object System.Data.SqlClient.SqlConnection $command = New-Object System.Data.SqlClient.SqlCommand("", $connection) $sqlCommandOk = $true Write-Status -check "SQL Command" -passed $true -details "Creazione SqlCommand riuscita" } catch { $sqlCommandOk = $false Write-Status -check "SQL Command" -passed $false -details "Errore nella creazione di SqlCommand: $($_.Exception.Message)" } # Riepilogo finale $allOk = $psVersionOk -and $adoNetOk -and $sqlCommandOk Write-Host "`n----------------------------------------" $exitMessage = if ($allOk) { "Tutti i prerequisiti sono soddisfatti" } else { "ATTENZIONE: Alcuni prerequisiti non sono soddisfatti" } $exitColor = if ($allOk) { "Green" } else { "Red" } Write-Host $exitMessage -ForegroundColor $exitColor Write-Host "----------------------------------------" # Restituisci il risultato complessivo exit ([int](-not $allOk))