Public/Test-P1Prerequisites.ps1
function Test-P1Prerequisites { <# .Synopsis Test if prerequisites of PlannerOne are installed on the machine. .Description Look for a list a features that must be installed. Use Install parameter to force installation of missing features. .Parameter Install Force installation of missing features. .Example # Test prerequisites and install missing features. Test-P1Prerequisites -Install #> [cmdletbinding()] param ( [switch] $Install = $false ) Process { Import-Module servermanager $features = ('Web-Server', 'Web-Mgmt-Console', 'Web-Request-Monitor', 'Web-Windows-Auth', 'Web-Asp-Net45', 'Web-Net-Ext45', 'Web-ISAPI-Filter', 'Web-ISAPI-Ext', 'NET-WCF-HTTP-Activation45', 'NET-Framework-45-ASPNET') $missing = @() foreach ($featureName in $features) { # check whether the featue is installed $feature = Get-WindowsFeature $featureName $message = $feature.DisplayName + " : " + $feature.InstallState switch ($feature.InstallState) { UninstallPending { Write-Output $message; $missing += $featureName } Available { Write-Output $message; $missing += $featureName } Default { Write-Output $message } } } Write-Output '' if ($missing.Count -eq 0) { Write-Output 'No missing features! Ready for PlannerOne!' } else { Write-Output 'Missing features: ' $missing if ($Install) { Write-Output '' Write-Output 'Installing missing features' foreach ($featureName in $missing) { # check whether the featue is installed $feature = Get-WindowsFeature $featureName Add-WindowsFeature $featureName } } } } } |