diff --git a/FFUDevelopment/Apps/Orchestration/Invoke-AppsScript.ps1 b/FFUDevelopment/Apps/Orchestration/Invoke-AppsScript.ps1 index c7ab8f7..669a77e 100644 --- a/FFUDevelopment/Apps/Orchestration/Invoke-AppsScript.ps1 +++ b/FFUDevelopment/Apps/Orchestration/Invoke-AppsScript.ps1 @@ -38,8 +38,8 @@ else { # Example of how to use the AppsScriptVariables hashtable to control script execution -# Example: Check if a variable named 'foo' is set to string 'true' and run a script accordingly -# if ($AppsScriptVariables['foo'] -eq 'true') { +# Example: Check if a variable named 'foo' is set to string 'bar' and run a script accordingly +# if ($AppsScriptVariables['foo'] -eq 'bar') { # Write-Host "Foo would have installed" # } # else { @@ -47,11 +47,11 @@ else { # } # Example: Check if a variable named 'foo' is set to boolean $true and run a script accordingly -# if ($AppsScriptVariables['foo'] -eq $true) { -# Write-Host "Foo would have been installed" +# if ($AppsScriptVariables[Teams] -eq $true) { +# Write-Host "Teams would have been installed" # } # else { -# Write-Host "Foo would not have installed" +# Write-Host "Teams would not have been installed" # } # Your code below here diff --git a/FFUDevelopment/Apps/Orchestration/Orchestrator.ps1 b/FFUDevelopment/Apps/Orchestration/Orchestrator.ps1 index 24a50bc..bf26611 100644 --- a/FFUDevelopment/Apps/Orchestration/Orchestrator.ps1 +++ b/FFUDevelopment/Apps/Orchestration/Orchestrator.ps1 @@ -37,7 +37,6 @@ $scriptList = @( "Update-Edge.ps1", "Install-Win32Apps.ps1", "Install-StoreApps.ps1", - "Invoke-AppsScript.ps1", "Install-UserApps.ps1" ) # Check if each script exists and run it if it does @@ -46,7 +45,7 @@ foreach ($script in $scriptList) { if (Test-Path -Path $scriptFile) { Write-Host "`n" # Add a newline for spacing Write-Host "---------------------------------------------------" -ForegroundColor Yellow - Write-Host " Running script: $script" -ForegroundColor Yellow + Write-Host " Running script: $script " -ForegroundColor Yellow Write-Host "---------------------------------------------------" -ForegroundColor Yellow # Run script and wait for it to finish # pause @@ -54,12 +53,25 @@ foreach ($script in $scriptList) { } } +# Invoke-AppsScript.ps1 if it exists and AppsScriptVariables.json is present +$appsScriptFile = Join-Path -Path $scriptPath -ChildPath "Invoke-AppsScript.ps1" +$appsScriptVarsJsonPath = Join-Path -Path $PSScriptRoot -ChildPath "AppsScriptVariables.json" +if ((Test-Path -Path $appsScriptFile) -and (Test-Path -Path $appsScriptVarsJsonPath)) { + Write-Host "`n" # Add a newline for spacing + Write-Host "---------------------------------------------------" -ForegroundColor Yellow + Write-Host " Running script: Invoke-AppsScript.ps1 " -ForegroundColor Yellow + Write-Host "---------------------------------------------------" -ForegroundColor Yellow + + Write-Host "Using AppsScriptVariables from JSON file: $appsScriptVarsJsonPath" + & $appsScriptFile +} + # Run-DiskCleanup.ps1 must run before Run-Sysprep.ps1 $diskCleanupScript = Join-Path -Path $scriptPath -ChildPath "Run-DiskCleanup.ps1" if (Test-Path -Path $diskCleanupScript) { Write-Host "`n" # Add a newline for spacing Write-Host "---------------------------------------------------" -ForegroundColor Yellow - Write-Host " Running script: Run-DiskCleanup.ps1" -ForegroundColor Yellow + Write-Host " Running script: Run-DiskCleanup.ps1 " -ForegroundColor Yellow Write-Host "---------------------------------------------------" -ForegroundColor Yellow # Run script and wait for it to finish & $diskCleanupScript @@ -73,7 +85,7 @@ $sysprepScript = Join-Path -Path $scriptPath -ChildPath "Run-Sysprep.ps1" if (Test-Path -Path $sysprepScript) { Write-Host "`n" # Add a newline for spacing Write-Host "---------------------------------------------------" -ForegroundColor Yellow - Write-Host " Running script: Run-Sysprep.ps1" -ForegroundColor Yellow + Write-Host " Running script: Run-Sysprep.ps1 " -ForegroundColor Yellow Write-Host "---------------------------------------------------" -ForegroundColor Yellow # Run script and wait for it to finish & $sysprepScript diff --git a/FFUDevelopment/BuildFFUVM.ps1 b/FFUDevelopment/BuildFFUVM.ps1 index ef3d88c..f598c6b 100644 --- a/FFUDevelopment/BuildFFUVM.ps1 +++ b/FFUDevelopment/BuildFFUVM.ps1 @@ -19,7 +19,7 @@ When set to $true, will cache the VHDX file to the $FFUDevelopmentPath\VHDXCache Path to a JSON file containing a list of applications to install using WinGet. Default is $FFUDevelopmentPath\Apps\AppList.json. .PARAMETER AppsScriptVariables -When passed a hashtable, the script will alter the $FFUDevelopmentPath\Apps\InstallAppsandSysprep.cmd file to set variables with the hashtable keys as variable names and the hashtable values their content. +When passed a hashtable, the script will create an AppsScriptVariables.json file in the OrchestrationPath. This file will be used to pass variables to the Apps script. The hashtable should contain key-value pairs where the key is the variable name and the value is the variable value. .PARAMETER BuildUSBDrive When set to $true, will partition and format a USB drive and copy the captured FFU to the drive.