#Requires -RunAsAdministrator <# .SYNOPSIS Installs prerequisites for SharePoint XLS Converter application #> # Enable TLS 1.2 for secure connections [Net.ServicePointManager]::SecurityProtocol = [enum]::Parse([Net.SecurityProtocolType], "Tls12") # Verify .NET Framework 4.6+ is installed if (-not (Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\' | Get-ItemPropertyValue -Name Release | ForEach-Object { $_ -ge 394802 })) { Write-Host "ERROR: Requires .NET Framework 4.6.2 or newer!" -ForegroundColor Red Write-Host "Download from: https://dotnet.microsoft.com/download/dotnet-framework" -ForegroundColor Yellow exit 1 } Write-Host "Installing required modules..." -ForegroundColor Cyan # Install Microsoft.Graph modules $graphModules = @( "Microsoft.Graph.Sites", "Microsoft.Graph.Files", "Microsoft.Graph.Authentication" ) foreach ($module in $graphModules) { if (-not (Get-Module -ListAvailable -Name $module)) { try { Install-Module $module -Scope CurrentUser -Force -AllowClobber Write-Host "$module module installed successfully" -ForegroundColor Green } catch { Write-Host "Failed to install ${module}: $($_.Exception.Message)" -ForegroundColor Red exit 1 } } else { Write-Host "$module module is already installed" -ForegroundColor Yellow } } # Check for Excel installation try { $excelCheck = New-Object -ComObject Excel.Application -ErrorAction Stop $excelCheck.Quit() [System.Runtime.Interopservices.Marshal]::ReleaseComObject($excelCheck) | Out-Null Write-Host "Microsoft Excel is installed" -ForegroundColor Green } catch { Write-Host @" Microsoft Excel not found! The conversion feature requires: 1. Microsoft Excel 2013 or newer 2. PowerShell must run in STA mode Run the main script like this: pwsh -STA -File .\MainForm.ps1 "@ -ForegroundColor Red exit 1 } Write-Host @" Installation complete! Run the main application with: pwsh -STA -File .\MainForm.ps1 Note: First run might take longer while modules load "@ -ForegroundColor Green