-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRun PSWindowsUpdates
32 lines (24 loc) · 1.22 KB
/
Run PSWindowsUpdates
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
### Create data obj to store results ###
$PS_Results = [System.Collections.Generic.List[object]]::new()
#Check if NuGet installed and force install if not
Get-PackageProvider -Name "NuGet" -ForceBootstrap
$PS_Results.Add('NuGet either existed as a Package Provider or was added')
#Set PSGallery as trusted repository to bypass prompts before installing modules from source
Set-PSRepository PSGallery -InstallationPolicy Trusted
$PS_Results.Add('PSGallery set as trusted repository')
# Check if PSWindowsUpdate module is installed
$moduleInstalled = Get-Module -Name PSWindowsUpdate -ListAvailable
if ($moduleInstalled) {
$PS_Results.Add('PSWindowsUpdate module is installed.')
} else {
Install-Module -Name PSWindowsUpdate -Force
$PS_Results.Add('PSWindowsUpdate module has been successfully installed.')
}
#Ensure PSWindowsUpdate is imported to session
Import-Module -Name PSWindowsUpdate
$PS_Results.Add('PSWindowsUpdate module has been successfully imported.')
$RunWindowsUpdates = Install-WindowsUpdate -AcceptAll
$PS_Results.Add($RunWindowsUpdates)
### Post results back to Rewst ###
$postData = $PS_Results | ConvertTo-Json
Invoke-RestMethod -Method 'Post' -Uri $post_url -Body $postData -ContentType 'application/json'