Provisior kent uitgebreide rapportagemogelijkheden Zo zijn er diverse standaardrapportages beschikbaar op gebied van o.a. auditlog, toegekende rechten en applicaties, uitgegeven softwarelicenties, etc. Een aantal rapportages worden ook periodiek naar verantwoordelijke medewerkers gestuurd, zoals een overzicht van gebruikersaccounts en autorisaties naar afdelingsmanagers.
Het feit dat Provisior een generiek Automation platform biedt maakt de mogelijkheden eindeloos, ook op gebied van rapportages. Om terug te keren naar het begin… Het volgende wat ik hem vertelde was “Maar we kunnen ook eenvoudig zorgen dat je die specifieke rapportage één keer per maand in je mailbox ontvangt…” Je kunt je voorstellen dat hij daar nog enthousiaster van werd.
Hieronder zal ik een korte beschrijving geven van hoe we dit met een stukje PowerShell hebben aangepakt.
Middels Invoke-WebRequest vragen we de webpagina op, waarin de gewenste rapportage is opgenomen:
$reportURL = "https://provisior/.../Requests.aspx"
$response = Invoke-WebRequest -Uri $reportURL -SessionVariable session -Method Post -UseDefaultCredentials
Vervolgens vullen we een aantal velden in, zodat we in onze rapportage enkel resultaten van de vorige maand terugkrijgen. Hier een code snippet als voorbeeld:
$currentDate = Get-Date
$reportMonthFirst = Get-Date $currentDate.AddMonths(-1) -Day 1
$reportMonthLast = $reportMonthFirst.AddMonths(1).AddDays(-1)
$response.Forms[0].Fields['startDate']=$reportMonthFirst.ToString("yyyy-MM-dd")
$response.Forms[0].Fields['endDate']=$reportMonthLast.ToString("yyyy-MM-dd")
In de volgende stap versturen we het formulier middels een nieuwe aanroep van Invoke-WebRequest en schrijven het resultaat (een Excel-document in dit geval) naar het filesysteem:
$reportURL = $reportURL + $response.Action
$response = Invoke-WebRequest -Uri $reportURL -WebSession $session -Method Post -Body $response -UseDefaultCredentials
[System.IO.File]::WriteAllBytes($reportFile, $response.content)
Als laatste bouwen we een e-mail op en versturen deze met Send-MailMessage:
Send-MailMessage -From $from -To $recipients -Subject $subject -Body $body -BodyAsHtml -Attachments $reportFile -SmtpServer $SMTPserver
Zo eenvoudig is het. Door dit stukje script op te nemen in Provisior en dit periodiek uit te laten voeren ontvangt onze partner nu elke maand de rapportage in Excel in zijn eigen mailbox.
Heb je na het lezen van dit artikel zelf een mooi voorbeeld van een stukje automation of zou je graag meer toelichting willen op dit praktijkvoorbeeld? Stuur me een bericht via e-mail of LinkedIn.
[icegram campaigns=”594″]
Stefan Krul-Donkersloot
Senior Consultant