-
Notifications
You must be signed in to change notification settings - Fork 3
/
Get-MSRCDashBoardPage.ps1
78 lines (70 loc) · 1.89 KB
/
Get-MSRCDashBoardPage.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
Function Get-MSRCDashBoardPage {
<#
.SYNOPSIS
Get a specific dashboard page from the MSRC portal
.DESCRIPTION
Get a specific dashboard page from the MSRC portal
.EXAMPLE
Get-MSRCDashBoardPage -Page 1
.EXAMPLE
Get-MSRCDashBoardPage -Page 3 -After 01/01/2018 -Before 01/31/2018
.NOTES
Misc: No API key required for this function
#>
[CmdletBinding()]
Param(
[Parameter()]
[int]$Page=1,
[Parameter()]
[DateTime]$After=((Get-Date).ToString('yyyy-MM-01')),
[Parameter(ParameterSetName='ByDate')]
[DateTime]$Before=((Get-Date).ToString('yyyy-MM-28'))
)
Begin {
$rBody = @"
{
"familyIds":[],
"productIds":[],
"severityIds":[],
"impactIds":[],
"pageNumber":$($Page),
"pageSize":100,
"includeCveNumber":true,
"includeSeverity":true,
"includeImpact":true,
"includeMonthly":true,
"orderBy":"publishedDate",
"orderByMonthly":"releaseDate",
"isDescending":true,
"isDescendingMonthly":true,
"queryText":"",
"isSearch":false,
"filterText":"",
"fromPublishedDate":"$($After.ToString('MM/dd/yyyy'))",
"toPublishedDate":"$($Before.ToString('MM/dd/yyyy'))"
}
"@
$HT = @{
URI = 'https://portal.msrc.microsoft.com/api/security-guidance/en-us'
Method = 'POST'
Body = $rBody
UseBasicParsing = $true
ContentType = 'application/json'
UserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0'
Headers = @{
Host ='portal.msrc.microsoft.com'
Accept = 'application/json, text/plain, */*'
'Accept-Language' = 'en-US,en;q=0.5'
'Accept-Encoding' = 'gzip, deflate, br'
}
}
}
Process {
try {
(Invoke-RestMethod @HT).Details
} catch {
Write-Warning -Message "Failed because $($_.Exception.Message)"
}
}
End {}
}