Initial commit with Autotask/DRMM

This commit is contained in:
Chris Payne
2025-07-08 19:32:11 -04:00
parent 5856d09e8b
commit 9657fe7133
5 changed files with 415 additions and 0 deletions

41
tools/autotask.ps1 Normal file
View File

@@ -0,0 +1,41 @@
function Invoke-AutotaskProvision {
param (
[Parameter(Mandatory)]
[string]$CompanyName,
[Parameter(Mandatory)]
[string]$PhoneNumber,
[Parameter(Mandatory)]
[hashtable]$Credentials
)
if (-not $Credentials["AutotaskURL"] -or -not $Credentials["AutotaskIntCode"] -or -not $Credentials["AutotaskUsername"] -or -not $Credentials["AutotaskSecret"]) {
throw "Missing Autotask credentials in hashtable."
}
$BaseURL = $Credentials["AutotaskURL"]
$Url = "https://$BaseURL/atservicesrest/v1.0/companies"
$Headers = @{
"ApiIntegrationcode" = $Credentials["AutotaskIntCode"]
"UserName" = $Credentials["AutotaskUsername"]
"Secret" = $Credentials["AutotaskSecret"]
"Content-Type" = "application/json"
}
$Body = @{
companyName = $CompanyName
companyType = 1
phone = $PhoneNumber
ownerResourceID = 4
} | ConvertTo-Json -Depth 3
try {
$Response = Invoke-RestMethod -Uri $Url -Method Post -Headers $Headers -Body $Body
$CompanyID = $Response.itemId, $Response.id, $Response.companyID, $Response.item.id | Where-Object { $_ } | Select-Object -First 1
[System.Windows.MessageBox]::Show("Autotask company created with ID: $CompanyID", "Autotask")
} catch {
throw "[Autotask] Provisioning failed: $($_.Exception.Message)"
}
}