<# .SYNOPSIS A short one-line action-based description, e.g. 'Tests if a function is valid' .DESCRIPTION Function will submit a ServiceNow Catalog Request of Application Server type with relevant information required for automated AD Service Account creation. .NOTES Information or caveats about the function e.g. 'This function is not supported in Linux' .LINK Specify a URI to a help page, this will show when Get-Help -Online is used. .EXAMPLE Test-MyTestFunction -Verbose Explanation of the function or its result. You can include multiple examples with additional .EXAMPLE lines #> function New-ITDADServiceAccountRitm { [CmdletBinding()] param ( [Parameter(Mandatory = $true)] [string] $RequestedForEmail, [Parameter(Mandatory = $true)] [string] $SamAccountName, [Parameter(Mandatory = $true)] [ValidateSet('nd.gov')] [string] $ADDomain, [Parameter(Mandatory = $true)] [string] $Description, [Parameter(Mandatory = $true)] #[ValidateSet('Office365', 'VMware_Systems', 'CSRC', 'Shared Linux Password List', 'Peoplesoft Share PW', 'Cohesity', 'VDI')] [string] $PasswordstateList, [Parameter(Mandatory = $true)] [string] $PasswordstateTitle ) begin { } process { # create Application Server RITM with json $AdditionalComments = "Please create a new $ADDomain Active Directory service account with the following details, following guidelines found in KB0016867.`n`n" $obj = [PSCustomObject]@{ RequestedForEmail = $RequestedForEmail SamAccountName = $SamAccountName; ADDomain = $ADDomain; PasswordstateTitle = $PasswordstateTitle; PasswordstateList = $PasswordstateList; Description = $Description; } $AdditionalComments += ($obj | ConvertTo-Json -Compress) $NewITDServiceNowServiceCatalogRequest = @{ CategoryItemName = 'Application Server'; RequestedForEmail = $RequestedForEmail; Values = @{ additional_comments = $AdditionalComments; request_type = "New"; application_name = "Infra-ActiveDirectory.Object"; environment = "Production"; require_hosting_quote = 'No'; add_change_disaster_recovery = 'No'; #> vm_work_needed = 'No'; } } $ReqResult = New-ITDServiceNowServiceCatalogRequest @NewITDServiceNowServiceCatalogRequest } end { Write-Output $ReqResult } }