function Install-ORBAppServer { <# .SYNOPSIS Installs an ORB App Server. #> [CmdletBinding()] Param( [Parameter(Mandatory = $false)] [Alias("SecretServerUserName")] [string]$secretUserName, [Parameter(Mandatory = $false)] [Alias("SecretServerPassword")] [string]$secretPassword, [Parameter(Mandatory = $false)] [Alias("SecretServerFolders")] [string]$secretFolderNames, [Parameter(Mandatory = $false)] [Alias("SecretServerDomain")] [string]$secretDomain = "corp.alkamitech.com", [Parameter(Mandatory = $false)] [Alias("SkipWarmup")] [switch]$skipAppWarmup, [Parameter(Mandatory = $false)] [Alias("PodGMSAAccount")] [string]$podGMSAAccountParent ) if ( ( Test-IsAppServer ) -eq $false ) { $title = "You Are Attempting to Install the ORB App Tier on a Machine Identified as a non-App Tier Server"; $message = "Do you want to quit?"; $yes = New-Object System.Management.Automation.Host.ChoiceDescription "&Yes", "Breaks execution." $no = New-Object System.Management.Automation.Host.ChoiceDescription "&No", "Continues execution." $options = [System.Management.Automation.Host.ChoiceDescription[]]($yes, $no) $result = $host.ui.PromptForChoice($title, $message, $options, 0) if ( $result -eq 0 ) { Write-Host "Cancelling installation." return } } $logLead = (Get-LogLeadName) Write-Output ("$logLead : Configuring Machine as App Tier Server for POD {0}" -f [Environment]::GetEnvironmentVariable("POD", "Machine")) if (![String]::IsNullOrEmpty($secretUserName) -and ![String]::IsNullOrEmpty($secretPassword) -and ![String]::IsNullOrEmpty($secretFolderNames) -and ![String]::IsNullOrEmpty($secretDomain)) { Read-AppTierSecrets $secretUserName $secretPassword $secretFolderNames $secretDomain } if (![String]::IsNullOrEmpty($podGMSAAccountParent)) { Set-AppTierGMSAAccounts $podGMSAAccountParent } if (($appTierApplications | Where-Object {$_.User.EndsWith("$") -and $_.IsGMSAAccount}).Count -gt 0 -or ((Get-AppTierServices) | Where-Object {$_.User.EndsWith("$") -and $_.IsGMSAAccount}).Count -gt 0) { Test-AppTierGMSAAccounts } Set-AppTierDefaultWebSite Set-AppTierFolderAndFilePermissions New-MachineConfigConnectionString $true New-MachineConfigConnectionString $false Write-Output "$logLead : Running the CreateSymLinks Script" New-OrbSymLinks Write-Output "$logLead : Creating AppPools, Services, Configs, etc" New-AppTierWebApplications New-AppTierWindowsServices New-AppTierHostFileEntries New-MachineConfigMachineKeys Rename-NewLogConfig Set-DefaultTLSVersion Write-Output "$logLead : Calling Disable-Nag" Disable-Nag Set-RapidFailSettings if ($skipAppWarmup) { return } Write-Output "$logLead : Warming up services..." Ping-AlkamiServices }