diff --git a/Export-AutopilotHash-ToEmail.ps1 b/Export-AutopilotHash-ToEmail.ps1 deleted file mode 100644 index 2c7107b..0000000 --- a/Export-AutopilotHash-ToEmail.ps1 +++ /dev/null @@ -1,96 +0,0 @@ -# Configuration -$csvPath = "$env:TEMP\AutopilotHash.csv" -$autopilotScript = "$env:TEMP\Get-WindowsAutopilotInfo.ps1" - -# Microsoft 365 OAuth Configuration -$tenantId = "YOUR_TENANT_ID" -$clientId = "YOUR_CLIENT_ID" -$clientSecret = "YOUR_CLIENT_SECRET" # This must be stored securely! -$fromEmail = "ivo.oskamp@vooruit.nl" -$toEmail = "ivo.oskamp@vooruit.nl" - -# Retrieve the device serial number -$serialNumber = (Get-WmiObject -Class Win32_BIOS).SerialNumber -if (-not $serialNumber) { - $serialNumber = "Unknown_SerialNumber" -} - -# Email subject including the serial number -$subject = "Autopilot Hash Export - $serialNumber" -$body = "See the attached CSV file containing the Autopilot Hash for device $serialNumber." - -# Download the latest version of Get-WindowsAutopilotInfo.ps1 from Gitea -Write-Host "Downloading Get-WindowsAutopilotInfo.ps1..." -$downloadUrl = "https://gitea.oskamp.info/ivooskamp/Autopilot/raw/branch/main/Get-WindowsAutoPilotInfo.ps1" - -Try { - Invoke-WebRequest -Uri $downloadUrl -OutFile $autopilotScript -UseBasicParsing -ErrorAction Stop -} Catch { - Write-Host "Error: Failed to download Get-WindowsAutopilotInfo.ps1." - Exit 1 -} - -# Verify if the script was downloaded correctly -if (-not (Test-Path $autopilotScript)) { - Write-Host "Error: Get-WindowsAutopilotInfo.ps1 does not exist after download." - Exit 1 -} - -# Execute the script to collect the Autopilot hash -Write-Host "Collecting the Autopilot hash..." -Try { - & PowerShell -ExecutionPolicy Bypass -File $autopilotScript -OutputFile $csvPath -ErrorAction Stop -} Catch { - Write-Host "Error retrieving the Autopilot hash: $_" - Exit 1 -} - -# Check if the CSV file was created -if (-not (Test-Path $csvPath)) { - Write-Host "Error: CSV file was not created." - Exit 1 -} - -# Obtain Microsoft 365 OAuth Token -Write-Host "Retrieving Microsoft 365 OAuth token..." -$tokenUrl = "https://login.microsoftonline.com/$tenantId/oauth2/v2.0/token" -$tokenBody = @{ - client_id = $clientId - scope = "https://graph.microsoft.com/.default" - grant_type = "client_credentials" - client_secret = $clientSecret -} - -$tokenResponse = Invoke-RestMethod -Method Post -Uri $tokenUrl -ContentType "application/x-www-form-urlencoded" -Body $tokenBody -$accessToken = $tokenResponse.access_token - -# Send email via Microsoft Graph API -$graphUrl = "https://graph.microsoft.com/v1.0/users/$fromEmail/sendMail" - -$emailJson = @{ - message = @{ - subject = $subject - body = @{ - contentType = "Text" - content = $body - } - toRecipients = @(@{ emailAddress = @{ address = $toEmail } }) - attachments = @(@{ - "@odata.type" = "#microsoft.graph.fileAttachment" - name = "AutopilotHash_$serialNumber.csv" - contentType = "text/csv" - contentBytes = [Convert]::ToBase64String([System.IO.File]::ReadAllBytes($csvPath)) - }) - } -} - -$emailJson = $emailJson | ConvertTo-Json -Depth 10 - -Write-Host "Sending email..." -Invoke-RestMethod -Uri $graphUrl -Headers @{Authorization = "Bearer $accessToken"; "Content-Type" = "application/json"} -Method Post -Body $emailJson - -Write-Host "Email sent to $toEmail" - -# Cleanup -Remove-Item -Path $csvPath -Force -Remove-Item -Path $autopilotScript -Force