├── Auto remove Proactive Remediation script
└── Proactive_Remediation_AutoRemove.ps1
├── Block keyboard shortcuts
├── Detection.ps1
└── Remediation.ps1
├── Compare Lenovo BIOS version
├── Compare_BIOS_version_Detection.ps1
└── LZ4.dll
├── Detect BSOD and send logs
├── BSOD_Detection.ps1
└── BSOD_Remediation.ps1
├── Detect drivers issues
├── Drivers_Detection.ps1
└── Drivers_Remediation.ps1
├── Export Proactive Remediation to CSV
└── export_ProactiveRemediation_CSV.ps1
├── Low disk space notification
├── Disk_Space_Detection.ps1
└── Disk_Space_Remediation.ps1
├── README.md
├── Reboot warning
├── Last_Reboot_Detection.ps1
├── Last_Reboot_Remediation.ps1
└── reboot.gif
├── Recycle Bin size alert
├── RecycleBin_Size_Detection.ps1
└── RecycleBin_Size_Remediation.ps1
├── Remediate local admin
├── Detection.ps1
└── Remediation.ps1
├── Set BIOS password
├── Check_BIOS_Password_Detection.ps1
└── Check_BIOS_Password_Remediation.ps1
└── Toast notification SYSTEM context
├── Toast_Remediation_SYSTEM_InstallModule.ps1
└── Toast_Remediation_SYSTEM_NoModuleInstall.ps1
/Auto remove Proactive Remediation script/Proactive_Remediation_AutoRemove.ps1:
--------------------------------------------------------------------------------
1 | # ********************************************************************
2 | # ADD YOUR CODE THERE
3 | # ********************************************************************
4 |
5 | # MY CODE
6 |
7 | # ********************************************************************
8 | # ADD YOUR CODE THERE
9 | # ********************************************************************
10 |
11 |
12 |
13 |
14 | # ********************************************************************
15 | # AUTOREMOVE PART
16 | # ********************************************************************
17 | $mypath = $MyInvocation.MyCommand.Path
18 | $Get_Directory = (Get-Item $mypath | select *).DirectoryName
19 |
20 | $Remove_script_Path = "$env:temp\Remove_current_remediation.ps1"
21 | $Remove_script = @"
22 | Do {
23 | `$ProcessesFound = gwmi win32_process | where {`$_.commandline -like "*$Get_Directory*"}
24 | If (`$ProcessesFound) {
25 | Start-Sleep 5
26 | }
27 | } Until (!`$ProcessesFound)
28 | cmd /c "rd /s /q $Get_Directory"
29 | "@
30 | $Remove_script | out-file $Remove_script_Path
31 | start-process -WindowStyle hidden powershell.exe $Remove_script_Path
32 | # ********************************************************************
33 | # AUTOREMOVE PART
34 | # ********************************************************************
35 |
--------------------------------------------------------------------------------
/Block keyboard shortcuts/Detection.ps1:
--------------------------------------------------------------------------------
1 | <#
2 | Type shortcuts to block in the variable Keyboard_Shortcuts_to_disable.
3 |
4 | See below an overview:
5 | $Keyboard_Shortcuts_to_disable = @("Ctrl+Alt+Del",
6 | "Win+R",
7 | "Windows+V"
8 | )
9 | #>
10 |
11 | $Keyboard_Shortcuts_to_disable = @()
12 |
13 | $Log_File = "c:\windows\temp\Block_Keyboard_Shortcuts.log"
14 | $count = 0
15 |
16 | Function Write_Log
17 | {
18 | param(
19 | $Message_Type,
20 | $Message
21 | )
22 |
23 | $MyDate = "[{0:MM/dd/yy} {0:HH:mm:ss}]" -f (Get-Date)
24 | write-host "$MyDate - $Message_Type : $Message"
25 | }
26 |
27 | Function Check_WEKF
28 | {
29 | param (
30 | [String]$Key_ID
31 | )
32 |
33 | $Get_Keys = Get-WMIObject -class WEKF_PredefinedKey -namespace "root\standardcimv2\embedded" | where {$_.Id -eq "$Key_ID"};
34 | If($Get_Keys -ne $null)
35 | {
36 | $Key_Status = $Get_Keys.Enabled
37 | If($Key_Status -eq $False)
38 | {
39 | Write_Log -Message_Type "INFO" -Message "Keyboard shortcut $Key_ID is not blocked"
40 | ++(Get-Variable count).Value
41 | }
42 | Else
43 | {
44 | Write_Log -Message_Type "INFO" -Message "Keyboard shortcut $Key_ID is already blocked"
45 | }
46 | }
47 | Else
48 | {
49 | $Get_Keys = Get-WMIObject -class WEKF_CustomKey -namespace "root\standardcimv2\embedded" | where {$_.Id -eq "$Key_ID"};
50 | If($Get_Keys -ne $null)
51 | {
52 | $Key_Status = $Get_Keys.Enabled
53 | If($Key_Status -eq $False)
54 | {
55 | Write_Log -Message_Type "INFO" -Message "Keyboard shortcut $Key_ID is not blocked"
56 | ++(Get-Variable count).Value
57 | }
58 | Else
59 | {
60 | Write_Log -Message_Type "INFO" -Message "Keyboard shortcut $Key_ID is already blocked"
61 | }
62 | }
63 | Else
64 | {
65 | Write_Log -Message_Type "INFO" -Message "Keyboard shortcut $Key_ID is not blocked"
66 | ++(Get-Variable count).Value
67 | }
68 | }
69 | }
70 |
71 | If($Keyboard_Shortcuts_to_disable.count -eq 0)
72 | {
73 | EXIT 0
74 | }
75 |
76 | If(!(test-path $Log_File)){New-item $Log_File -type file -force}
77 |
78 | $FeatureName = "Client-KeyboardFilter"
79 | $Check_Keyboard_Feature = Get-WindowsOptionalFeature -online -FeatureName $FeatureName
80 | If($Check_Keyboard_Feature.State -ne "enabled")
81 | {
82 | Write_Log -Message_Type "INFO" -Message "Feature: $FeatureName is not enabled"
83 | Try
84 | {
85 | Enable-WindowsOptionalFeature -FeatureName $FeatureName -NoRestart -Online
86 | Write_Log -Message_Type "SUCCESS" -Message "Feature: $FeatureName has been enabled"
87 | Write_Log -Message_Type "INFO" -Message "A reboot is required"
88 | EXIT 1
89 | }
90 | Catch
91 | {
92 | Write_Log -Message_Type "ERROR" -Message "Feature: $FeatureName has not been enabled"
93 | write-output "Feature: $FeatureName has not been enabled"
94 | EXIT 0
95 | }
96 | }
97 | Else
98 | {
99 | Write_Log -Message_Type "INFO" -Message "Feature: $FeatureName is enabled"
100 | }
101 |
102 | ForEach($Shortcut in $Keyboard_Shortcuts_to_disable)
103 | {
104 | Check_WEKF -Key_ID $Shortcut
105 | }
106 |
107 | If($count -gt 0)
108 | {
109 | Write_Log -Message_Type "INFO" -Message "There are $count keyboard shortcuts to block"
110 | EXIT 1
111 | }
112 | Else
113 | {
114 | Write_Log -Message_Type "INFO" -Message "No shortcut to block"
115 | Write_Log -Message_Type "INFO" -Message "All shortcuts are already blocked"
116 | EXIT 0
117 | }
--------------------------------------------------------------------------------
/Block keyboard shortcuts/Remediation.ps1:
--------------------------------------------------------------------------------
1 | <#
2 | Type shortcuts to block in the variable Keyboard_Shortcuts_to_disable.
3 |
4 | See below an overview:
5 | $Keyboard_Shortcuts_to_disable = @("Ctrl+Alt+Del",
6 | "Win+R",
7 | "Windows+V"
8 | )
9 | #>
10 |
11 | $Keyboard_Shortcuts_to_disable = @()
12 |
13 | $Log_File = "c:\windows\temp\Block_Keyboard_Shortcuts.log"
14 |
15 | Function Write_Log
16 | {
17 | param(
18 | $Message_Type,
19 | $Message
20 | )
21 |
22 | $MyDate = "[{0:MM/dd/yy} {0:HH:mm:ss}]" -f (Get-Date)
23 | write-host "$MyDate - $Message_Type : $Message"
24 | }
25 |
26 | Function Set_WEKF
27 | {
28 | param (
29 | [String]$Key_ID
30 | )
31 |
32 | $Get_Keys = Get-WMIObject -class WEKF_PredefinedKey -namespace "root\standardcimv2\embedded" | where {$_.Id -eq "$Key_ID"};
33 | If($Get_Keys -ne $null)
34 | {
35 | $Key_Status = $Get_Keys.Enabled
36 | If($Key_Status -eq $False)
37 | {
38 |
39 | $Get_Keys = Get-WMIObject -Class WEKF_PredefinedKey -Namespace "root\standardcimv2\embedded" | Where {$_.Id -eq "$Key_ID"}
40 | $Get_Keys.Enabled = $True
41 | $Get_Keys.Put()
42 | Write_Log -Message_Type "INFO" -Message "Keyboard shortcut $Key_ID has been blocked"
43 | }
44 | }
45 | Else
46 | {
47 | $Get_Keys = Get-WMIObject -class WEKF_CustomKey -namespace "root\standardcimv2\embedded" | where {$_.Id -eq "$Key_ID"};
48 | If($Get_Keys -ne $null)
49 | {
50 | $Key_Status = $Get_Keys.Enabled
51 | If($Key_Status -eq $False)
52 | {
53 | Set-WMIInstance -class WEKF_CustomKey -argument @{Id="$Key_ID";Enabled=$True} -namespace "root\standardcimv2\embedded" | out-null
54 | Write_Log -Message_Type "INFO" -Message "Keyboard shortcut $Key_ID has been blocked"
55 | }
56 | }
57 | Else
58 | {
59 | Set-WMIInstance -class WEKF_CustomKey -argument @{Id="$Key_ID";Enabled=$True} -namespace "root\standardcimv2\embedded" | out-null
60 | Write_Log -Message_Type "INFO" -Message "Keyboard shortcut $Key_ID has been blocked"
61 | }
62 | }
63 | }
64 |
65 | ForEach($Shortcut in $Keyboard_Shortcuts_to_disable)
66 | {
67 | Set_WEKF -Key_ID $Shortcut
68 | }
--------------------------------------------------------------------------------
/Compare Lenovo BIOS version/Compare_BIOS_version_Detection.ps1:
--------------------------------------------------------------------------------
1 | #*****************************************************************************
2 | # Part to fill
3 | #
4 | $BIOS_Delay_Days = 730 # Allows you compare BIOS date. For instance if the new BIOS version and old one have more than 100 days: ALERT ALERT ALERT, if not ok that's cool for now
5 | # $LZ4_DLL = "https://stagrtdwpprddevices.blob.core.windows.net/biosmgmt/LZ4.dll"
6 | $LZ4_DLL = "https://github.com/damienvanrobaeys/Intune-Proactive-Remediation-scripts/blob/main/Compare%20Lenovo%20BIOS%20version/LZ4.dll"
7 | #
8 | #*****************************************************************************
9 |
10 | $WMI_computersystem = gwmi win32_computersystem
11 | $Manufacturer = $WMI_computersystem.manufacturer
12 | If($Manufacturer -ne "LENOVO")
13 | {
14 | write-output "Manufacturer is not Lenovo"
15 | EXIT 0
16 | }
17 | Else
18 | {
19 | $Script:currentuser = $WMI_computersystem | select -ExpandProperty username
20 | $Script:process = get-process logonui -ea silentlycontinue
21 | If($currentuser -and $process)
22 | {
23 | write-output "Computer locked"
24 | EXIT 0
25 | }
26 | Else
27 | {
28 | $LZ4_DLL_Path = "$env:TEMP\LZ4.dll"
29 | $DLL_Download_Success = $False
30 | If(!(test-path $LZ4_DLL_Path))
31 | {
32 | $LZ4_DLL = "https://stagrtdwpprddevices.blob.core.windows.net/biosmgmt/LZ4.dll"
33 | Try
34 | {
35 | Invoke-WebRequest -Uri $LZ4_DLL -OutFile "$LZ4_DLL_Path"
36 | $DLL_Download_Success = $True
37 | }
38 | Catch
39 | {
40 | write-output "Can not download LZ4 DLL"
41 | EXIT 1
42 | }
43 | }
44 | Else
45 | {
46 | $DLL_Download_Success = $True
47 | }
48 |
49 |
50 | If($DLL_Download_Success -eq $True)
51 | {
52 | [System.Reflection.Assembly]::LoadFrom("$LZ4_DLL_Path") | Out-Null
53 |
54 | Function Decode-WithLZ4 ($Content,$originalLength)
55 | {
56 | $Bytes =[Convert]::FromBase64String($Content)
57 | $OutArray = [LZ4.LZ4Codec]::Decode($Bytes,0, $Bytes.Length,$originalLength)
58 | $rawString = [System.Text.Encoding]::UTF8.GetString($OutArray)
59 | return $rawString
60 | }
61 |
62 | Class Lenovo{
63 | Static hidden [String]$_vendorName = "Lenovo"
64 | hidden [Object[]] $_deviceCatalog
65 | hidden [Object[]] $_deviceImgCatalog
66 |
67 | Lenovo()
68 | {
69 | $this._deviceCatalog = [Lenovo]::GetDevicesCatalog()
70 | $this._deviceImgCatalog = $null
71 | }
72 |
73 | Static hidden [Object[]] GetDevicesCatalog()
74 | {
75 | $result = Invoke-WebRequest -Uri "https://pcsupport.lenovo.com/us/en/api/v4/mse/getAllProducts?productId=" -Headers @{
76 | "Accept"="application/json, text/javascript, */*; q=0.01"
77 | "Referer"="https://pcsupport.lenovo.com/us/en/"
78 | "X-CSRF-Token"="2yukcKMb1CvgPuIK9t04C6"
79 | "User-Agent"="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"
80 | "X-Requested-With"="XMLHttpRequest"
81 | }
82 |
83 |
84 | $JSON = ($result.Content | ConvertFrom-Json)
85 | $rawString = Decode-WithLZ4 -Content $JSON.content -originalLength $JSON.originLength
86 | $jsonObject = ($rawString | ConvertFrom-Json)
87 |
88 | return $jsonObject
89 | }
90 |
91 | [Object[]]FindModel($userInputModel)
92 | {
93 | $SearchResultFormatted = @()
94 | $userSearchResult = $this._deviceCatalog.Where({($_.Name -match $userInputModel) -and ($_.Type -eq "Product.SubSeries")})
95 | foreach($obj in $userSearchResult){
96 | $SearchResultFormatted += [PSCustomObject]@{
97 | Name=$obj.Name;
98 | Guid=$obj.ProductGuid;
99 | Path=$obj.Id;
100 | Image=$obj.Image
101 | }
102 | }
103 | return $SearchResultFormatted
104 | }
105 |
106 | hidden [Object[]] GetModelWebResponse($modelGUID)
107 | {
108 | $DownloadURL = "https://pcsupport.lenovo.com/us/en/api/v4/downloads/drivers?productId=$($modelGUID)"
109 | $SelectedModelwebReq = Invoke-WebRequest -Uri $DownloadURL -Headers @{
110 | }
111 | $SelectedModelWebResponse = ($SelectedModelwebReq.Content | ConvertFrom-Json)
112 | return $SelectedModelWebResponse
113 | }
114 |
115 | hidden [Object[]]GetAllSupportedOS($webresponse)
116 | {
117 |
118 | $AllOSKeys = [Array]$webresponse.body.AllOperatingSystems
119 | $operatingSystemObj= $AllOSKeys | Foreach { [PSCustomObject]@{ Name = $_; Value = $_}}
120 | return $operatingSystemObj
121 | }
122 |
123 | hidden [Object[]]LoadDriversFromWebResponse($webresponse)
124 | {
125 | $DownloadItemsRaw = ($webresponse.body.DownloadItems | Select-Object -Property Title,Date,Category,Files,OperatingSystemKeys)
126 | $DownloadItemsObj = [Collections.ArrayList]@()
127 |
128 | ForEach ($item in $DownloadItemsRaw | Where{$_.Title -notmatch "SCCM Package"})
129 | {
130 | [Array]$ExeFiles = $item.Files | Where-Object {($_.TypeString -notmatch "TXT")}
131 | $current = [PSCustomObject]@{
132 | Title=$item.Title;
133 | Category=$item.Category.Name;
134 | Class=$item.Category.Classify;
135 | OperatingSystemKeys=$item.OperatingSystemKeys;
136 |
137 | Files= [Array]($ExeFiles | ForEach-Object {
138 | if($_){
139 | [PSCustomObject]@{
140 | IsSelected=$false;
141 | ID=$_.Url.Split('/')[-1].ToUpper().Split('.')[0];
142 | Name=$_.Name;
143 | Size=$_.Size;
144 | Type=$_.TypeString;
145 | Version=$_.Version
146 | URL=$_.URL;
147 | Priority=$_.Priority;
148 | Date=[DateTimeOffset]::FromUnixTimeMilliseconds($_.Date.Unix).ToString("MM/dd/yyyy")
149 | }
150 | }
151 | })
152 | }
153 | $DownloadItemsObj.Add($current) | Out-Null
154 | }
155 | return $DownloadItemsObj
156 | }
157 | }
158 |
159 | $Model_Found = $False
160 | $Get_Current_Model_MTM = ($WMI_computersystem.Model).Substring(0,4)
161 | $Get_Current_Model_FamilyName = $WMI_computersystem.SystemFamily.split(" ")[1]
162 |
163 | $BIOS_Version = gwmi win32_bios
164 | $BIOS_Maj_Version = $BIOS_Version.SystemBiosMajorVersion
165 | $BIOS_Min_Version = $BIOS_Version.SystemBiosMinorVersion
166 | $Get_Current_BIOS_Version = "$BIOS_Maj_Version.$BIOS_Min_Version"
167 | $RunspaceScopeVendor = [Lenovo]::new()
168 |
169 | $Search_Model = $RunspaceScopeVendor.FindModel("$Get_Current_Model_MTM")
170 | $Get_GUID = $Search_Model.Guid
171 | If($Get_GUID -eq $null)
172 | {
173 | $Search_Model = $RunspaceScopeVendor.FindModel("$Get_Current_Model_FamilyName")
174 | $Search_Model
175 | $Get_GUID = $Search_Model.Guid
176 | If($Get_GUID -eq $null)
177 | {
178 | write-output "Modèle introuvable ou problème de vérification"
179 | EXIT 0
180 | }
181 | Else
182 | {
183 | $Model_Found = $True
184 | }
185 | }
186 | Else
187 | {
188 | $Model_Found = $True
189 | }
190 |
191 | If($Model_Found -eq $True)
192 | {
193 | $Get_GUID = $Search_Model.Guid
194 | $wbrsp = $RunspaceScopeVendor.GetModelWebResponse("$Get_GUID")
195 | $OSCatalog = $RunspaceScopeVendor.GetAllSupportedOS($wbrsp)
196 | $DriversModeldatas = $RunspaceScopeVendor.LoadDriversFromWebResponse($wbrsp)
197 | $DriversModelDatasForOsType = [Array]($DriversModeldatas | Where-Object {($_.OperatingSystemKeys -contains 'Windows 10 (64-bit)' )} )
198 |
199 | $Get_BIOS_Update = $DriversModelDatasForOsType | Where {($_.Title -like "*BIOS Update*")}
200 | $Get_BIOS_Update = $Get_BIOS_Update.files | Where {$_.Type -eq "EXE"}
201 | If($Get_BIOS_Update.Count -gt 1)
202 | {
203 | $Get_BIOS_Update = $Get_BIOS_Update[-1]
204 | }
205 |
206 | $Get_New_BIOS_Version = $Get_BIOS_Update.version
207 | $Get_New_BIOS_Date = $Get_BIOS_Update.Date
208 |
209 | If($Get_New_BIOS_Version -like "*/*")
210 | {
211 | $Get_New_BIOS_Version = $Get_New_BIOS_Version.Split("/")[0]
212 | }
213 |
214 | $BIOS_release_date = (gwmi win32_bios | select *).ReleaseDate
215 | $Format_BIOS_release_date = [DateTime]::new((([wmi]"").ConvertToDateTime($BIOS_release_date)).Ticks, 'Local').ToUniversalTime()
216 |
217 | # If the new BIOS version is greater than this one installed
218 | If($Get_Current_BIOS_Version -lt $Get_New_BIOS_Version)
219 | {
220 | # If we can't get the new BIOS date
221 | # In this case we won't compare dates
222 | If($Get_New_BIOS_Date -eq $null)
223 | {
224 | write-output "notuptodate;empty;$Get_Current_Model_FamilyName;$Get_Current_BIOS_Version;$Get_New_BIOS_Version;empty;$Format_BIOS_release_date"
225 | EXIT 1
226 | }
227 |
228 | $Get_Converted_BIOS_Date = [Datetime]::ParseExact($Get_New_BIOS_Date, 'MM/dd/yyyy', $null)
229 | $Diff_LastBIOS_and_Today = $Get_Converted_BIOS_Date - $Format_BIOS_release_date
230 | $Diff_in_days = $Diff_LastBIOS_and_Today.Days
231 |
232 | # If new BIOS date is greater than current installed date
233 | If($Diff_in_days -gt 0)
234 | {
235 | # If we have specified a BIOS delay, we will compare diff in days and the delay specified
236 | If($BIOS_Delay_Days -gt 0)
237 | {
238 | If(($Diff_in_days) -gt $BIOS_Delay_Days)
239 | {
240 | # If the diff in days is greater than the delay specified
241 | write-output "notuptodate;$Diff_in_days;$Get_Current_Model_FamilyName;$Get_Current_BIOS_Version;$Get_New_BIOS_Version;$Get_Converted_BIOS_Date;$Format_BIOS_release_date"
242 | EXIT 1
243 | }
244 | Else
245 | {
246 | # If the diff in days is lesse than the delay specified
247 | # In this case it means the BIOS is not uptodate but the specified delay is not omprtant so it's cool for now
248 | write-output "uptodate;$Diff_in_days;$Get_Current_Model_FamilyName;$Get_Current_BIOS_Version;$Get_New_BIOS_Version;$Get_Converted_BIOS_Date;$Format_BIOS_release_date"
249 | EXIT 0
250 | }
251 | }
252 | }
253 | # If new BIOS date is not greater than current installed date but new version is greater than current installed version
254 | # In this case we say that the BIOS is not uptodate
255 | Else
256 | {
257 | write-output "notuptodate;empty;$Get_Current_Model_FamilyName;$Get_Current_BIOS_Version;$Get_New_BIOS_Version;$Get_Converted_BIOS_Date;$Format_BIOS_release_date"
258 | EXIT 1
259 | }
260 | }
261 | Else
262 | {
263 | write-output "uptodate;0;$Get_Current_Model_FamilyName;$Get_Current_BIOS_Version;$Get_New_BIOS_Version;0;$Format_BIOS_release_date"
264 | EXIT 0
265 | }
266 | }
267 | }
268 | }
269 | }
270 |
--------------------------------------------------------------------------------
/Compare Lenovo BIOS version/LZ4.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/damienvanrobaeys/Intune-Remediation-scripts/e1f5c4c32c90d7f2fa12d1b1ef1544acd8ae15a1/Compare Lenovo BIOS version/LZ4.dll
--------------------------------------------------------------------------------
/Detect BSOD and send logs/BSOD_Detection.ps1:
--------------------------------------------------------------------------------
1 | $Delay_alert = 30
2 |
3 | $Log_File = "C:\Windows\Debug\BSOD_Detection.log"
4 | If(!(test-path $Log_File)){new-item $Log_File -type file -force | out-null}
5 |
6 | Function Write_Log
7 | {
8 | param(
9 | $Message_Type,
10 | $Message
11 | )
12 |
13 | $MyDate = "[{0:MM/dd/yy} {0:HH:mm:ss}]" -f (Get-Date)
14 | Add-Content $Log_File "$MyDate - $Message_Type : $Message"
15 | write-host "$MyDate - $Message_Type : $Message"
16 | }
17 |
18 | $Minidump_Folder = "C:\Windows\Minidump"
19 | If(test-path $Minidump_Folder)
20 | {
21 | $Last_DMP = Get-Childitem $Minidump_Folder | where {$_.Extension -eq ".dmp"} | Sort-Object -Descending -Property LastWriteTime | Select -First 1
22 | If($Last_DMP -ne $null)
23 | {
24 | $Last_DMP_Date = $Last_DMP.LastWriteTime
25 | $Current_date = Get-Date
26 | $Last_DMP_delay = ($Current_date - $Last_DMP_Date).Days
27 | If($Last_DMP_delay -le $Delay_alert)
28 | {
29 | Write_Log -Message_Type "INFO" -Message "A recent BSOD has been found"
30 | Write_Log -Message_Type "INFO" -Message "Date: $Last_DMP"
31 |
32 | $Get_BugCheck_Events = (Get-EventLog system -Source bugcheck)
33 | $Get_last_BugCheck_Event = $Get_BugCheck_Events[0]
34 | $Get_last_BugCheck_Event_Date = $Get_last_BugCheck_Event.TimeGenerated
35 | $Get_last_BugCheck_Event_MSG = $Get_last_BugCheck_Event.Message
36 | If($Get_last_BugCheck_Event_Date -match $Last_DMP_Date)
37 | {
38 | Write_Log -Message_Type "INFO" -Message "A corresponding entry has been found in the event log"
39 | Write_Log -Message_Type "INFO" -Message "Event log time: $Get_last_BugCheck_Event_Date"
40 | Write_Log -Message_Type "INFO" -Message "Event log message: $Get_last_BugCheck_Event_MSG"
41 |
42 | Write_Log -Message_Type "INFO" -Message "$Get_Code"
43 | write-output "$Get_Code"
44 | EXIT 1
45 | }
46 | Else
47 | {
48 | write-output "Last BSOD: $Get_last_BugCheck_Event_Date"
49 | EXIT 1
50 | }
51 | }
52 | }
53 | Else
54 | {
55 | write-output "No recent BSOD found"
56 | EXIT 0
57 | }
58 | }
59 | Else
60 | {
61 | Write_Log -Message_Type "INFO" -Message "No DMP files found"
62 | write-output "No DMP files found"
63 | EXIT 0
64 | }
65 |
--------------------------------------------------------------------------------
/Detect BSOD and send logs/BSOD_Remediation.ps1:
--------------------------------------------------------------------------------
1 | $Log_File = "C:\Windows\Debug\BSOD_Remediation.log"
2 | $Temp_folder = "C:\Windows\Temp"
3 | $DMP_Logs_folder = "$Temp_folder\DMP_Logs_folder"
4 | $DMP_Logs_folder_ZIP = "$Temp_folder\BSOD_$env:computername.zip"
5 | $ZIP_Name = "BSOD_$env:computername.zip"
6 |
7 | $Use_Webhook = $False # Choose if you want to publish on a Teams channel(True or False)
8 | $Webhook = "" # Type the path of the webhook
9 |
10 | $Tenant = "" # tenant name
11 | $ClientID = "" # azure app client id
12 | $Secret = '' # azure app secret
13 | $SharePoint_SiteID = "" # sharepoint site id
14 | $SharePoint_Path = "" # sharepoint main path
15 | $SharePoint_ExportFolder = "" # folder where to upload file
16 |
17 | <#
18 | Example
19 | $SharePoint_Path = "https://systanddeploy.sharepoint.com/sites/Support" # sharepoint main path
20 | $SharePoint_ExportFolder = "Windows/BSOD" # folder where to upload file
21 | #>
22 |
23 | <#
24 | Getting Sharepoint site id
25 | I have the following Sharepoint site: https://systanddeploy.sharepoint.com/sites/Support
26 | In order to authenticate and upload file we need to get the id of the site.
27 | For this just open your browser and type:
28 | https://m365x53191121.sharepoint.com/sites/systanddeploy/_api/site/id
29 | #>
30 |
31 | <#
32 | Upload files on SharePoint with PowerShell and Graph API
33 | See my poste here: https://www.systanddeploy.com/2023/11/upload-files-to-sharepointteams-using.html
34 | #>
35 |
36 | <# To create a webhook proceed as below:
37 | 1. Go to your channel
38 | 2. Click on the ...
39 | 3. Click on Connectors
40 | 4. Go to Incoming Webhook
41 | 5. Type a name
42 | 6. Click on Create
43 | 7. Copy the Webhot path
44 | #>
45 |
46 | Function Write_Log
47 | {
48 | param(
49 | $Message_Type,
50 | $Message
51 | )
52 |
53 | $MyDate = "[{0:MM/dd/yy} {0:HH:mm:ss}]" -f (Get-Date)
54 | Add-Content $Log_File "$MyDate - $Message_Type : $Message"
55 | write-host "$MyDate - $Message_Type : $Message"
56 | }
57 |
58 | Function Export_Event_Logs
59 | {
60 | param(
61 | $Log_To_Export,
62 | $File_Name
63 | )
64 |
65 | Write_Log -Message_Type "INFO" -Message "Collecting logs from: $Log_To_Export"
66 | Try
67 | {
68 | WEVTUtil export-log $Log_To_Export -ow:true /q:"*[System[TimeCreated[timediff(@SystemTime) <= 1296000000 ]]]" "$DMP_Logs_folder\$File_Name.evtx" | out-null
69 | Write_Log -Message_Type "SUCCESS" -Message "Event log $File_Name.evtx has been successfully exported"
70 | }
71 | Catch
72 | {
73 | Write_Log -Message_Type "ERROR" -Message "An issue occured while exporting event log $File_Name.evtx"
74 | }
75 | }
76 |
77 |
78 | Function Get_DeviceUpTime
79 | {
80 | param(
81 | [Switch]$Show_Days,
82 | [Switch]$Show_Uptime
83 | )
84 |
85 | $Last_reboot = Get-ciminstance Win32_OperatingSystem | Select -Exp LastBootUpTime
86 | $Check_FastBoot = (Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power" -ea silentlycontinue).HiberbootEnabled
87 | If(($Check_FastBoot -eq $null) -or ($Check_FastBoot -eq 0))
88 | {
89 | $Boot_Event = Get-WinEvent -ProviderName 'Microsoft-Windows-Kernel-Boot'| where {$_.ID -eq 27 -and $_.message -like "*0x0*"}
90 | If($Boot_Event -ne $null)
91 | {
92 | $Last_boot = $Boot_Event[0].TimeCreated
93 | }
94 | }
95 | ElseIf($Check_FastBoot -eq 1)
96 | {
97 | $Boot_Event = Get-WinEvent -ProviderName 'Microsoft-Windows-Kernel-Boot'| where {$_.ID -eq 27 -and $_.message -like "*0x1*"}
98 | If($Boot_Event -ne $null)
99 | {
100 | $Last_boot = $Boot_Event[0].TimeCreated
101 | }
102 | }
103 |
104 | If($Last_boot -eq $null)
105 | {
106 | $Uptime = $Uptime = $Last_reboot
107 | }
108 | Else
109 | {
110 | If($Last_reboot -ge $Last_boot)
111 | {
112 | $Uptime = $Last_reboot
113 | }
114 | Else
115 | {
116 | $Uptime = $Last_boot
117 | }
118 | }
119 |
120 | If($Show_Days)
121 | {
122 | $Current_Date = get-date
123 | $Diff_boot_time = $Current_Date - $Uptime
124 | $Boot_Uptime_Days = $Diff_boot_time.Days
125 | $Real_Uptime = $Boot_Uptime_Days
126 | }
127 | ElseIf($Show_Uptime)
128 | {
129 | $Real_Uptime = $Uptime
130 |
131 | }
132 | ElseIf(($Show_Days -eq $False) -and ($Show_Uptime -eq $False))
133 | {
134 | $Real_Uptime = $Uptime
135 | }
136 | Return "$Real_Uptime"
137 | }
138 |
139 |
140 | If(!(test-path $Log_File)){new-item $Log_File -type file -force | out-null}
141 | If(test-path $DMP_Logs_folder){remove-item $DMP_Logs_folder -Force -Recurse}
142 | new-item $DMP_Logs_folder -type Directory -force | out-null
143 | If(test-path $DMP_Logs_folder_ZIP){Remove-Item $DMP_Logs_folder_ZIP -Force}
144 |
145 | Write_Log -Message_Type "INFO" -Message "A recent BSOD has been found"
146 | Write_Log -Message_Type "INFO" -Message "Date: $Last_DMP"
147 |
148 | # Copy hotfix list
149 | $Hotfix_CSV = "$DMP_Logs_folder\Hotfix_List.csv"
150 | $Hotfix_list = Get-wmiobject win32_quickfixengineering | Select-Object hotfixid, Description, Caption, InstalledOn | Sort-Object InstalledOn
151 | $Hotfix_list | export-CSV $Hotfix_CSV -delimiter ";" -notypeinformation
152 |
153 | # Copy services list
154 | $Services_CSV = "$DMP_Logs_folder\Services_List.csv"
155 | $services_List = Get-wmiobject win32_service | Select-Object Name, Caption, State, Startmode
156 | $services_List | export-CSV $Services_CSV -delimiter ";" -notypeinformation
157 |
158 | # copy drivers list
159 | $Drivers_CSV = "$DMP_Logs_folder\Drivers_List.csv"
160 | $Drivers_List = gwmi Win32_PnPSignedDriver | Select-Object devicename, manufacturer, driverversion, infname, @{Label="DriverDate";Expression={$_.ConvertToDateTime($_.DriverDate).ToString("MM-dd-yyyy")}}, Description, IsSigned, ClassGuid, HardWareID, DeviceID | where-object {$_.devicename -ne $null -and $_.infname -ne $null} | sort-object devicename -Unique
161 | $Drivers_List | export-CSV $Drivers_CSV -delimiter ";" -notypeinformation
162 |
163 | # copy process list
164 | $Process_CSV = "$DMP_Logs_folder\Process_List.csv"
165 | $Process_List = gwmi win32_process | select ProcessName, caption, CommandLine, path, CreationDate, Description, ExecutablePath, Name, ProcessID, SessionID
166 | $Process_List | export-CSV $Process_CSV -delimiter ";" -notypeinformation
167 |
168 | # export pending updates
169 | $Pending_Updates_CSV = "$DMP_Logs_folder\Pending_Updates.csv"
170 | $UpdateSession = New-Object -ComObject Microsoft.Update.Session
171 | $UpdateSearcher = $UpdateSession.CreateupdateSearcher()
172 | $Updates = @($UpdateSearcher.Search("IsHidden=0 and IsInstalled=0 and Type='Software'").Updates)
173 | $Pending_Updates = $Updates | Select-Object Title, Description, LastdeploymentChangeTime, SupportUrl, Type, RebootRequired
174 | $Pending_Updates | export-CSV $Pending_Updates_CSV -delimiter ";" -notypeinformation
175 |
176 | # Export last reboot date
177 | Get_DeviceUpTime | out-file "$DMP_Logs_folder\Last_reboot_date.txt"
178 |
179 | # Export EVTX from last 15 days
180 | Export_Event_Logs -Log_To_Export System -File_Name "System"
181 | Export_Event_Logs -Log_To_Export Application -File_Name "Applications"
182 | Export_Event_Logs -Log_To_Export Security -File_Name "Security"
183 | Export_Event_Logs -Log_To_Export "Microsoft-Windows-Kernel-Power/Thermal-Operational" -File_Name "KernelPower"
184 | Export_Event_Logs -Log_To_Export "Microsoft-Windows-Kernel-PnP/Driver Watchdog" -File_Name "KernelPnP_Watchdog"
185 | Export_Event_Logs -Log_To_Export "Microsoft-Windows-Kernel-PnP/Configuration" -File_Name "KernelPnp_Conf"
186 | Export_Event_Logs -Log_To_Export "Microsoft-Windows-Kernel-LiveDump/Operational" -File_Name "KernelLiveDump"
187 | Export_Event_Logs -Log_To_Export "Microsoft-Windows-Kernel-ShimEngine/Operational" -File_Name "KernelShimEngine"
188 | Export_Event_Logs -Log_To_Export "Microsoft-Windows-Kernel-Boot/Operational" -File_Name "KernelBoot"
189 | Export_Event_Logs -Log_To_Export "Microsoft-Windows-Kernel-IO/Operational" -File_Name "KernelIO"
190 |
191 | # Copy Dump files
192 | $Minidump_Folder = "C:\Windows\Minidump"
193 | If(test-path $Minidump_Folder){copy-item $Minidump_Folder $DMP_Logs_folder -Recurse -Force}
194 |
195 | # $Get_BugCheck_Event = (Get-EventLog system -Source bugcheck -ea silentlycontinue)[0]
196 | $Get_BugCheck_Event = (Get-EventLog system -Source bugcheck -ea silentlycontinue)
197 | If($Get_BugCheck_Event -ne $null)
198 | {
199 | $Get_last_BugCheck_Event = $Get_BugCheck_Event[0]
200 | $Get_last_BugCheck_Event_Date = $Get_last_BugCheck_Event.TimeGenerated
201 | $Get_last_BugCheck_Event_MSG = $Get_last_BugCheck_Event.Message
202 | $Get_last_BugCheck_Event_MSG | out-file "$DMP_Logs_folder\LastEvent_Message.txt"
203 | }
204 |
205 | # ZIP DMP folder
206 | Try
207 | {
208 | Add-Type -assembly "system.io.compression.filesystem"
209 | [io.compression.zipfile]::CreateFromDirectory($DMP_Logs_folder, $DMP_Logs_folder_ZIP)
210 | Write_Log -Message_Type "SUCCESS" -Message "The ZIP file has been successfully created"
211 | Write_Log -Message_Type "INFO" -Message "The ZIP is located in :$Logs_Collect_Folder_ZIP"
212 | }
213 | Catch
214 | {
215 | Write_Log -Message_Type "ERROR" -Message "An issue occured while creating the ZIP file"
216 | $Reported_error = $error[0].exception.message
217 | write-output "KO (ZIP): $Reported_error"
218 | EXIT 1
219 | }
220 |
221 |
222 |
223 | # Authentification sur SharePoint et upload du fichier
224 | $Body = @{
225 | client_id = $ClientID
226 | client_secret = $Secret
227 | scope = "https://graph.microsoft.com/.default"
228 | grant_type = 'client_credentials'
229 | }
230 |
231 | Write_Log -Message_Type "INFO" -Message "SharePoint connexion"
232 | $Graph_Url = "https://login.microsoftonline.com/$($Tenant).onmicrosoft.com/oauth2/v2.0/token"
233 |
234 | Try
235 | {
236 | $AuthorizationRequest = Invoke-RestMethod -Uri $Graph_Url -Method "Post" -Body $Body
237 | Write_Log -Message_Type "SUCCESS" -Message "Connected to SharePoint"
238 | }
239 | Catch
240 | {
241 | Write_Log -Message_Type "ERROR" -Message "Connexion to SharePoint failed"
242 | EXIT
243 | }
244 |
245 | $Access_token = $AuthorizationRequest.Access_token
246 | $Header = @{
247 | Authorization = $AuthorizationRequest.access_token
248 | "Content-Type"= "application/json"
249 | 'Content-Range' = "bytes 0-$($fileLength-1)/$fileLength"
250 | }
251 |
252 | $SharePoint_Graph_URL = "https://graph.microsoft.com/v1.0/sites/$SharePoint_SiteID/drives"
253 | $BodyJSON = $Body | ConvertTo-Json -Compress
254 |
255 | Write_Log -Message_Type "INFO" -Message "Getting SharePoint site info"
256 |
257 | Try
258 | {
259 | $Result = Invoke-RestMethod -Uri $SharePoint_Graph_URL -Method 'GET' -Headers $Header -ContentType "application/json"
260 | Write_Log -Message_Type "SUCCESS" -Message "Getting SharePoint site info"
261 | }
262 | Catch
263 | {
264 | Write_Log -Message_Type "ERROR" -Message "Getting SharePoint site info"
265 | EXIT
266 | }
267 |
268 | $DriveID = $Result.value| Where-Object {$_.webURL -eq $SharePoint_Path } | Select-Object id -ExpandProperty id
269 |
270 | $FileName = $DMP_Logs_folder_ZIP.Split("\")[-1]
271 | $createUploadSessionUri = "https://graph.microsoft.com/v1.0/sites/$SharePoint_SiteID/drives/$DriveID/root:/$SharePoint_ExportFolder/$($fileName):/createUploadSession"
272 |
273 | Write_Log -Message_Type "INFO" -Message "File to upload: $FileName"
274 | Write_Log -Message_Type "INFO" -Message "Preparing the file for the upload"
275 |
276 | Try
277 | {
278 | $uploadSession = Invoke-RestMethod -Uri $createUploadSessionUri -Method 'POST' -Headers $Header -ContentType "application/json"
279 | Write_Log -Message_Type "SUCCESS" -Message "Preparing the file for the upload"
280 | }
281 | Catch
282 | {
283 | Write_Log -Message_Type "ERROR" -Message "Preparing the file for the upload"
284 | EXIT
285 | }
286 |
287 | $fileInBytes = [System.IO.File]::ReadAllBytes($DMP_Logs_folder_ZIP)
288 | $fileLength = $fileInBytes.Length
289 |
290 | $headers = @{
291 | 'Content-Range' = "bytes 0-$($fileLength-1)/$fileLength"
292 | }
293 |
294 | Write_Log -Message_Type "INFO" -Message "Uploading file"
295 | Try
296 | {
297 | $response = Invoke-RestMethod -Method 'Put' -Uri $uploadSession.uploadUrl -Body $fileInBytes -Headers $headers
298 | Write_Log -Message_Type "SUCCESS" -Message "File has been uploaded"
299 | $Upload_file_status = $true
300 | }
301 | Catch
302 | {
303 | Write_Log -Message_Type "ERROR" -Message "Failed to upload the file"
304 | EXIT
305 | }
306 |
307 | Remove-Item $DMP_Logs_folder -Force -Recurse
308 | Remove-Item $DMP_Logs_folder_ZIP -Force
309 |
310 | If($Upload_file_status -eq $True)
311 | {
312 | write-output "File uploaded"
313 |
314 | If($Use_Webhook -eq $True)
315 | {
316 | $Date = get-date
317 | $MessageText = "A new BSOD occured on device $env:computername.
Date: $Date
Logs files have been uploaded in the below ZIP file: $ZIP_Name"
318 | $MessageTitle = "A new BSOD ZIP has been uploaded"
319 | $MessageColor = "#2874A6"
320 |
321 | $Body = @{
322 | 'text'= $MessageText
323 | 'Title'= $MessageTitle
324 | 'themeColor'= $MessageColor
325 | }
326 |
327 |
328 | $Params = @{
329 | Headers = @{'Content-Type'='application/json'}
330 | Body = $Body | ConvertTo-Json
331 | Method = 'Post'
332 | URI = $Webhook
333 | }
334 | Invoke-RestMethod @Params
335 | }
336 | EXIT 0
337 | }
338 | Else
339 | {
340 | $Reported_error = $error[0].exception.message
341 | write-output "KO (Add file): $Reported_error"
342 | EXIT 1
343 | }
--------------------------------------------------------------------------------
/Detect drivers issues/Drivers_Detection.ps1:
--------------------------------------------------------------------------------
1 | $ProgData = $env:PROGRAMDATA
2 | $Log_File = "$ProgData\Drivers_Error_log.log"
3 |
4 | Function Write_Log
5 | {
6 | param(
7 | $Message_Type,
8 | $Message
9 | )
10 |
11 | $MyDate = "[{0:MM/dd/yy} {0:HH:mm:ss}]" -f (Get-Date)
12 | Add-Content $Log_File "$MyDate - $Message_Type : $Message"
13 | }
14 |
15 | If(!(test-path $Log_File)){new-item $Log_File -type file -force}Else{Add-Content $Log_File ""}
16 |
17 | $Drivers_Test = Get-WmiObject Win32_PNPEntity | Where-Object {$_.ConfigManagerErrorCode -gt 0 }
18 | $Search_Disabled_Missing_Drivers = ($Drivers_Test | Where-Object {(($_.ConfigManagerErrorCode -eq 22) -or ($_.ConfigManagerErrorCode -eq 28))})
19 |
20 | If(($Search_Disabled_Missing_Drivers).count -gt 0)
21 | {
22 | $Search_Missing_Drivers = ($Search_Disabled_Missing_Drivers | Where-Object {$_.ConfigManagerErrorCode -eq 28}).count
23 | $Search_Disabled_Drivers = ($Search_Disabled_Missing_Drivers | Where-Object {$_.ConfigManagerErrorCode -eq 22}).count
24 |
25 | Write_Log -Message_Type "ERROR" -Message "There is an issue with drivers. Missing drivers: $Search_Missing_Drivers - Disabled drivers: $Search_Disabled_Drivers"
26 | ForEach($Driver in $Search_Disabled_Missing_Drivers)
27 | {
28 | $Driver_Name = $Driver.Caption
29 | $Driver_DeviceID = $Driver.DeviceID
30 | Write_Log -Message_Type "INFO" -Message "Driver name is: $Driver_Name"
31 | Write_Log -Message_Type "INFO" -Message "Driver device ID is: $Driver_DeviceID"
32 | Add-Content $Log_File ""
33 | }
34 | Exit 1
35 | Break
36 | }Else
37 | {
38 | Write_Log -Message_Type "SUCCESS" -Message "There is no issue with drivers."
39 | Exit 0
40 | }
--------------------------------------------------------------------------------
/Detect drivers issues/Drivers_Remediation.ps1:
--------------------------------------------------------------------------------
1 | # ***************************************************************************
2 | # Part to fill
3 | # ***************************************************************************
4 |
5 | # Toast header in Base 64 format
6 | $Picture_Base64 = "iVBORw0KGgoAAAANSUhEUgAAAlgAAAE1CAIAAAC0hgmSAAAACXBIWXMAAA7DAAAOwwHHb6hkAAD//0lEQVR42uy9B3BVV57uu8I+7jzpTuqZ+7onv7lz3+07PdPv9m0ncs45BxuTc87BRJNzFiCUkMB2u8duE0RSDkgCAQIJAcpZoHCOEknvH9be50h4Xqoy9V7PVn21aukguatmCn71ff+wROfwBleuXLly5eo/rIT7fwJXrly5cuWC0JUrV65cuXJB6MqVK1euXLkgdOXKlStXrlwQunLlypUrVy4IXbly5cqVKxeErly5cuXKlQtCV65cuXLlygWhK1euXLly5YLQlStXrly5ckHoypUrV65cuSB05cqVK1euXBC6cuXKlStXLghduXLlypUrF4SuXLly5cqVC0JXrly5cuXKBaErV65cuXLlgtCVK1euXLlyQejKlStXrly5IHTlypUrV65cELr6f60wX+fTTzvuyXxnxOy33+v49rvvv/3ue2+/48qVq/9fCf7awl/e9zq+O2I2/HWGv9T4V9v9980Foav/OxTsFFT63oRVb7/z7tvul/vlfv1ufL3zLvylhr/aLgtdELr6v6Sgt+OB+2936eVS0P1yv373WPh2514d92fBX3P33zoXhK7+Pfk6nap8d8jkt995x/1Hw/1yv34XWfjOu4Mnw19z+Mvu/ovngtDVNymk9r1J610v6H65X7/jGemk9fCX3f0XzwWhq29Qx+0pb3fo7P5D4X65X7/jXx06w1921xS6IHT1DXpnxn7XDrpf7td/BFP4/uz9bqXQBaGrb9D/HDgd/oq4/0q4X+7X73yl8J1hMzqH1rum0AWhq9dA2HWg+0+E++V+/YdAYY+BWCZ0RylcELpqp1+938X9B8L9cr/+Y5QJu7ogdEHo6huEqyjcL/fL/fqP8PXue51DalwQuiB05YLQ/XK/XBC6//S5IHT1/xyEv/rVO7/61buuXLn6/6TecUHogtDVtw5CEdosQpr4lHAJaZahTfhJSJPCz5ussBYr4pmEHwhuECe94mQdnsH14hTc4fThxdGJOhR8frJenqiVcJ6sAyk84Yfpd/EH4MdqxYka/En4NqheHK8VQXV4HqvBkxV4Z8HPgI7BBf6oTh6rF0frxZEacfSpOFqDgj86Qnc4Dz/BkyT5k6NP5JEaefipOFgtDj0xJ18O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"
7 |
8 | # Toast information
9 | $Title = "Something is wrong with your device"
10 | $Message = "There is an issue with one or several drivers.`nPlease contact your help desk"
11 | $Text_AppName = "Syst and Deploy informs you"
12 |
13 | # ***************************************************************************
14 | # / Part to fill
15 | # ***************************************************************************
16 |
17 |
18 | # ***************************************************************************
19 | # Converting Base64 to png
20 | # ***************************************************************************
21 | $HeroImage = "$env:TEMP\HeroPicture.png"
22 | [byte[]]$Bytes = [convert]::FromBase64String($Picture_Base64)
23 | [System.IO.File]::WriteAllBytes($HeroImage,$Bytes)
24 | # ***************************************************************************
25 | # / Converting Base64 to png
26 | # ***************************************************************************
27 |
28 | Function Register-NotificationApp($AppID,$AppDisplayName) {
29 | [int]$ShowInSettings = 0
30 |
31 | [int]$IconBackgroundColor = 0
32 | $IconUri = "C:\Windows\ImmersiveControlPanel\images\logo.png"
33 |
34 | $AppRegPath = "HKCU:\Software\Classes\AppUserModelId"
35 | $RegPath = "$AppRegPath\$AppID"
36 |
37 | $Notifications_Reg = 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Notifications\Settings'
38 | If(!(Test-Path -Path "$Notifications_Reg\$AppID"))
39 | {
40 | New-Item -Path "$Notifications_Reg\$AppID" -Force
41 | New-ItemProperty -Path "$Notifications_Reg\$AppID" -Name 'ShowInActionCenter' -Value 1 -PropertyType 'DWORD' -Force
42 | }
43 |
44 | If((Get-ItemProperty -Path "$Notifications_Reg\$AppID" -Name 'ShowInActionCenter' -ErrorAction SilentlyContinue).ShowInActionCenter -ne '1')
45 | {
46 | New-ItemProperty -Path "$Notifications_Reg\$AppID" -Name 'ShowInActionCenter' -Value 1 -PropertyType 'DWORD' -Force
47 | }
48 |
49 | try {
50 | if (-NOT(Test-Path $RegPath)) {
51 | New-Item -Path $AppRegPath -Name $AppID -Force | Out-Null
52 | }
53 | $DisplayName = Get-ItemProperty -Path $RegPath -Name DisplayName -ErrorAction SilentlyContinue | Select -ExpandProperty DisplayName -ErrorAction SilentlyContinue
54 | if ($DisplayName -ne $AppDisplayName) {
55 | New-ItemProperty -Path $RegPath -Name DisplayName -Value $AppDisplayName -PropertyType String -Force | Out-Null
56 | }
57 | $ShowInSettingsValue = Get-ItemProperty -Path $RegPath -Name ShowInSettings -ErrorAction SilentlyContinue | Select -ExpandProperty ShowInSettings -ErrorAction SilentlyContinue
58 | if ($ShowInSettingsValue -ne $ShowInSettings) {
59 | New-ItemProperty -Path $RegPath -Name ShowInSettings -Value $ShowInSettings -PropertyType DWORD -Force | Out-Null
60 | }
61 |
62 | New-ItemProperty -Path $RegPath -Name IconUri -Value $IconUri -PropertyType ExpandString -Force | Out-Null
63 | New-ItemProperty -Path $RegPath -Name IconBackgroundColor -Value $IconBackgroundColor -PropertyType ExpandString -Force | Out-Null
64 |
65 | }
66 | catch {}
67 | }
68 |
69 |
70 | $Scenario = 'reminder'
71 |
72 | [xml]$Toast = @"
73 |
74 |
75 |
76 |
77 | $Attribution
78 | $Title
79 |
80 |
81 | $Message
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 | "@
91 |
92 | $AppID = $Text_AppName
93 | $AppDisplayName = $Text_AppName
94 | Register-NotificationApp -AppID $Text_AppName -AppDisplayName $Text_AppName
95 |
96 |
97 | # Toast creation and display
98 | $Load = [Windows.UI.Notifications.ToastNotificationManager, Windows.UI.Notifications, ContentType = WindowsRuntime]
99 | $Load = [Windows.Data.Xml.Dom.XmlDocument, Windows.Data.Xml.Dom.XmlDocument, ContentType = WindowsRuntime]
100 | $ToastXml = New-Object -TypeName Windows.Data.Xml.Dom.XmlDocument
101 | $ToastXml.LoadXml($Toast.OuterXml)
102 | # Display the Toast
103 | [Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier($AppID).Show($ToastXml)
--------------------------------------------------------------------------------
/Export Proactive Remediation to CSV/export_ProactiveRemediation_CSV.ps1:
--------------------------------------------------------------------------------
1 | #=============================================================
2 | # Config
3 | #=============================================================
4 | # If using Azure application with a secret
5 | # $tenant = ""
6 | $tenant = ""
7 | $authority = "https://login.windows.net/$tenant"
8 | $clientId = ""
9 | $clientSecret = ''
10 | # If using Azure application with a secret
11 |
12 | $Script_name = ""
13 | $Export_Path = ""
14 | #=============================================================
15 | #=============================================================
16 |
17 | # If using Azure application with a secret
18 | Update-MSGraphEnvironment -AppId $clientId -Quiet
19 | Update-MSGraphEnvironment -AuthUrl $authority -Quiet
20 | Connect-MSGraph -ClientSecret $ClientSecret -Quiet
21 | # If using Azure application with a secret
22 |
23 | # Connect-MSGraph
24 |
25 | # connect-msgraph
26 | $Main_Path = "https://graph.microsoft.com/beta/deviceManagement/deviceHealthScripts"
27 | $Get_script_info = (Invoke-MSGraphRequest -Url $Main_Path -HttpMethod Get).value | Where{$_.DisplayName -like "*$Script_name*"}
28 | $Get_Script_ID = $Get_script_info.id
29 |
30 | $Filter_ID = "'$Get_Script_ID'"
31 | $Full_filter = "PolicyId eq $filter_ID"
32 | $MyScript = @"
33 | {
34 | "reportName":"DeviceRunStatesByProactiveRemediation",
35 | "filter":"$Full_filter",
36 | "select":[],"format":"csv",
37 | "snapshotId":""
38 | }
39 | "@
40 |
41 | $Export_Remediation = Invoke-MSGraphRequest -Url "https://graph.microsoft.com/beta/deviceManagement/reports/exportJobs" -HttpMethod POST -Content $MyScript -ErrorAction Stop
42 | $Export_Remediation_ID = $Export_Remediation.ID
43 |
44 | $RunStatesByProactiveRemediation_Value = "'$Export_Remediation_ID'"
45 | $Get_URL = Invoke-MSGraphRequest -Url "https://graph.microsoft.com/beta/deviceManagement/reports/exportJobs($RunStatesByProactiveRemediation_Value)" -HttpMethod GET -ErrorAction Stop
46 |
47 | Do{
48 | $Get_URL = Invoke-MSGraphRequest -Url "https://graph.microsoft.com/beta/deviceManagement/reports/exportJobs($RunStatesByProactiveRemediation_Value)" -HttpMethod GET -ErrorAction Stop
49 | If($Get_URL.status -eq "inProgress")
50 | {
51 | write-host "Still in progress"
52 | start-sleep 5
53 | }
54 |
55 | } Until ($Get_URL.status -eq "completed")
56 | $Get_URL = $Get_URL.url
57 | Invoke-WebRequest -Uri $Get_URL -OutFile $Export_Path
58 | write-warning "Proactive Remediation $Script_name has been exported in $Export_Path"
59 |
60 |
61 |
--------------------------------------------------------------------------------
/Low disk space notification/Disk_Space_Detection.ps1:
--------------------------------------------------------------------------------
1 | ##################################################################################################
2 | # Variables to fill
3 | ##################################################################################################
4 | <#
5 | Set there when to display the alert,
6 | If the free space perdent on the disk is below alue in variable $Percent_Alert the notification will be displayed
7 | $Percent_Alert = 20
8 | #>
9 | ##################################################################################################
10 | # Variables to fill
11 | ##################################################################################################
12 |
13 | $Win32_LogicalDisk = Get-ciminstance Win32_LogicalDisk | where {$_.DeviceID -eq "C:"}
14 | $Disk_Full_Size = $Win32_LogicalDisk.size
15 | $Disk_Free_Space = $Win32_LogicalDisk.Freespace
16 | $Total_size_NoFormat = [Math]::Round(($Disk_Full_Size))
17 | [int]$Free_Space_percent = '{0:N0}' -f (($Disk_Free_Space / $Total_size_NoFormat * 100),1)
18 |
19 | If($Free_Space_percent -le $Percent_Alert)
20 | {
21 | write-output "Free space percent: $Free_Space_percent"
22 | EXIT 1
23 | }
24 | Else
25 | {
26 | write-output "Free space percent: $Free_Space_percent"
27 | EXIT 0
28 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Intune Proactive Remediation scripts
2 |
--------------------------------------------------------------------------------
/Reboot warning/Last_Reboot_Detection.ps1:
--------------------------------------------------------------------------------
1 | # Set the reboot delay in the variable $Reboot_Delay
2 | # By default it's 5 days, meaning is the device has not rebooted since 5 days or more a warning will be displayed
3 | $Reboot_Delay = 5
4 |
5 |
6 |
7 | $Last_reboot = Get-ciminstance Win32_OperatingSystem | Select -Exp LastBootUpTime
8 | # Check if fast boot is enabled: if enabled uptime may be wrong
9 | $Check_FastBoot = (Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power" -ea silentlycontinue).HiberbootEnabled
10 | # If fast boot is not enabled
11 | If(($Check_FastBoot -eq $null) -or ($Check_FastBoot -eq 0))
12 | {
13 | $Boot_Event = Get-WinEvent -ProviderName 'Microsoft-Windows-Kernel-Boot'| where {$_.ID -eq 27 -and $_.message -like "*0x0*"}
14 | If($Boot_Event -ne $null)
15 | {
16 | $Last_boot = $Boot_Event[0].TimeCreated
17 | }
18 | }
19 | ElseIf($Check_FastBoot -eq 1)
20 | {
21 | $Boot_Event = Get-WinEvent -ProviderName 'Microsoft-Windows-Kernel-Boot'| where {$_.ID -eq 27 -and $_.message -like "*0x1*"}
22 | If($Boot_Event -ne $null)
23 | {
24 | $Last_boot = $Boot_Event[0].TimeCreated
25 | }
26 | }
27 |
28 | If($Last_boot -eq $null)
29 | {
30 | # If event log with ID 27 can not be found we checl last reboot time using WMI
31 | # It can occurs for instance if event log has been cleaned
32 | $Uptime = $Last_reboot
33 | }
34 | Else
35 | {
36 | If($Last_reboot -gt $Last_boot)
37 | {
38 | $Uptime = $Last_reboot
39 | }
40 | Else
41 | {
42 | $Uptime = $Last_boot
43 | }
44 | }
45 |
46 | $Current_Date = get-date
47 | $Diff_boot_time = $Current_Date - $Uptime
48 | $Boot_Uptime_Days = $Diff_boot_time.Days
49 | $Hour = $Diff_boot_time.Hours
50 | $Minutes = $Diff_boot_time.Minutes
51 | $Reboot_Time = "$Boot_Uptime_Days day(s)" + ": $Hour hour(s)" + " : $minutes minute(s)"
52 | If($Boot_Uptime_Days -ge $Reboot_Delay)
53 | {
54 | write-output "Last reboot/shutdown: $Reboot_Time"
55 | EXIT 1
56 | }
57 | Else
58 | {
59 | write-output "Last reboot/shutdown: $Reboot_Time"
60 | EXIT 0
61 | }
--------------------------------------------------------------------------------
/Reboot warning/reboot.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/damienvanrobaeys/Intune-Remediation-scripts/e1f5c4c32c90d7f2fa12d1b1ef1544acd8ae15a1/Reboot warning/reboot.gif
--------------------------------------------------------------------------------
/Recycle Bin size alert/RecycleBin_Size_Detection.ps1:
--------------------------------------------------------------------------------
1 | #*********************************************************************************************************
2 | # Part to fill
3 | $Size_Alert = "10000000000"
4 | # 20000000000 (Bytes) is 10GB
5 | #*********************************************************************************************************
6 |
7 | $Recycle_Bin_Size = (Get-ChildItem -LiteralPath 'C:\$Recycle.Bin' -File -Force -Recurse -ErrorAction SilentlyContinue | Measure-Object -Property Length -Sum).Sum
8 |
9 | Function Format_Size
10 | {
11 | param(
12 | $size
13 | )
14 |
15 | $suffix = "B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"
16 | $index = 0
17 | while ($size -gt 1kb)
18 | {
19 | $size = $size / 1kb
20 | $index++
21 | }
22 |
23 | "{0:N2} {1}" -f $size, $suffix[$index]
24 | }
25 |
26 | $RecycleBin_FormatedSize = Format_Size $Recycle_Bin_Size
27 |
28 | If($Recycle_Bin_Size -ge $Size_Alert)
29 | {
30 | write-output "Size: $RecycleBin_FormatedSize"
31 | EXIT 1
32 | }
33 | Else
34 | {
35 | write-output "Size: $RecycleBin_FormatedSize"
36 | EXIT 0
37 | }
38 |
--------------------------------------------------------------------------------
/Remediate local admin/Detection.ps1:
--------------------------------------------------------------------------------
1 | $Authorized_Accounts = @()
2 | $Get_Local_AdminGroup = Gwmi win32_group -Filter "Domain='$env:computername' and SID='S-1-5-32-544'"
3 | $Get_Local_AdminGroup_Name = $Get_Local_AdminGroup.Name
4 | $Get_Administrator_Name = $Get_Local_AdminGroup_Name -replace ".$" # Built-in admin user account: Administrateur or Administrator
5 | $Get_Administrator_Status = (Get-LocalUser $Get_Administrator_Name).Enabled
6 |
7 | <#
8 | In the variable $Authorized_Accounts we add authorized accounts meaning accounts that may be in the local admin group.
9 | It can be for instance:
10 | - Name of on-prem group
11 | - SID of Entra ID group
12 |
13 | S-1-12-1-3058833028-1285739641-142383242-3580399105: Azure AD role: Global administrator (ID: b6521684-d479-4ca2-8a98-7c08018e68d5)
14 | S-1-12-1-3734950830-1325773448-1584976025-3637790478: Azure AD role: Azure AD Joined Device Local Administrator (ID: de9ed3ae-b288-4f05-99d0-785e0e47d4d8)
15 |
16 | Here is an example:
17 | $Authorized_Accounts = @(
18 | "SD-OnPrem-Devices-Administrators"; # Local admin group for GEN1
19 | "S-1-12-1-3058833028-1285739641-142383242-3580399105"; # Azure AD role: Global administrator (ID: b6521684-d479-4ca2-8a98-7c08018e68d5)
20 | "S-1-12-1-3734950830-1325773448-1584976025-3637790478"; # Azure AD role: Azure AD Joined Device Local Administrator (ID: de9ed3ae-b288-4f05-99d0-785e0e47d4d8)
21 |
22 | To get the SID you need first to get the ID.
23 | You can get it directly on the Intune portal.
24 | Then you can convert the ID to SIS as below:
25 | - Use this website: https://erikengberg.com/azure-ad-object-id-to-sid/
26 | - Use this script: https://oliverkieselbach.com/2020/05/13/powershell-helpers-to-convert-azure-ad-object-ids-and-sids/
27 | #>
28 |
29 | $Authorized_Accounts = @(
30 | "S-1-12-1-3058833028-1285739641-142383242-3580399105"; # Azure AD role: Global administrator (ID: b6521684-d479-4ca2-8a98-7c08018e68d5)
31 | "S-1-12-1-3734950830-1325773448-1584976025-3637790478"; # Azure AD role: Azure AD Joined Device Local Administrator (ID: de9ed3ae-b288-4f05-99d0-785e0e47d4d8)
32 | )
33 | #*************************************************************************************************
34 | If($Get_Administrator_Status -eq $False)
35 | {
36 | $Authorized_Accounts += $Get_Administrator_Name
37 | }
38 |
39 | $Local_admin_found = 0
40 | $AdminGroup = [ADSI]"WinNT://./$Get_Local_AdminGroup_Name,group"
41 | $Get_Local_AdminGroup_Members = $AdminGroup.psbase.Invoke("Members") | % {([ADSI]$_).InvokeGet('AdsPath')}
42 | foreach($Member in $Get_Local_AdminGroup_Members | where {$_ -notcontains $Authorized_Accounts})
43 | {
44 | $Account_Infos = $Member.split("/")
45 | $Account_Name = $Account_Infos[-1]
46 | $Other_Local_Admin = $Account_Name | Where {($Authorized_Accounts -notcontains $_)}
47 | If($Other_Local_Admin -ne $null)
48 | {
49 | # At least one local admin account has been found
50 | $Local_admin_found++
51 | }
52 | }
53 |
54 | If($Local_admin_found -gt 0)
55 | {
56 | # Run the remediation script after
57 | EXIT 1
58 | }
59 | Else
60 | {
61 | EXIT 0
62 | }
--------------------------------------------------------------------------------
/Remediate local admin/Remediation.ps1:
--------------------------------------------------------------------------------
1 | # Path of the log file
2 | $Log_File = "C:\Windows\Debug\Remove_Local_admin.log"
3 | If(!(test-path $Log_File)){new-item $Log_File -type file -force}
4 |
5 | Function Write_Log
6 | {
7 | param(
8 | $Message_Type,
9 | $Message
10 | )
11 | $MyDate = "[{0:MM/dd/yy} {0:HH:mm:ss}]" -f (Get-Date)
12 | write-host "$MyDate - $Message_Type : $Message"
13 | Add-Content $Log_File "$MyDate - $Message_Type : $Message"
14 | }
15 |
16 | Write_Log -Message_Type "INFO" -Message "Local admin account remediation started"
17 |
18 | $Authorized_Accounts = @()
19 | $Get_Local_AdminGroup = Gwmi win32_group -Filter "Domain='$env:computername' and SID='S-1-5-32-544'"
20 | $Get_Local_AdminGroup_Name = $Get_Local_AdminGroup.Name
21 | $Get_Administrator_Name = $Get_Local_AdminGroup_Name -replace ".$" # Built-in admin user account: Administrateur or Administrator
22 | $Get_Administrator_Status = (Get-LocalUser $Get_Administrator_Name).Enabled
23 |
24 | <#
25 | In the variable $Authorized_Accounts we add authorized accounts meaning accounts that may be in the local admin group.
26 | It can be for instance:
27 | - Name of on-prem group
28 | - SID of Entra ID group
29 |
30 | S-1-12-1-3058833028-1285739641-142383242-3580399105: Azure AD role: Global administrator (ID: b6521684-d479-4ca2-8a98-7c08018e68d5)
31 | S-1-12-1-3734950830-1325773448-1584976025-3637790478: Azure AD role: Azure AD Joined Device Local Administrator (ID: de9ed3ae-b288-4f05-99d0-785e0e47d4d8)
32 |
33 | Here is an example:
34 | $Authorized_Accounts = @(
35 | "SD-OnPrem-Devices-Administrators"; # Local admin group for GEN1
36 | "S-1-12-1-3058833028-1285739641-142383242-3580399105"; # Azure AD role: Global administrator (ID: b6521684-d479-4ca2-8a98-7c08018e68d5)
37 | "S-1-12-1-3734950830-1325773448-1584976025-3637790478"; # Azure AD role: Azure AD Joined Device Local Administrator (ID: de9ed3ae-b288-4f05-99d0-785e0e47d4d8)
38 |
39 | To get the SID you need first to get the ID.
40 | You can get it directly on the Intune portal.
41 | Then you can convert the ID to SIS as below:
42 | - Use this website: https://erikengberg.com/azure-ad-object-id-to-sid/
43 | - Use this script: https://oliverkieselbach.com/2020/05/13/powershell-helpers-to-convert-azure-ad-object-ids-and-sids/
44 | #>
45 |
46 | $Authorized_Accounts = @(
47 | "S-1-12-1-3058833028-1285739641-142383242-3580399105"; # Azure AD role: Global administrator (ID: b6521684-d479-4ca2-8a98-7c08018e68d5)
48 | "S-1-12-1-3734950830-1325773448-1584976025-3637790478"; # Azure AD role: Azure AD Joined Device Local Administrator (ID: de9ed3ae-b288-4f05-99d0-785e0e47d4d8)
49 | )
50 |
51 | If($Get_Administrator_Status -eq $False)
52 | {
53 | $Authorized_Accounts += $Get_Administrator_Name
54 | }
55 | $AdminGroup = [ADSI]"WinNT://./$Get_Local_AdminGroup_Name,group"
56 | $Get_Local_AdminGroup_Members = $AdminGroup.psbase.Invoke("Members") | % {([ADSI]$_).InvokeGet('AdsPath')}
57 | foreach($Member in $Get_Local_AdminGroup_Members | where {$_ -notcontains $Authorized_Accounts})
58 | {
59 | $Account_Infos = $Member.split("/")
60 | $Account_Name = $Account_Infos[-1]
61 | $Other_Local_Admin = $Account_Name | Where {($Authorized_Accounts -notcontains $_)}
62 | If($Other_Local_Admin -ne $null)
63 | {
64 | Write_Log -Message_Type "INFO" -Message "Account to delete: $Other_Local_Admin"
65 | Try{
66 | $AdminGroup.Remove("$Member")
67 | Write_Log -Message_Type "INFO" -Message "Account $Other_Local_Admin has been removed"
68 | }
69 | Catch{
70 | Write_Log -Message_Type "INFO" -Message "Account $Other_Local_Admin has not been removed"
71 | }
72 | }
73 | }
--------------------------------------------------------------------------------
/Set BIOS password/Check_BIOS_Password_Detection.ps1:
--------------------------------------------------------------------------------
1 | #********************************************************************************************
2 | # Part to fill
3 | #
4 | # Azure application info (for getting secret from Key Vault)
5 | $TenantID = ""
6 | $App_ID = ""
7 | $ThumbPrint = ""
8 | #
9 | # Mode to install Az modules,
10 | # Choose Install if you want to install directly modules from PSGallery
11 | # Choose Download if you want to download modules a blob storage and import them
12 | $Az_Module_Install_Mode = "Install" # Install or Download
13 | # Modules path on the web, like blob storage
14 | $Az_Accounts_URL = ""
15 | $Az_KeyVault_URL = ""
16 | #
17 | $vaultName = ""
18 | $Secret_Name_New_PWD = ""
19 | #********************************************************************************************
20 |
21 | $Log_File = "$env:SystemDrive\Windows\Debug\Set_BIOS_password.log"
22 | If(!(test-path $Log_File)){new-item $Log_File -type file -force}
23 | Function Write_Log
24 | {
25 | param(
26 | $Message_Type,
27 | $Message
28 | )
29 |
30 | $MyDate = "[{0:MM/dd/yy} {0:HH:mm:ss}]" -f (Get-Date)
31 | Add-Content $Log_File "$MyDate - $Message_Type : $Message"
32 | write-host "$MyDate - $Message_Type : $Message"
33 | }
34 |
35 | # In this function we will install: Nuget package provider and modules Az.accounts, Az.KeyVault module
36 | $Is_Nuget_Installed = $False
37 | If(!(Get-PackageProvider | where {$_.Name -eq "Nuget"}))
38 | {
39 | Write_Log -Message_Type "INFO" -Message "The package Nuget is not installed"
40 | Try
41 | {
42 | Write_Log -Message_Type "INFO" -Message "The package Nuget is being installed"
43 | [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
44 | Install-PackageProvider -Name Nuget -MinimumVersion 2.8.5.201 -Force -Confirm:$False | out-null
45 | Write_Log -Message_Type "SUCCESS" -Message "The package Nuget has been successfully installed"
46 | $Is_Nuget_Installed = $True
47 | }
48 | Catch
49 | {
50 | Write_Log -Message_Type "ERROR" -Message "An issue occured while installing package Nuget"
51 | Break
52 | }
53 | }
54 | Else
55 | {
56 | $Is_Nuget_Installed = $True
57 | Write_Log -Message_Type "INFO" -Message "The package Nuget is already installed"
58 | }
59 |
60 |
61 | Function Import_from_Blob
62 | {
63 | $Modules_Path = "$env:temp\Modules"
64 | $Az_Accounts_ZIP_Path = "$Modules_Path\Az_Accounts.zip"
65 | $Az_KeyVault_ZIP_Path = "$Modules_Path\Az_KeyVault.zip"
66 | $AzAccounts_Module = "$Modules_Path\Az.Accounts"
67 | $AzKeyVault_Module = "$Modules_Path\Az.KeyVault"
68 |
69 | Write_Log -Message_Type "INFO" -Message "Downloading AZ modules"
70 | Try
71 | {
72 | Invoke-WebRequest -Uri $Az_Accounts_URL -OutFile $Az_Accounts_ZIP_Path
73 | Invoke-WebRequest -Uri $Az_KeyVault_URL -OutFile $Az_KeyVault_ZIP_Path
74 | Write_Log -Message_Type "SUCCESS" -Message "Downloading AZ modules"
75 | }
76 | Catch
77 | {
78 | Write_Log -Message_Type "ERROR" -Message "Downloading AZ modules"
79 | EXIT 1
80 | }
81 |
82 | Write_Log -Message_Type "INFO" -Message "Extracting AZ modules"
83 | Try
84 | {
85 | Expand-Archive -Path $Az_Accounts_ZIP_Path -DestinationPath $AzAccounts_Module -Force
86 | Expand-Archive -Path $Az_KeyVault_ZIP_Path -DestinationPath $AzKeyVault_Module -Force
87 | Write_Log -Message_Type "SUCCESS" -Message "Extracting AZ modules"
88 | }
89 | Catch
90 | {
91 | Write_Log -Message_Type "ERROR" -Message "Extracting AZ modules"
92 | EXIT 1
93 | }
94 |
95 | Write_Log -Message_Type "INFO" -Message "Importing AZ modules"
96 | Try
97 | {
98 | import-module $AzAccounts_Module
99 | import-module $AzKeyVault_Module
100 | Write_Log -Message_Type "SUCCESS" -Message "Importing AZ modules"
101 | }
102 | Catch
103 | {
104 | Write_Log -Message_Type "ERROR" -Message "Importing AZ modules"
105 | EXIT 1
106 | }
107 | }
108 |
109 | Function Install_Az_Module
110 | {
111 | If($Is_Nuget_Installed -eq $True)
112 | {
113 | $Modules = @("Az.accounts","Az.KeyVault")
114 | ForEach($Module_Name in $Modules)
115 | {
116 | If (!(Get-InstalledModule $Module_Name))
117 | {
118 | Write_Log -Message_Type "INFO" -Message "The module $Module_Name has not been found"
119 | Try
120 | {
121 | Write_Log -Message_Type "INFO" -Message "The module $Module_Name is being installed"
122 | Install-Module $Module_Name -Force -Confirm:$False -AllowClobber -ErrorAction SilentlyContinue | out-null
123 | Write_Log -Message_Type "SUCCESS" -Message "The module $Module_Name has been installed"
124 | Write_Log -Message_Type "INFO" -Message "AZ.Accounts version $Module_Version"
125 | }
126 | Catch
127 | {
128 | Write_Log -Message_Type "ERROR" -Message "The module $Module_Name has not been installed"
129 | write-output "The module $Module_Name has not been installed"
130 | EXIT 1
131 | }
132 | }
133 | Else
134 | {
135 | Try
136 | {
137 | Write_Log -Message_Type "INFO" -Message "The module $Module_Name has been found"
138 | Import-Module $Module_Name -Force -ErrorAction SilentlyContinue
139 | Write_Log -Message_Type "INFO" -Message "The module $Module_Name has been imported"
140 | }
141 | Catch
142 | {
143 | Write_Log -Message_Type "ERROR" -Message "The module $Module_Name has not been imported"
144 | write-output "The module $Module_Name has not been imported"
145 | EXIT 1
146 | }
147 | }
148 | }
149 |
150 | If ((Get-Module "Az.accounts" -listavailable) -and (Get-Module "Az.KeyVault" -listavailable))
151 | {
152 | Write_Log -Message_Type "INFO" -Message "Both modules are there"
153 | }
154 | }
155 | }
156 |
157 | Function Remove_Current_scriptdddd
158 | {
159 | $Global:Current_Folder = split-path $MyInvocation.MyCommand.Path
160 | $Content_to_remove = "'$Current_Folder\*'"
161 | $ScriptRemove = @"
162 | remove-item $Content_to_remove -Recurse -Force
163 | "@
164 | $Exported_Script_path = "C:\Windows\Temp\ScriptRemove.ps1"
165 | $ScriptRemove | out-file $Exported_Script_path -Force
166 | start-process -WindowStyle hidden powershell.exe $Exported_Script_path
167 | }
168 |
169 | If($Az_Module_Install_Mode -eq "Install")
170 | {
171 | Install_Az_Module
172 | }
173 | Else
174 | {
175 | Import_from_Blob
176 | }
177 |
178 | $Get_Manufacturer_Info = (gwmi win32_computersystem).Manufacturer
179 | If($Get_Manufacturer_Info -like "*HP*")
180 | {
181 | Write_Log -Message_Type "INFO" -Message "Manufacturer: HP"
182 | $IsPasswordSet = (Get-WmiObject -Namespace root/hp/instrumentedBIOS -Class HP_BIOSSetting | Where-Object Name -eq "Setup password").IsSet
183 | }
184 | ElseIf($Get_Manufacturer_Info -like "*Lenovo*")
185 | {
186 | Write_Log -Message_Type "INFO" -Message "Manufacturer: Lenovo"
187 | $IsPasswordSet = (gwmi -Class Lenovo_BiosPasswordSettings -Namespace root\wmi).PasswordState
188 | }
189 | ElseIf($Get_Manufacturer_Info -like "*Dell*")
190 | {
191 | Write_Log -Message_Type "INFO" -Message "Manufacturer: Dell"
192 | $module_name = "DellBIOSProvider"
193 | If(Get-Module -ListAvailable -Name $module_name)
194 | {
195 | import-module $module_name -Force
196 | Write_Log -Message_Type "INFO" -Message "Module Dell imported"
197 | }
198 | Else
199 | {
200 | Write_Log -Message_Type "INFO" -Message "Module Dell not installed"
201 | Install-Module -Name DellBIOSProvider -Force
202 | Write_Log -Message_Type "INFO" -Message "Module Dell has been installed"
203 | }
204 | $IsPasswordSet = (Get-Item -Path DellSmbios:\Security\IsAdminPasswordSet).currentvalue
205 | }
206 |
207 | # $Check_BIOS_Date = (get-itemproperty $BIOS_PWD_Update_Registry_Path).UpdatedDate
208 | # $Check_BIOS_Version = (get-itemproperty $BIOS_PWD_Update_Registry_Path).Version
209 | # New-ItemProperty -Path $BIOS_PWD_Update_Registry_Path -Name "New_PWD_UpdatedDate" -Value $KeyVault_New_PWD_Date -Force | out-null
210 | # New-ItemProperty -Path $BIOS_PWD_Update_Registry_Path -Name "New_PWD_Version" -Value $KeyVault_New_PWD_Version -Force | out-null
211 |
212 | # New-ItemProperty -Path $BIOS_PWD_Update_Registry_Path -Name "Old_PWD_UpdatedDate" -Value $KeyVault_Old_PWD_Date -Force | out-null
213 | # New-ItemProperty -Path $BIOS_PWD_Update_Registry_Path -Name "Old_PWD_Version" -Value $KeyVault_Old_PWD_Version -Force | out-null
214 |
215 |
216 | If(($IsPasswordSet -eq 1) -or ($IsPasswordSet -eq "true") -or ($IsPasswordSet -eq $true) -or ($IsPasswordSet -eq 2))
217 | {
218 | Write_Log -Message_Type "INFO" -Message "Your BIOS is password protected"
219 | Write_Log -Message_Type "INFO" -Message "Checking if BIOS password is the latest version"
220 |
221 | $BIOS_PWD_Update_Registry_Path = "HKLM:\SOFTWARE\BIOS_Management"
222 | If(test-path $BIOS_PWD_Update_Registry_Path)
223 | {
224 | $Check_New_PWD_Date = (get-itemproperty $BIOS_PWD_Update_Registry_Path).New_PWD_UpdatedDate
225 | $Check_New_PWD_Version = (get-itemproperty $BIOS_PWD_Update_Registry_Path).New_PWD_Version
226 |
227 | $Check_Old_PWD_Date = (get-itemproperty $BIOS_PWD_Update_Registry_Path).Old_PWD_UpdatedDate
228 | $Check_Old_PWD_Version = (get-itemproperty $BIOS_PWD_Update_Registry_Path).Old_PWD_Version
229 | }
230 | Else
231 | {
232 | $Check_BIOS_Date = ""
233 | $Check_BIOS_Version = ""
234 | $Check_Old_PWD_Date = ""
235 | $Check_Old_PWD_Version = ""
236 | }
237 |
238 | Write_Log -Message_Type "INFO" -Message "Connexion to Key Vault"
239 | Try
240 | {
241 | Connect-AzAccount -tenantid $TenantID -ApplicationId $App_ID -CertificateThumbprint $ThumbPrint | out-null
242 | Write_Log -Message_Type "SUCCESS" -Message "Connexion to Key Vault"
243 | }
244 | Catch
245 | {
246 | Write_Log -Message_Type "ERROR" -Message "Connexion to Key Vault"
247 | Remove_Current_script
248 | Exit 0
249 | }
250 |
251 | Write_Log -Message_Type "INFO" -Message "Getting last BIOS password version from Key Vault"
252 | Try
253 | {
254 | $Secret_New_PWD = (Get-AzKeyVaultSecret -vaultName $vaultName -name $Secret_Name_New_PWD) | select *
255 | $Get_New_PWD = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($Secret_New_PWD.SecretValue)
256 | $Get_PWD_Date = $Secret_New_PWD.Updated
257 | $Get_PWD_Date = $Get_PWD_Date.ToString("mmddyyyy")
258 | $Get_PWD_Version = $Secret_New_PWD.Version
259 | Write_Log -Message_Type "INFO" -Message "Password last change: $Get_PWD_Date"
260 | Write_Log -Message_Type "INFO" -Message "Password last version: $Get_PWD_Version"
261 | Write_Log -Message_Type "INFO" -Message "Getting last BIOS password version from Key Vault"
262 |
263 | Write_Log -Message_Type "SUCCESS" -Message "Getting last BIOS password version from Key Vault"
264 | }
265 | Catch
266 | {
267 | Write_Log -Message_Type "ERROR" -Message "Getting last BIOS password version from Key Vault"
268 | Remove_Current_script
269 | Exit 0
270 | }
271 |
272 | If(($Get_PWD_Date -eq $Check_BIOS_Date) -and ($Get_PWD_Version -eq $Check_BIOS_Version))
273 | {
274 | Write_Log -Message_Type "SUCCESS" -Message "The device has the latest BIOS password"
275 | Write-output "The device has the latest BIOS password"
276 | Remove_Current_script
277 | Exit 0
278 | }
279 | Else
280 | {
281 | Write_Log -Message_Type "INFO" -Message "The device has not the latest BIOS password"
282 | Write_Log -Message_Type "INFO" -Message "The remediation script will be launched"
283 | Write-output "The device has not the latest BIOS password"
284 | Exit 1
285 | }
286 | }
287 | Else
288 | {
289 | Write_Log -Message_Type "ERROR" -Message "Your BIOS is not password protected"
290 | Write-output "Your BIOS is not password protected"
291 | Exit 1
292 | }
293 |
--------------------------------------------------------------------------------
/Set BIOS password/Check_BIOS_Password_Remediation.ps1:
--------------------------------------------------------------------------------
1 | #********************************************************************************************
2 | # Part to fill
3 | #
4 | # Azure application info (for getting secret from Key Vault)
5 | $TenantID = ""
6 | $App_ID = ""
7 | $ThumbPrint = ""
8 | #
9 | # Mode to install Az modules,
10 | # Choose Install if you want to install directly modules from PSGallery
11 | # Choose Download if you want to download modules a blob storage and import them
12 | $Az_Module_Install_Mode = "Install" # Install or Download
13 | # Modules path on the web, like blob storage
14 | $Az_Accounts_URL = ""
15 | $Az_KeyVault_URL = ""
16 | #
17 | $vaultName = ""
18 | $Secret_Name_Old_PWD = ""
19 | $Secret_Name_New_PWD = ""
20 | #********************************************************************************************
21 |
22 | Function Create_Registry_Content
23 | {
24 | param(
25 | $KeyVault_New_PWD_Date,
26 | $KeyVault_New_PWD_Version,
27 | $Key_Vault_Old_PWD_Date,
28 | $Key_Vault_Old_PWD_Version
29 | )
30 |
31 | $BIOS_PWD_Update_Registry_Path = "HKLM:\SOFTWARE\BIOS_Management"
32 | If(!(test-path $BIOS_PWD_Update_Registry_Path))
33 | {
34 | New-Item $BIOS_PWD_Update_Registry_Path -Force
35 | }
36 |
37 | New-ItemProperty -Path $BIOS_PWD_Update_Registry_Path -Name "New_PWD_UpdatedDate" -Value $KeyVault_New_PWD_Date -Force | out-null
38 | New-ItemProperty -Path $BIOS_PWD_Update_Registry_Path -Name "New_PWD_Version" -Value $KeyVault_New_PWD_Version -Force | out-null
39 |
40 | New-ItemProperty -Path $BIOS_PWD_Update_Registry_Path -Name "Old_PWD_UpdatedDate" -Value $Key_Vault_Old_PWD_Date -Force | out-null
41 | New-ItemProperty -Path $BIOS_PWD_Update_Registry_Path -Name "Old_PWD_Version" -Value $Key_Vault_Old_PWD_Version -Force | out-null
42 | }
43 |
44 | Function Remove_Current_scriptsss
45 | {
46 | $Global:Current_Folder = split-path $MyInvocation.MyCommand.Path
47 | $Content_to_remove = "'$Current_Folder\*'"
48 |
49 | $ScriptRemove = @"
50 | remove-item $Content_to_remove -Recurse -Force
51 | "@
52 | $Exported_Script_path = "C:\Windows\Temp\ScriptRemove.ps1"
53 | $ScriptRemove | out-file $Exported_Script_path -Force
54 | start-process -WindowStyle hidden powershell.exe $Exported_Script_path
55 | }
56 |
57 | Function Import_from_Blob
58 | {
59 | $Modules_Path = "$env:temp\Modules"
60 | $Az_Accounts_ZIP_Path = "$Modules_Path\Az_Accounts.zip"
61 | $Az_KeyVault_ZIP_Path = "$Modules_Path\Az_KeyVault.zip"
62 | $AzAccounts_Module = "$Modules_Path\Az.Accounts"
63 | $AzKeyVault_Module = "$Modules_Path\Az.KeyVault"
64 |
65 | Write_Log -Message_Type "INFO" -Message "Downloading AZ modules"
66 | Try
67 | {
68 | Invoke-WebRequest -Uri $Az_Accounts_URL -OutFile $Az_Accounts_ZIP_Path
69 | Invoke-WebRequest -Uri $Az_KeyVault_URL -OutFile $Az_KeyVault_ZIP_Path
70 | Write_Log -Message_Type "SUCCESS" -Message "Downloading AZ modules"
71 | }
72 | Catch
73 | {
74 | Write_Log -Message_Type "ERROR" -Message "Downloading AZ modules"
75 | Remove_Current_script
76 | EXIT 1
77 | }
78 |
79 | Write_Log -Message_Type "INFO" -Message "Extracting AZ modules"
80 | Try
81 | {
82 | Expand-Archive -Path $Az_Accounts_ZIP_Path -DestinationPath $AzAccounts_Module -Force
83 | Expand-Archive -Path $Az_KeyVault_ZIP_Path -DestinationPath $AzKeyVault_Module -Force
84 | Write_Log -Message_Type "SUCCESS" -Message "Extracting AZ modules"
85 | }
86 | Catch
87 | {
88 | Write_Log -Message_Type "ERROR" -Message "Extracting AZ modules"
89 | Remove_Current_script
90 | EXIT 1
91 | }
92 |
93 | Write_Log -Message_Type "INFO" -Message "Importing AZ modules"
94 | Try
95 | {
96 | import-module $AzAccounts_Module
97 | import-module $AzKeyVault_Module
98 | Write_Log -Message_Type "SUCCESS" -Message "Importing AZ modules"
99 | }
100 | Catch
101 | {
102 | Write_Log -Message_Type "ERROR" -Message "Importing AZ modules"
103 | Remove_Current_script
104 | EXIT 1
105 | }
106 | }
107 |
108 | Function Install_Az_Module
109 | {
110 | If($Is_Nuget_Installed -eq $True)
111 | {
112 | $Modules = @("Az.accounts","Az.KeyVault")
113 | ForEach($Module_Name in $Modules)
114 | {
115 | If (!(Get-InstalledModule $Module_Name))
116 | {
117 | Write_Log -Message_Type "INFO" -Message "The module $Module_Name has not been found"
118 | Try
119 | {
120 | Write_Log -Message_Type "INFO" -Message "The module $Module_Name is being installed"
121 | Install-Module $Module_Name -Force -Confirm:$False -AllowClobber -ErrorAction SilentlyContinue | out-null
122 | Write_Log -Message_Type "SUCCESS" -Message "The module $Module_Name has been installed"
123 | Write_Log -Message_Type "INFO" -Message "AZ.Accounts version $Module_Version"
124 | }
125 | Catch
126 | {
127 | Write_Log -Message_Type "ERROR" -Message "The module $Module_Name has not been installed"
128 | write-output "The module $Module_Name has not been installed"
129 | Remove_Current_script
130 | EXIT 1
131 | }
132 | }
133 | Else
134 | {
135 | Try
136 | {
137 | Write_Log -Message_Type "INFO" -Message "The module $Module_Name has been found"
138 | Import-Module $Module_Name -Force -ErrorAction SilentlyContinue
139 | Write_Log -Message_Type "INFO" -Message "The module $Module_Name has been imported"
140 | }
141 | Catch
142 | {
143 | Write_Log -Message_Type "ERROR" -Message "The module $Module_Name has not been imported"
144 | write-output "The module $Module_Name has not been imported"
145 | Remove_Current_script
146 | EXIT 1
147 | }
148 | }
149 | }
150 |
151 | If ((Get-Module "Az.accounts" -listavailable) -and (Get-Module "Az.KeyVault" -listavailable))
152 | {
153 | Write_Log -Message_Type "INFO" -Message "Both modules are there"
154 | }
155 | }
156 | }
157 |
158 |
159 | $Log_File = "$env:SystemDrive\Windows\Debug\Set_BIOS_password.log"
160 | If(!(test-path $Log_File)){new-item $Log_File -type file -force}
161 | Function Write_Log
162 | {
163 | param(
164 | $Message_Type,
165 | $Message
166 | )
167 |
168 | $MyDate = "[{0:MM/dd/yy} {0:HH:mm:ss}]" -f (Get-Date)
169 | Add-Content $Log_File "$MyDate - $Message_Type : $Message"
170 | write-host "$MyDate - $Message_Type : $Message"
171 | }
172 |
173 |
174 | Function Check_Old_Password_version
175 | {
176 | param(
177 | $Key_Vault_Old_PWD_Date,
178 | $Key_Vault_Old_PWD_Version
179 | )
180 | $BIOS_PWD_Update_Registry_Path = "HKLM:\SOFTWARE\BIOS_Management"
181 | If(test-path $BIOS_PWD_Update_Registry_Path)
182 | {
183 | $Check_Old_PWD_Date = (get-itemproperty $BIOS_PWD_Update_Registry_Path).Old_PWD_UpdatedDate
184 | $Check_Old_PWD_Version = (get-itemproperty $BIOS_PWD_Update_Registry_Path).Old_PWD_Version
185 |
186 | If(($Key_Vault_Old_PWD_Date -ne $Check_Old_PWD_Date) -and ($Key_Vault_Old_PWD_Version -ne $Check_Old_PWD_Version))
187 | {
188 | Write_Log -Message_Type "INFO" -Message "The current device password on the device is not the same than this one on the Key Vault"
189 | Write_Log -Message_Type "INFO" -Message "Current device BIOS password Key Vault secret version: $Check_Old_PWD_Version"
190 | # Write_Log -Message_Type "INFO" -Message "Current Key Vault BIOS password version: $Key_Vault_Old_PWD_Version"
191 | Write_Log -Message_Type "INFO" -Message "Current device BIOS password date: $Check_Old_PWD_Date"
192 | # Write_Log -Message_Type "INFO" -Message "Current Key Vault BIOS password date: $Key_Vault_Old_PWD_Date"
193 | }
194 | }
195 | }
196 |
197 |
198 | # We will install the Az.accounts module
199 | $Is_Nuget_Installed = $False
200 | If (!(Get-PackageProvider NuGet -listavailable))
201 | {
202 | Try
203 | {
204 | [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
205 | Install-PackageProvider -Name Nuget -MinimumVersion 2.8.5.201 -Force | out-null
206 | Write_Log -Message_Type "SUCCESS" -Message "The package $Module_Name has been successfully installed"
207 | $Is_Nuget_Installed = $True
208 | }
209 | Catch
210 | {
211 | Write_Log -Message_Type "ERROR" -Message "An issue occured while installing package $Module_Name"
212 | Break
213 | }
214 | }
215 | Else
216 | {
217 | $Is_Nuget_Installed = $True
218 | }
219 |
220 | If($Is_Nuget_Installed -eq $True)
221 | {
222 | If($Az_Module_Install_Mode -eq "Install")
223 | {
224 | Install_Az_Module
225 | }
226 | Else
227 | {
228 | Import_from_Blob
229 | }
230 | }
231 |
232 |
233 | If(($TenantID -eq "") -and ($App_ID -eq "") -and ($ThumbPrint -eq ""))
234 | {
235 | Write_Log -Message_Type "ERROR" -Message "Info is missing, please fill: TenantID, appid and thumbprint"
236 | write-output "Info is missing, please fill: TenantID, appid and thumbprint"
237 | Remove_Current_script
238 | EXIT 1
239 | }Else
240 | {
241 | $Appli_Infos_Filled = $True
242 | }
243 |
244 | If($Appli_Infos_Filled -eq $True)
245 | {
246 | Try
247 | {
248 | Write_Log -Message_Type "INFO" -Message "Connecting to your Azure application"
249 | Connect-AzAccount -tenantid $TenantID -ApplicationId $App_ID -CertificateThumbprint $ThumbPrint | Out-null
250 | Write_Log -Message_Type "SUCCESS" -Message "Connection OK to your Azure application"
251 | $Azure_App_Connnected = $True
252 | }
253 | Catch
254 | {
255 | Write_Log -Message_Type "ERROR" -Message "Connection KO to your Azure application"
256 | write-output "Connection KO to your Azure application"
257 | Remove_Current_script
258 | EXIT 1
259 | }
260 |
261 | If($Azure_App_Connnected -eq $True)
262 | {
263 | # Getting the old password
264 | $Secret_Old_PWD = (Get-AzKeyVaultSecret -vaultName $vaultName -name $Secret_Name_Old_PWD) | select *
265 | $Get_Old_PWD = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($Secret_Old_PWD.SecretValue)
266 | $Old_PWD = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($Get_Old_PWD)
267 | # $Get_Old_PWD_Date = $Secret_Old_PWD.Updated
268 | # $Get_Old_PWD_Date = $Get_Old_PWD_Date.ToString("mmddyyyy")
269 | # $Get_Old_PWD_Version = $Secret_Old_PWD.Version
270 |
271 |
272 | # Getting the new password
273 | $Secret_New_PWD = (Get-AzKeyVaultSecret -vaultName $vaultName -name $Secret_Name_New_PWD) | select *
274 | $Get_New_PWD = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($Secret_New_PWD.SecretValue)
275 | $New_PWD = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($Get_New_PWD)
276 | $Get_New_PWD_Date = $Secret_New_PWD.Updated
277 | $Get_New_PWD_Date = $Get_New_PWD_Date.ToString("mmddyyyy")
278 | $Get_New_PWD_Version = $Secret_New_PWD.Version
279 |
280 | $Getting_KeyVault_PWD = $True
281 |
282 | Write_Log -Message_Type "INFO" -Message "Current password is: $Old_PWD"
283 | Write_Log -Message_Type "INFO" -Message "New password is: $New_PWD"
284 | }
285 |
286 | If($Getting_KeyVault_PWD -eq $True)
287 | {
288 | $Get_Manufacturer_Info = (gwmi win32_computersystem).Manufacturer
289 | Write_Log -Message_Type "INFO" -Message "Manufacturer is: $Get_Manufacturer_Info"
290 |
291 | If(($Get_Manufacturer_Info -notlike "*HP*") -and ($Get_Manufacturer_Info -notlike "*Lenovo*") -and ($Get_Manufacturer_Info -notlike "*Dell*"))
292 | {
293 | Write_Log -Message_Type "ERROR" -Message "Device manufacturer not supported"
294 | Break
295 | write-output "Device manufacturer not supported"
296 | Remove_Current_script
297 | EXIT 1
298 | }
299 |
300 | If($Get_Manufacturer_Info -like "*Lenovo*")
301 | {
302 | $IsPasswordSet = (gwmi -Class Lenovo_BiosPasswordSettings -Namespace root\wmi).PasswordState
303 | }
304 | ElseIf($Get_Manufacturer_Info -like "*HP*")
305 | {
306 | $IsPasswordSet = (Get-WmiObject -Namespace root/hp/instrumentedBIOS -Class HP_BIOSSetting | Where-Object Name -eq "Setup password").IsSet
307 | }
308 | ElseIf($Get_Manufacturer_Info -like "*Dell*")
309 | {
310 | $module_name = "DellBIOSProvider"
311 | If (Get-InstalledModule -Name DellBIOSProvider){import-module DellBIOSProvider -Force}
312 | Else{Install-Module -Name DellBIOSProvider -Force}
313 | $IsPasswordSet = (Get-Item -Path DellSmbios:\Security\IsAdminPasswordSet).currentvalue
314 | }
315 |
316 | If(($IsPasswordSet -eq 1) -or ($IsPasswordSet -eq "true") -or ($IsPasswordSet -eq 2))
317 | {
318 | $Is_BIOS_Password_Protected = $True
319 | Write_Log -Message_Type "INFO" -Message "There is a current BIOS password"
320 | }
321 | Else
322 | {
323 | $Is_BIOS_Password_Protected = $False
324 | Write_Log -Message_Type "INFO" -Message "There is no current BIOS password"
325 | }
326 |
327 | If($Is_BIOS_Password_Protected -eq $True)
328 | {
329 | If($Get_Manufacturer_Info -like "*HP*")
330 | {
331 | Write_Log -Message_Type "INFO" -Message "Changing BIOS password for HP"
332 | Try
333 | {
334 | $bios = Get-WmiObject -Namespace root/hp/instrumentedBIOS -Class HP_BIOSSettingInterface
335 | $bios.SetBIOSSetting("Setup Password","" + "NewPassword","" + "OldPassword")
336 | Write_Log -Message_Type "SUCCESS" -Message "BIOS password has been changed"
337 | write-output "Change password: Success"
338 | Create_Registry_Content -KeyVault_New_PWD_Date $Get_New_PWD_Date -KeyVault_New_PWD_Version $Get_New_PWD_Version -Key_Vault_Old_PWD_Date $Get_New_PWD_Date -Key_Vault_Old_PWD_Version $Get_New_PWD_Version
339 | Remove_Current_script
340 | EXIT 0
341 | }
342 | Catch
343 | {
344 | Write_Log -Message_Type "ERROR" -Message "BIOS password has not been changed"
345 | write-output "Change password: Failed"
346 | Check_Old_Password_version -Key_Vault_Old_PWD_Date $Get_Old_PWD_Date -Key_Vault_Old_PWD_Version $Get_Old_PWD_Version
347 | Remove_Current_script
348 | EXIT 1
349 | }
350 | }
351 | ElseIf($Get_Manufacturer_Info -like "*Lenovo*")
352 | {
353 | Write_Log -Message_Type "INFO" -Message "Changing BIOS password for Lenovo"
354 | Try
355 | {
356 | $PasswordSet = Get-WmiObject -Namespace root\wmi -Class Lenovo_SetBiosPassword
357 | $PasswordSet.SetBiosPassword("pap,$Old_PWD,$New_PWD,ascii,us") | out-null
358 | Write_Log -Message_Type "SUCCESS" -Message "BIOS password has been changed"
359 | write-output "Change password: Success"
360 | Create_Registry_Content -KeyVault_New_PWD_Date $Get_New_PWD_Date -KeyVault_New_PWD_Version $Get_New_PWD_Version -Key_Vault_Old_PWD_Date $Get_New_PWD_Date -Key_Vault_Old_PWD_Version $Get_New_PWD_Version
361 | Remove_Current_script
362 | EXIT 0
363 | }
364 | Catch
365 | {
366 | Write_Log -Message_Type "ERROR" -Message "BIOS password has not been changed"
367 | write-output "Change password: Failed"
368 | Check_Old_Password_version -Key_Vault_Old_PWD_Date $Get_Old_PWD_Date -Key_Vault_Old_PWD_Version $Get_Old_PWD_Version
369 | Remove_Current_script
370 | EXIT 1
371 | }
372 | }
373 | ElseIf($Get_Manufacturer_Info -like "*Dell*")
374 | {
375 | Write_Log -Message_Type "INFO" -Message "Changing BIOS password for Dell"
376 | $New_PWD_Length = $New_PWD.Length
377 | If(($New_PWD_Length -lt 4) -or ($New_PWD_Length -gt 32))
378 | {
379 | Write_Log -Message_Type "ERROR" -Message "New password length is not correct"
380 | Write_Log -Message_Type "ERROR" -Message "Password must contain minimum 4, and maximum 32 characters"
381 | Write_Log -Message_Type "INFO" -Message "Password length: $New_PWD_Length"
382 | write-output "Password must contain minimum 4, and maximum 32 characters"
383 | Remove_Current_script
384 | EXIT 1
385 | }
386 | Else
387 | {
388 | Write_Log -Message_Type "INFO" -Message "Password length: $New_PWD_Length"
389 | Try
390 | {
391 | Set-Item -Path DellSmbios:\Security\AdminPassword $New_PWD -Password $Old_PWD -ErrorAction stop
392 | Write_Log -Message_Type "SUCCESS" -Message "BIOS password has been changed"
393 | write-output "Change password: Success"
394 | Create_Registry_Content -KeyVault_New_PWD_Date $Get_New_PWD_Date -KeyVault_New_PWD_Version $Get_New_PWD_Version -Key_Vault_Old_PWD_Date $Get_New_PWD_Date -Key_Vault_Old_PWD_Version $Get_New_PWD_Version
395 | # Remove_Current_script
396 | EXIT 0
397 | }
398 | Catch
399 | {
400 | $Exception_Error = $error[0]
401 | Write_Log -Message_Type "ERROR" -Message "BIOS password has not been changed"
402 | Write_Log -Message_Type "ERROR" -Message "Error: $Exception_Error"
403 | write-output "Change password: Failed"
404 | # Remove_Current_script
405 | Check_Old_Password_version -Key_Vault_Old_PWD_Date $Get_Old_PWD_Date -Key_Vault_Old_PWD_Version $Get_Old_PWD_Version
406 | EXIT 1
407 | }
408 | }
409 | }
410 | }
411 | Else
412 | {
413 | If($Get_Manufacturer_Info -like "*HP*")
414 | {
415 | Write_Log -Message_Type "INFO" -Message "Changing BIOS password for HP"
416 | Try
417 | {
418 | $bios = Get-WmiObject -Namespace root/hp/instrumentedBIOS -Class HP_BIOSSettingInterface
419 | $bios.SetBIOSSetting("Setup Password","" + "NewPassword","")
420 | Write_Log -Message_Type "SUCCESS" -Message "BIOS password has been changed"
421 | write-output "Change password: Success"
422 | Create_Registry_Content -KeyVault_New_PWD_Date $Get_New_PWD_Date -KeyVault_New_PWD_Version $Get_New_PWD_Version -Key_Vault_Old_PWD_Date $Get_New_PWD_Date -Key_Vault_Old_PWD_Version $Get_New_PWD_Version
423 | Remove_Current_script
424 | EXIT 0
425 | }
426 | Catch
427 | {
428 | Write_Log -Message_Type "ERROR" -Message "BIOS password has not been changed"
429 | write-output "Change password: Failed"
430 | Remove_Current_script
431 | EXIT 1
432 | }
433 | }
434 | ElseIf($Get_Manufacturer_Info -like "*Lenovo*")
435 | {
436 | write-output "The is no current password. An initial password should be configured first"
437 | Write_Log -Message_Type "INFO" -Message "There is no current BIOS password"
438 | Remove_Current_script
439 | EXIT 1
440 | }
441 | ElseIf($Get_Manufacturer_Info -like "*Dell*")
442 | {
443 | Write_Log -Message_Type "INFO" -Message "Changing BIOS password for HP"
444 | Try
445 | {
446 | Set-Item -Path DellSmbios:\Security\AdminPassword "$AdminPwd"
447 | Write_Log -Message_Type "SUCCESS" -Message "BIOS password has been changed"
448 | write-output "Change password: Success"
449 | Create_Registry_Content -KeyVault_New_PWD_Date $Get_New_PWD_Date -KeyVault_New_PWD_Version $Get_New_PWD_Version -Key_Vault_Old_PWD_Date $Get_New_PWD_Date -Key_Vault_Old_PWD_Version $Get_New_PWD_Version
450 | Remove_Current_script
451 | EXIT 0
452 | }
453 | Catch
454 | {
455 | Write_Log -Message_Type "ERROR" -Message "BIOS password has not been changed"
456 | write-output "Change password: Failed"
457 | Remove_Current_script
458 | EXIT 1
459 | }
460 | }
461 | }
462 | }
463 | }
--------------------------------------------------------------------------------