function Set-ORBEnvironmentalVariables { <# .SYNOPSIS Sets an environment variable from interactive input #> [CmdletBinding()] Param( [PSObject]$EnvVariable ) $logLead = Get-LogLeadName $newValue = Read-Host ("Enter a value for {0}" -f $EnvVariable.Name) if (!([String]::IsNullOrEmpty($EnvVariable.ValidationRegex))) { Write-Verbose ("$logLead : Validating Input {0} with Regex {1}" -f $newValue, $EnvVariable.ValidationRegex) if ([String]::IsNullOrEmpty($newValue) -or $newValue -notmatch $envVariable.ValidationRegex) { Write-Warning ($EnvVariable.ValidationError) Set-ORBEnvironmentalVariables $EnvVariable } else { Write-Host ("$logLead : Setting machine environmental variable {0} to {1}" -f $EnvVariable.Name, $newValue) [Environment]::SetEnvironmentVariable($EnvVariable.Name, $newValue, "Machine") } } }