$ScriptTitle = "Cleanup Script" $WebhookURL = "https://n8n.questcomputers.be/webhook-test/8fde21e2-937f-4142-b983-6e1606e29335" # Remote scripts $ScriptGetComputerInfo = "https://git.questcomputers.be/quest-scripts/scripts/raw/branch/main/pc_information.ps1" # Check if C:\Quest exists... $LogDirectory = "C:\Quest" if (-not (Test-Path $LogDirectory)) { New-Item -Path $LogDirectory -ItemType Directory -Force | Out-Null } # Form Add-Type -AssemblyName System.Windows.Forms $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 } # === SEND TO WEBHOOK ==================================================== try { $computerInfo = irm $ScriptGetComputerInfo | iex $payload = @{ ticket = $ticket computerInfo = $computerInfo | ConvertFrom-Json } | 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: $_" } }