89 lines
No EOL
3 KiB
PowerShell
89 lines
No EOL
3 KiB
PowerShell
$ScriptTitle = "Cleanup Script"
|
||
$WebhookURL = "https://n8n.questcomputers.be/webhook-test/8fde21e2-937f-4142-b983-6e1606e29335"
|
||
$RemoteScriptURL = "https://git.questcomputers.be/quest-scripts/scripts/raw/branch/main/cleanup.ps1"
|
||
|
||
Add-Type -AssemblyName System.Windows.Forms
|
||
|
||
# Form
|
||
$form = New-Object System.Windows.Forms.Form
|
||
$form.Text = $ScriptTitle
|
||
$form.Size = New-Object System.Drawing.Size(320, 160)
|
||
$form.StartPosition = "CenterScreen"
|
||
$form.Topmost = $true
|
||
$form.KeyPreview = $true
|
||
|
||
# Form label
|
||
$lbl = New-Object System.Windows.Forms.Label
|
||
$lbl.Location = New-Object System.Drawing.Point(15, 20)
|
||
$lbl.Size = New-Object System.Drawing.Size(280, 20)
|
||
$lbl.Text = "Enter Ticket Number:"
|
||
$form.Controls.Add($lbl)
|
||
|
||
# Form textbox
|
||
$txt = New-Object System.Windows.Forms.TextBox
|
||
$txt.Location = New-Object System.Drawing.Point(15, 50)
|
||
$txt.Size = New-Object System.Drawing.Size(280, 25)
|
||
$form.Controls.Add($txt)
|
||
|
||
# Form OK button
|
||
$btnOK = New-Object System.Windows.Forms.Button
|
||
$btnOK.Location = New-Object System.Drawing.Point(115, 90)
|
||
$btnOK.Size = New-Object System.Drawing.Size(80, 28)
|
||
$btnOK.Text = "OK"
|
||
$btnOK.DialogResult = [System.Windows.Forms.DialogResult]::OK
|
||
$form.Controls.Add($btnOK)
|
||
|
||
# Form Cancel button
|
||
$btnCancel = New-Object System.Windows.Forms.Button
|
||
$btnCancel.Location = New-Object System.Drawing.Point(205, 90)
|
||
$btnCancel.Size = New-Object System.Drawing.Size(80, 28)
|
||
$btnCancel.Text = "Cancel"
|
||
$btnCancel.DialogResult = [System.Windows.Forms.DialogResult]::Cancel
|
||
$form.Controls.Add($btnCancel)
|
||
|
||
# Wire up Enter/Esc
|
||
$form.AcceptButton = $btnOK # Enter → OK
|
||
$form.CancelButton = $btnCancel # Esc → Cancel
|
||
|
||
# Show the dialog
|
||
$result = $form.ShowDialog()
|
||
|
||
# Handle the user’s choice
|
||
if ($result -eq [System.Windows.Forms.DialogResult]::OK) {
|
||
$ticket = $txt.Text.Trim()
|
||
|
||
if ([string]::IsNullOrWhiteSpace($ticket)) {
|
||
Write-Host "Empty ticket - aborting."
|
||
exit
|
||
}
|
||
|
||
# === RUN REMOTE SCRIPT ==================================================
|
||
Write-Host "Fetching data from remote script..."
|
||
try {
|
||
$remoteData = (Invoke-WebRequest -Uri $RemoteScriptURL -Method Get).Content
|
||
Write-Host "Remote data received:`n$($remoteData | ConvertTo-Json -Compress)"
|
||
}
|
||
catch {
|
||
Write-Error "Failed to fetch remote script: $_"
|
||
exit
|
||
}
|
||
|
||
# === SEND TO WEBHOOK ====================================================
|
||
try {
|
||
$payload = @{
|
||
ticket = $ticket
|
||
remoteData = $remoteData
|
||
} | ConvertTo-Json -Compress
|
||
|
||
$response = Invoke-RestMethod -Uri $WebhookURL -Method Post `
|
||
-Body $payload `
|
||
-ContentType "application/json" `
|
||
-ErrorAction Stop
|
||
|
||
Write-Host "Ticket $ticket sent successfully."
|
||
Write-Host "Webhook response:`n$($response | ConvertTo-Json -Compress)"
|
||
}
|
||
catch {
|
||
Write-Error "Failed to send ticket: $_"
|
||
}
|
||
} |