Public/Set-Office.ps1

<#PSScriptInfo

.VERSION 1.0

.GUID 972a6d04-f905-4347-98b1-6bf00d8ce204

.AUTHOR dmcanady

.COMPANYNAME

.COPYRIGHT

.TAGS

.LICENSEURI

.PROJECTURI

.ICONURI

.EXTERNALMODULEDEPENDENCIES

.REQUIREDSCRIPTS

.EXTERNALSCRIPTDEPENDENCIES

.RELEASENOTES


.PRIVATEDATA

#>

function Set-Office {
    do {
        try {## prompt user for office location, loops if invalid input
            Clear-Host
            [ValidatePattern("[1-3]")]$OfficeChoice = Read-Host "Select the Office location:`n`n[1] Demoss `n[2] Green `n[3] LUCOM `n>>"
            $Office = switch ($OfficeChoice) 
            {#Translate choice to name
                "1" {"Demoss"}
                "2" {"Green"}
                "3" {"LUCOM"}
            }
        }
        catch {}
    } until ($?)

    #For the provided office location save the Servicenow ID code for accessing servicenow tables
    $OfficeCode = switch ($Office.ToUpper()) {
        "DEMOSS" { "862a49f29c806d40f47c19537d850ca4" }
        "GREEN" { "b37c34a019e0d5405af136ec3a0d0ef3" }
        "LUCOM" { "1db6a5ff353fd1405af1cb6de5727f34" }
    }

    $script:Office = @{"Name" = $Office; "Code" = $OfficeCode }
}