179 lines
5.2 KiB
PowerShell
179 lines
5.2 KiB
PowerShell
function Import-ScriptsFromUrls {
|
|
param (
|
|
[string[]] $ScriptUrls,
|
|
[string] $LocalPath
|
|
)
|
|
|
|
foreach ($url in $ScriptUrls) {
|
|
$fileName = Split-Path -Leaf $url
|
|
$localFile = Join-Path -Path $LocalPath -ChildPath $fileName
|
|
Write-Host "Downloading script from $url to $localFile"
|
|
Invoke-WebRequest -Uri $url -OutFile $localFile
|
|
Write-Host "Importing script from $localFile"
|
|
. $localFile
|
|
}
|
|
}
|
|
|
|
$baseUrl = "https://git.justw.tf/Lightemerald/setup-script/raw/branch/main/"
|
|
$localPath = "C:\setup-scripts"
|
|
$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 -LocalPath $localPath
|
|
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 |