From 48091d55966b52e0b5f49713db2efc1f6d5c94d6 Mon Sep 17 00:00:00 2001 From: Lightemerald Date: Mon, 13 Nov 2023 11:45:44 +0100 Subject: [PATCH] Fixing Isssues with install apps --- setupApps.ps1 | 38 ++++++++++++++++++-------------------- setupChoco.ps1 | 14 ++++++++++---- setupOffice.ps1 | 2 +- setupScript.ps1 | 48 +++++++++--------------------------------------- 4 files changed, 38 insertions(+), 64 deletions(-) diff --git a/setupApps.ps1 b/setupApps.ps1 index befe794..357c1ba 100644 --- a/setupApps.ps1 +++ b/setupApps.ps1 @@ -7,18 +7,6 @@ function InstallMsi { Start-Process -FilePath "msiexec.exe" -ArgumentList "/i `"$msiFilePath`" /qn" -Wait } -function InstallZipMsi { - param ( - [string] $zip, - [string] $msi - ) - $zipName = [System.IO.Path]::GetFileNameWithoutExtension($zip) - Write-Host "Installing $zipName..." - Expand-Archive -Path (Join-Path $tmpPath $zip) -DestinationPath (Join-Path $tmpPath $zipName) -Force - $msiFilePath = Join-Path -Path $tmpPath -ChildPath $msi - Start-Process -FilePath "msiexec.exe" -ArgumentList "/i `"$msiFilePath`" /qn" -Wait -} - function InstallExeSetup { param ( [string] $app @@ -48,20 +36,30 @@ function InstallZipSetup { ) $zipName = [System.IO.Path]::GetFileNameWithoutExtension($zip) Write-Host "Installing $zipName..." - Expand-Archive -Path (Join-Path $tmpPath $zip) -DestinationPath $tmpPath -Force - Start-Process -FilePath $(Join-Path -Path $tmpPath -ChildPath (Join-Path -Path $zipName -ChildPath $exe)) -ArgumentList "/allusers /s" -Wait + $expPath = Join-Path $tmpPath $zipName + Expand-Archive -Path (Join-Path $tmpPath $zip) -DestinationPath $expPath -Force + Start-Process -FilePath $(Join-Path -Path $expPath -ChildPath (Join-Path -Path $zipName -ChildPath $exe)) -ArgumentList "/allusers /s" -Wait } function InstallZip { param ( [string] $zip, [string] $exe, - [string] $app + [string] $app, + [bool] $createSubfolder = $false ) $zipName = [System.IO.Path]::GetFileNameWithoutExtension($zip) Write-Host "Installing $zipName..." - Expand-Archive -Path (Join-Path $tmpPath $zip) -DestinationPath $env:ProgramFiles -Force - if (-not $zipName.Equals($app)) { + $targetPath = $env:ProgramFiles + if ($createSubfolder) { + $subFolder = Join-Path $env:ProgramFiles $zipName + if (-not (Test-Path -Path $subFolder -PathType Container)) { + New-Item -Path $subFolder -ItemType Directory + } + $targetPath = $subFolder + } + Expand-Archive -Path (Join-Path $tmpPath $zip) -DestinationPath $targetPath -Force + if (-not $zipName.Equals($app) -and (-not (Test-Path -Path (Join-Path $targetPath $app) -PathType Container))) { Move-Item -Path (Join-Path $env:ProgramFiles $zipName) -Destination (Join-Path $env:ProgramFiles $app) } CreateShortcut -exe $(Join-Path -Path $env:ProgramFiles -ChildPath (Join-Path -Path $app -ChildPath $exe)) -app $app @@ -107,14 +105,14 @@ function InstallApps { InstallZip -zip "Tectoglob_11_complet.zip" -exe "TectoGlob.exe" -app "TectoGlob" InstallExe -app "Respipoisson.exe" InstallMsi -app "regressi-mpeg-setup.msi" - InstallZip -zip "regavi.zip" -exe "regavi.exe" -app "Regavi" + InstallZip -zip "regavi.zip" -exe "regavi.exe" -app "Regavi" -createSubfolder $true InstallExe -app "Radiochr.exe" InstallZip -zip "Phylogene-Lycee-2021.zip" -exe "Programmes\Phylo.exe" -app "Phylogene" InstallZip -zip "paleoterre_el32.zip" -exe "paleoTerre.exe" -app "PaleoTerre" InstallExeSetup -app "Eduanat2_Setup_2.0.0.exe" - InstallZip -zip "couvac_exe.zip" -exe "couvac.exe" -app "Couvac" + InstallZip -zip "couvac_exe.zip" -exe "couvac.exe" -app "Couvac" -createSubfolder $true InstallZipSetup -zip "ACDLabs202311_ChemSketch_FInstall.zip" -exe "setup.exe" - InstallZipMsi -zip "Anagene.zip" -msi "Anagène 2.msi" + InstallZipSetup -zip "Anagene.zip" -exe "Anagene/Setup.exe" } "Info" { InstallZip -zip "simulation.zip" -exe "simulation.exe" -app "Simulation Domotique" diff --git a/setupChoco.ps1 b/setupChoco.ps1 index 1bc3f88..de06afc 100644 --- a/setupChoco.ps1 +++ b/setupChoco.ps1 @@ -4,7 +4,8 @@ function InstallChoco { function ChocoInstallApps { param ( - [string] $Type + [string] $Type, + [string] $Apps ) switch ($Type) { @@ -20,7 +21,7 @@ function ChocoInstallApps { choco install audacity -y choco install avogadro -y choco install arduino -y --install-arguments="/allusers" --force - } + } "Info" { choco install dotnet -y choco install vcredist-all -y @@ -35,14 +36,19 @@ function ChocoInstallApps { choco install mblock -y choco install arduino -y --install-arguments="/allusers" choco install ganttproject -y - } + } "Laptop" { choco install dotnet -y choco install vcredist-all -y choco install firefox -y choco install 7zip -y choco install vlc -y - } + } + "Custom" { + foreach ($app in $Apps) { + choco install $app -y + } + } default { Write-Host "Invalid selection." } } } \ No newline at end of file diff --git a/setupOffice.ps1 b/setupOffice.ps1 index d340d5c..1252b50 100644 --- a/setupOffice.ps1 +++ b/setupOffice.ps1 @@ -19,9 +19,9 @@ function CheckOfficeInstall { Write-Host "Microsoft Office is not installed." InstallOffice } - Write-Host "Activating Windows and Office..." $status = CheckActivation if ($status -eq $false) { + Write-Host "Activating Windows and Office..." ActivateWindowsOffice } Write-Host "Windows and Office activation complete!" diff --git a/setupScript.ps1 b/setupScript.ps1 index 683945e..6fcafee 100644 --- a/setupScript.ps1 +++ b/setupScript.ps1 @@ -9,7 +9,7 @@ function Import-ScriptsFromUrls { foreach ($url in $ScriptUrls) { $fileName = Split-Path -Leaf $url $localFile = Join-Path -Path $LocalPath -ChildPath $fileName - Write-Host "Downloading script from $url to $localFile" + Write-Host "Downloading script $fileName to $localFile" Invoke-WebRequest -Uri $url -OutFile $localFile -UseBasicParsing Write-Host "Importing script from $localFile" $scripts += $localFile @@ -54,42 +54,31 @@ function Setup { } 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 = @() @@ -101,41 +90,25 @@ function Custom { } 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 + SetupCustom -Office $Office -Users $Users -EleveReg $EleveReg -RDP $RDP -Choco $Choco -ChocoApps $ChocoApps -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 } @@ -154,9 +127,6 @@ function SetupCustom { ChocoInstallApps -Type "Custom" -Apps $ChocoApps } } - if ($Apps) { - InstallApps -Type "Custom" -Apps $Apps - } if ($Update) { UpdateWindows }