Thursday 4 October 2018

Install RSAT Tools on Windows 10

I've written a short script to download and install the RSAT tools for Windows 10. This script works on the recent versions of Windows  10 only! Here goes:

# Install-RSATTools.PS1
# Thomas Lee - doctordns@gmail.com

# 1. Get Windows Client Version and Hardware platform
$Key = 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion'
$CliVer = (Get-ItemProperty -Path $Key).ReleaseId
$Platform = $ENV:PROCESSOR_ARCHITECTURE
"Windows Client Version : $CliVer"
"Hardware Platform : $Platform"

# 2. Create URL for download file
# NB: only works with 1709 and 1803.
$LP1 = 'https://download.microsoft.com/download/1/D/8/'+
'1D8B5022-5477-4B9A-8104-6A71FF9D98AB/'
$Lp180364 = 'WindowsTH-RSAT_WS_1803-x64.msu'
$Lp170964 = 'WindowsTH-RSAT_WS_1709-x64.msu'
$Lp180332 = 'WindowsTH-RSAT_WS_1803-x86.msu'
$Lp170932 = 'WindowsTH-RSAT_WS_1709-x86.msu'
If ($CliVer -eq 1803 -and $Platform -eq 'AMD64') {
$DLPath = $Lp1 + $lp180364}
ELSEIf ($CliVer -eq 1709 -and $Platform -eq 'AMD64') {
$DLPath = $Lp1 + $lp170964}
ElseIf ($CliVer -eq 1803 -and $Platform -eq 'X86') {
$DLPath = $Lp1 + $lp180332}
ElseIf ($CliVer -eq 1709 -and $platform -eq 'x86') {
$DLPath = $Lp1 + $lp170932}
Else {"Version $cliver - unknown"; return}

# 3. Display the download details
"RSAT MSU file to be downloaded:"
$DLPath

# 4. Use BITS to download the file
$DLFile = 'C:\foo\Rsat.msu'
Start-BitsTransfer -Source $DLPath -Destination $DLFile

# 5. Check Authenticode signature
$Authenticatefile = Get-AuthenticodeSignature $DLFile
If ($Authenticatefile.status -NE "Valid")
{'File downloaded fails Authenticode check'}
Else
{'Downloaded file passes Authenticode check'}

# 6. Install the RSAT tools
$WusaArguments = $DLFile + " /quiet"
'Installing RSAT for Windows 10 - Please Wait...'
$Path = 'C:\Windows\System32\wusa.exe'
Start-Process -FilePath $Path -ArgumentList $WusaArguments -Wait

# 7. Get RSAT Modules
Get-Module -Listavailable | Where-Object Name -like '*rsat*'