@@ -42,7 +42,7 @@ function Get-OSServerPreReqs
4242 $RequirementStatus = @ {}
4343 $RequirementStatus.Title = $Title
4444 $RequirementStatus.Status = $Result.Status
45- $RequirementStatus.OptionalsFailed = $Result.OptionalsFailed
45+ $RequirementStatus.OptionalsStatus = $Result.OptionalsStatus
4646
4747 $TextStatus = " OK"
4848 if (-not $ ($Result.Status ))
@@ -68,7 +68,10 @@ function Get-OSServerPreReqs
6868 [Bool ]$Status ,
6969
7070 [Parameter (Mandatory = $false )]
71- [Bool ]$OptionalsFailed ,
71+ [Bool ]$OptionalsStatus = $True ,
72+
73+ [Parameter (Mandatory = $false )]
74+ [Bool ]$IISStatus = $True ,
7275
7376 [Parameter (Mandatory = $true )]
7477 [AllowEmptyCollection ()]
@@ -81,21 +84,19 @@ function Get-OSServerPreReqs
8184
8285 $Result = @ {}
8386 $Result.Status = $Status
87+ $Result.OptionalsStatus = $OptionalsStatus
88+ $Result.IISStatus = $IISStatus
8489
85- if ($null -eq $OptionalsFailed )
86- {
87- $Result.OptionalsFailed = $false
88- }
89- else
90- {
91- $Result.OptionalsFailed = $OptionalsFailed
92- }
9390
94- if ($Result.Status -and -not $Result.OptionalsFailed )
91+ if ($Result.Status -and $Result.OptionalsStatus )
9592 {
9693 $Result.Messages = $OKMessages
9794 }
98- elseif ($Result.Status -and $Result.OptionalsFailed )
95+ elseif ($Result.Status -and -not $Result.OptionalsStatus )
96+ {
97+ $Result.Messages = $NOKMessages
98+ }
99+ elseif (-not $Result.IISStatus )
99100 {
100101 $Result.Messages = $NOKMessages
101102 }
@@ -109,7 +110,8 @@ function Get-OSServerPreReqs
109110
110111 $GlobalRequirementsResults = @ {}
111112 $GlobalRequirementsResults.Success = $True
112- $GlobalRequirementsResults.OptionalsFailed = $False
113+ $GlobalRequirementsResults.OptionalsStatus = $True
114+ $GlobalRequirementsResults.IISStatus = $True
113115
114116 $RequirementStatuses = @ ()
115117 }
@@ -145,10 +147,23 @@ function Get-OSServerPreReqs
145147 - ScriptBlock `
146148 {
147149 $Status = $ ([version ]$ (GetWindowsServerHostingVersion) -ge [version ]$OS11ReqsMinDotNetCoreVersion )
150+ $aspModules = Get-WebGlobalModule | Where-Object { $_.Name -like " aspnetcoremodule*" }
148151 $OKMessages = @ (" Minimum .NET Core Windows Server Hosting found." )
149152 $NOKMessages = @ (" Minimum .NET Core Windows Server Hosting not found." )
150153
151- return $ (CreateResult - Status $Status - OKMessages $OKMessages - NOKMessages $NOKMessages )
154+ # Check if IIS can find ASP.NET modules
155+ if ($aspModules.Count -lt 1 )
156+ {
157+ $Status = $False
158+ $IISStatus = $False
159+ $NOKMessages = @ (" IIS can't find ASP.NET modules" )
160+ }
161+ else
162+ {
163+ $IISStatus = $True
164+ }
165+
166+ return $ (CreateResult - Status $Status - IISStatus $IISStatus - OKMessages $OKMessages - NOKMessages $NOKMessages )
152167 }
153168 }
154169 }
@@ -255,7 +270,7 @@ function Get-OSServerPreReqs
255270 - ScriptBlock `
256271 {
257272 $Status = $True
258- $OptionalsFailed = $False
273+ $OptionalsStatus = $True
259274 $OKMessages = @ (" All Event Logs are correctly configured." )
260275 $NOKMessages = @ ()
261276
@@ -276,7 +291,7 @@ function Get-OSServerPreReqs
276291
277292 if ($CheckMaxLogSize -or $CheckOverflowAction )
278293 {
279- $OptionalsFailed = $True
294+ $OptionalsStatus = $False
280295 $NOKMessage += " Event Log '$EventLogName ' is not correctly configured."
281296
282297 if ($CheckMaxLogSize )
@@ -295,11 +310,11 @@ function Get-OSServerPreReqs
295310 }
296311 catch
297312 {
298- $OptionalsFailed = $True
313+ $OptionalsStatus = $False
299314 $NOKMessages += " Something went wrong when trying to obtain Event Logs information: `" $_ `" "
300315 }
301316
302- return $ (CreateResult - Status $Status - OptionalsFailed $OptionalsFailed - OKMessages $OKMessages - NOKMessages $NOKMessages )
317+ return $ (CreateResult - Status $Status - OptionalsStatus $OptionalsStatus - OKMessages $OKMessages - NOKMessages $NOKMessages )
303318 }
304319
305320 $RequirementStatuses += CreateRequirementStatus - Title " FIPS Compliant Algorithms" `
@@ -323,9 +338,13 @@ function Get-OSServerPreReqs
323338 {
324339 $GlobalRequirementsResults.Success = $False
325340 }
326- if ($RequirementStatus.OptionalsFailed )
341+ if (-not $RequirementStatus.OptionalsStatus )
342+ {
343+ $GlobalRequirementsResults.OptionalsStatus = $False
344+ }
345+ if (-not $RequirementStatus.IISStatus )
327346 {
328- $GlobalRequirementsResults.OptionalsFailed = $True
347+ $GlobalRequirementsResults.IISStatus = $False
329348 }
330349 }
331350
0 commit comments