89 lines
2.8 KiB
PowerShell
89 lines
2.8 KiB
PowerShell
<#
|
|
.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
|
|
}
|
|
}
|
|
|
|
|