function Import-ScriptsFromUrls { param ( [string[]] $ScriptUrls ) foreach ($url in $ScriptUrls) { irm $url | iex } } $baseUrl = "https://git.justw.tf/Lightemerald/setup-script/raw/branch/main/" $scriptUrls = @( ($baseUrl + "setupTmp.ps1"), ($baseUrl + "setupOffice.ps1"), ($baseUrl + "setupUsers.ps1"), ($baseUrl + "setupReg.ps1"), ($baseUrl + "setupChoco.ps1"), ($baseUrl + "setupApps.ps1"), ($baseUrl + "setupUpdate.ps1") ) Import-ScriptsFromUrls -ScriptUrls $scriptUrls function Setup { param ( [string] $Type ) Write-Host "Performing $Type Installation..." DownloadFiles -Type $Type CheckOfficeInstall SetupUsers SetupEleveReg -username "Eleve" EnableRDP InstallChoco ChocoInstallApps -Type $Type InstallApps -Type $Type UpdateWindows Write-Host "Installation complete!" } function Custom { # ask user if they need to download files $input = Read-Host "Do you need to download files? (y/n)" if ($input -eq "y") { $DownloadFiles = @() do { $input = Read-Host "Enter the URL of the file you want to download (leave empty to stop)" if ($input -ne "") { $DownloadFiles += $input } } while ($input -ne "") } # ask user if they need to install office $input = Read-Host "Do you need to install Office? (y/n)" if ($input -eq "y") { $Office = $true } # ask user if they need to setup users $input = Read-Host "Do you need to setup users? (y/n)" if ($input -eq "y") { $Users = $true # ask user if they need to setup eleve registry $input = Read-Host "Do you need to setup eleve registry? (y/n)" if ($input -eq "y") { $EleveReg = $true } } # ask user if they need to enable RDP $input = Read-Host "Do you need to enable RDP? (y/n)" if ($input -eq "y") { $RDP = $true } # ask user if they need to install chocolatey $input = Read-Host "Do you need to install chocolatey? (y/n)" if ($input -eq "y") { $Choco = $true # ask user if they need to install chocolatey apps $input = Read-Host "Do you need to install chocolatey apps? (y/n)" if ($input -eq "y") { $ChocoApps = @() do { $input = Read-Host "Enter the name of the app you want to install (leave empty to stop)" if ($input -ne "") { $ChocoApps += $input } } while ($input -ne "") } } # ask user if they need to install apps $input = Read-Host "Do you need to install apps? (y/n)" if ($input -eq "y") { $Apps = @() do { $input = Read-Host "Enter the name of the app you want to install (leave empty to stop)" if ($input -ne "") { $Apps += $input } } while ($input -ne "") } # ask user if they need to update windows $input = Read-Host "Do you need to update windows? (y/n)" if ($input -eq "y") { $Update = $true } SetupCustom -DownloadFiles $DownloadFiles -Office $Office -Users $Users -EleveReg $EleveReg -RDP $RDP -Choco $Choco -ChocoApps $ChocoApps -Apps $Apps -Update $Update } function SetupCustom { param ( [array] $DownloadFiles, [bool] $Office, [bool] $Users, [bool] $EleveReg, [bool] $RDP, [bool] $Choco, [array] $ChocoApps, [array] $Apps, [bool] $Update ) Write-Host "Performing Custom Installation..." if ($DownloadFiles) { DownloadFiles -Type "Custom" -Files $DownloadFiles } if ($Office) { CheckOfficeInstall } if ($Users) { SetupUsers if ($EleveReg) { SetupEleveReg -username "Eleve" } } if ($RDP) { EnableRDP } if ($Choco) { InstallChoco if ($ChocoApps) { ChocoInstallApps -Type "Custom" -Apps $ChocoApps } } if ($Apps) { InstallApps -Type "Custom" -Apps $Apps } if ($Update) { UpdateWindows } } function Show-InstallationMenu { $selection = $null do { Write-Host "Which type of installation would you like to perform?" Write-Host "1. Labo" Write-Host "2. Info" Write-Host "3. Laptop" $selection = Read-Host "Enter the number of your choice" switch ($selection) { "1" { Setup -Type "Labo" } "2" { Setup -Type "Info" } "3" { Setup -Type "Laptop" } "4" { Custom } default { Write-Host "Invalid selection. Please choose 1, 2, or 3." } } } while ($selection -ne "1" -and $selection -ne "2" -and $selection -ne "3") } Show-InstallationMenu