function Set-AlkamiConfiguration { <# .SYNOPSIS Used to configure Alkami specific settings to help ensure a smooth developer experience .PARAMETER Configuration This is a shortened variable for the configuration being set to the chosen value Aliased to: Setting, Configuration, Key .PARAMETER On Aliased to: Enable .PARAMETER Off Aliased to: Disable .PARAMETER Default Aliased to: Remove #> [CmdletBinding(DefaultParameterSetName = 'On')] param ( [Parameter(Mandatory = $true, Position = 0)] [ValidateSet('InstallerUseSymlink','StartServicesOnInstall')] [Alias('Setting')] [Alias('Key')] [string]$Configuration, [Parameter(ParameterSetName = 'On')] [Alias('Enable')] [switch]$On, [Parameter(ParameterSetName = 'Off')] [Alias('Disable')] [switch]$Off, [Parameter(ParameterSetName = 'Default')] [Alias('Remove')] [switch]$Default ) switch ($Configuration) { 'StartServicesOnInstall' { $variableName = 'Alkami.Installer.StartOnInstall' $isEnvironmentVariable = $true } 'InstallerUseSymlink' { $variableName = 'Alkami.Installer.UseSymlink' $isEnvironmentVariable = $true } } if ($isEnvironmentVariable) { if (!$Off -and !$Default) { Set-EnvironmentVariable -Name $variableName -Value 'true' -StoreName User Set-EnvironmentVariable -Name $variableName -Value 'true' -StoreName Process } if ($Off) { Set-EnvironmentVariable -Name $variableName -Value 'false' -StoreName User Set-EnvironmentVariable -Name $variableName -Value 'false' -StoreName Process } if ($Default) { Remove-EnvironmentVariable -Name $variableName -StoreName User Remove-EnvironmentVariable -Name $variableName -StoreName Process } } }