Michael Steiner

von Michael Steiner

Windows 10 & RSAT Offline Installation

Microsoft entwickelt kontinuierlich sein aktuelles Windows 10 Betriebssystem weiter, im aktuellen Fall auch die Installation der entsprechenden Remote Server Administration Tools (RSAT).

 

Bis Windows 10 1809 ließen sich die RSAT Tools als MSU-Datei bei Microsoft herunterladen und installieren:

 

Ab Windows 10 1809 hat sich der Weg zur Installation der RSAT Tools komplett verändert. Microsoft hat nun beschlossen die RSAT Tools den „Features on Demand“, welche in Windows 10 inkludiert sind, hinzuzufügen. Somit lassen sich die RSAT Tools direkt aus Windows 10 heraus installieren, ohne dass eine zusätzliche Installationsdatei benötigt wird.

Alternativ geht es auch via PowerShell:

 

Get-WindowsCapability -Name RSAT* -Online | Select-Object -Property DisplayName, State

Für welche Art man sich auch entscheidet, technisch findet im Hintergrund ein Download der entsprechenden Sourcen von Microsoft statt.

Die Anforderung ist nun die RSAT Tools bei Bedarf über eine Softwareverteilung, z.B. an Admin PCs mit Windows 10 1903, zu verteilen.
Was aber nun, wenn die Windows 10 Clients keinen direkten Zugang ins Internet haben? Eine Offline-Installation der RSAT Tools muss wieder her. Dafür benötigen wir die „Features on Demand“ ISO, welche wir bei Microsoft finden:

Um uns die Installation zu erleichtern gibt es ein kleines PowerShell Skript (Install-Win10RSAT.ps1), welches die Installation übernimmt:

 

#=============================================================

# Windows 10 - Install RSAT Offline

# Version 1.00 (18.12.2019)

# Created by Michael Steiner

# www.modernx.de

# History

# Version 1.00 - Release

#=============================================================

<#

.SYNOPSIS

Windows 10 - Install RSAT Offline

.EXAMPLE

"MISSING"

Windows 10 - Install RSAT Offline

www.modernx.de

#>

#=============================================================

#region Preparations

 

#Current Path

 

$currentExecutingPath = $MyInvocation.MyCommand.Definition.Replace($MyInvocation.MyCommand.Name, "")

 

#endregion

#=============================================================

#region Variables

 

$RSAT = "$currentExecutingPath\Files"

 

#endregion

#=============================================================

#region Main Function

Write-Host "Install RSAT to Windows..." -ForegroundColor Green

Function InstallRSAT {

Get-WindowsCapability -Online | Where-Object {($_.State -notmatch 'Installed') -and ($_.Name -match 'RSAT')} | ForEach-Object {Add-WindowsCapability -Online - LimitAccess -Name $_.Name -Source "$RSAT"}

}

 

InstallRSAT

 

Write-Host "Done!" -ForegroundColor Green

 

#endregion

#=============================================================

 

Die Ordnerstruktur sieht wie folgt aus:

Von der ISO werden der Ordner „metadata“, die „FoDMetadata_Client.cab“ Datei und alle CAB-Dateimodule welche unten aufgelistet sind, inkl. der jeweils gewünschten Sprachdateien benötigt:

 

  • Active Directory Domain Services and Lightweight Directory Services Tools

  • BitLocker Drive Encryption Administration Utilities

  • Active Directory Certificate Services Tools

  • DHCP Server Tools

  • DNS Server Tools

  • Failover Clustering Tools

  • File Services Tools

  • Group Policy Management Tools

  • IP Address Management (IPAM) Client

  • Data Center Bridging LLDP Tools

  • Network Controller Management Tools

  • Network Load Balancing Tools

  • Remote Access Management Tools

  • Remote Desktop Services Tools

  • Server Manager

  • Shielded VM Tools

  • Storage Migration Service Management Tools

  • Storage Replica Module for Windows PowerShell

  • System Insights Module for Windows PowerShell

  • Volume Activation Tools

  • Windows Server Update Services Tools

 

Etwas einfacher lassen sich die nötigen Dateien auch per PowerShell extrahieren. Die Variable $Path, $Language und $Destination sollten noch der persönlichen Arbeitsumgebung angepasst werden.

 

$Path = "E:\" #Mounted ISO drive

$Language = "en-US"

$currentExecutingPath = $MyInvocation.MyCommand.Definition.Replace($MyInvocation.MyCommand.Name, "")

$Destination = New-Item -ItemType Directory -Path "$currentExecutingPath\RSAT_1903_$Language" -Force

 

#get RSAT files

Get-ChildItem ($Path) -Name -Recurse -Include *~amd64~~.cab,*~wow64~~.cab,*~amd64~$Language~.cab,*~wow64~$Language~.cab -Exclude *languagefeatures*,*Holographic*,*NetFx3*,*OpenSSH*,*Msix* |

ForEach-Object {Copy-Item -Path ($Path+$_) -Destination $Destination.FullName -Force -Container}

 

#get metadata

Copy-Item ($Path+"metadata") -Destination $Destination.FullName -Recurse

Copy-Item ($Path+“FoDMetadata_Client.cab”)-Destination $Destination.FullName -Force -Container

 

Somit lässt sich nun auch wieder eine Offline-Installation der RSAT Tools auf Windows 10 1809 und aktueller durchführen.

 

 

 

 

Sie haben Fragen, oder wünschen eine persönliche Beratung?

 

Zum Austausch mit unserem Consultant Michael Steiner

Beratung anfordern

Lassen Sie uns gemeinsam Ihre IT neu denken

Prüfen Sie jetzt Ihr Potenzial zur IT-Kosteneinsparung oder buchen Sie direkt Ihren ersten Beratungstermin (kostenlos).

Vereinbaren Sie ein persönliches Beratungsgespräch oder fragen Sie ein konkretes Angebot an.