diff --git a/assets/Product.wxs b/assets/Product.wxs index f0a51dcb8a..8f2362d098 100644 --- a/assets/Product.wxs +++ b/assets/Product.wxs @@ -59,7 +59,7 @@ LAUNCHAPPONEXIT - + @@ -74,7 +74,7 @@ - + @@ -84,17 +84,17 @@ - + - - + + - + - - + + diff --git a/docs/installation/windows.md b/docs/installation/windows.md index fdb3b9d753..47a307aae8 100644 --- a/docs/installation/windows.md +++ b/docs/installation/windows.md @@ -14,10 +14,14 @@ There is a shortcut placed in the Start Menu upon installation. ### Prerequisites +To enable PowerShell remoting over WinRM, the following prerequisites need to be met: + * Install the [Universal C Runtime](https://www.microsoft.com/download/details.aspx?id=50410) on Windows versions prior to Windows 10. It is available via direct download or Windows Update. Fully patched (including optional packages), supported systems will already have this installed. -* Install the [Visual C++ Redistributable](https://www.microsoft.com/download/details.aspx?id=48145) for VS2015. +* Install the Windows Management Framework (WMF) [4.0](https://www.microsoft.com/download/details.aspx?id=40855) + or newer ([5.0](https://www.microsoft.com/download/details.aspx?id=50395), + [5.1](https://www.microsoft.com/download/details.aspx?id=54616)) on Windows 7. ## Deploying on Nano Server diff --git a/test/powershell/Installer/WindowsInstaller.Tests.ps1 b/test/powershell/Installer/WindowsInstaller.Tests.ps1 index 854526410f..0084671ab6 100644 --- a/test/powershell/Installer/WindowsInstaller.Tests.ps1 +++ b/test/powershell/Installer/WindowsInstaller.Tests.ps1 @@ -1,28 +1,24 @@ -$thisTestFolder = Split-Path $MyInvocation.MyCommand.Path -Parent -$wixProductFile = Join-Path $thisTestFolder "..\..\..\assets\Product.wxs" - Describe "Windows Installer" -Tags "Scenario" { BeforeAll { - $originalDefaultParameterValues = $PSDefaultParameterValues.Clone() - if ( ! $IsWindows ) { - $PSDefaultParameterValues["it:skip"] = $true - } + $preRequisitesLink = 'https://aka.ms/pscore6-prereq' + $linkCheckTestCases = @( + @{ Name = "Universal C Runtime"; Url = $preRequisitesLink } + @{ Name = "WMF 4.0"; Url = "https://www.microsoft.com/download/details.aspx?id=40855" } + @{ Name = "WMF 5.0"; Url = "https://www.microsoft.com/download/details.aspx?id=50395" } + @{ Name = "WMF 5.1"; Url = "https://www.microsoft.com/download/details.aspx?id=54616" } + ) } - - AfterAll { - $global:PSDefaultParameterValues = $originalDefaultParameterValues - } - - $preRequisitesLink = 'https://github.com/PowerShell/PowerShell/blob/master/docs/installation/windows.md#prerequisites' It "WiX (Windows Installer XML) file contains pre-requisites link $preRequisitesLink" { + $wixProductFile = Join-Path -Path $PSScriptRoot -ChildPath "..\..\..\assets\Product.wxs" (Get-Content $wixProductFile -Raw).Contains($preRequisitesLink) | Should Be $true } - It "Pre-Requisistes link $preRequisitesLink is reachable" -TestCases $downloadLinks -Test { + It "Pre-Requisistes link for '' is reachable" -TestCases $linkCheckTestCases -Test { + param ($Url) + # Because an outdated link 'https://www.microsoft.com/download/details.aspx?id=504100000' would still return a 200 reponse (due to a redirection to an error page), it only checks that it returns something - (Invoke-WebRequest $preRequisitesLink -UseBasicParsing) | Should Not Be $null + (Invoke-WebRequest $Url -UseBasicParsing) | Should Not Be $null } - }