Deploy RSAT (Remote Server Administration Tools) for Windows 10 v1909 using ConfigMgr and Powershell


Windows 10 v1909 was released to MSDN users last week, and true to tradition, I’m updating my Powershell script, enabling you to install RSAT for Windows 10 1909 automatically and unattended.

I received quite some feedback on my 1903 script, and thanks to that I made some improvements to the 1909 edition. That includes:

  • Added test for pending reboots. If reboot is pending, RSAT features might not install successfully
  • Added test for configuration of WSUS by Group Policy
    • If WSUS is configured by Group Policy, history shows that additional settings might be needed for some environments


The script requires administrative rights as well as access to the Internet (RSAT is installed through Microsoft Update).

The script is built around Get-WindowsCapability, Add-WindowsCapability and Remove-WindowsCapability.

Yet again the script comes with 4 options:

  • -All (-All is installing ALL the features within the RSAT bundle)
  • -Basic (-Basic is only installing AD DS, DHCP, DNS, Group Policy Management and Server Manager)
  • -ServerManager (-ServerManager is only installing the Server Manager)
  • -Uninstall (-Uninstall removes all RSAT features again)

Below an example of running the script manually with the -Basic parameter on Windows 10 1909

And another example of running the script manually with the -Uninstall parameter on Windows 10 1909

Notice the extra logging if WSUS seems to be configured with Group Policy.

Configuration Manager

I’m putting the Powershell script to use with an application in SCCM. While this is pretty standard SCCM, I have included a few snippets of the application below.

The installation program:

powershell.exe -ExecutionPolicy Bypass -NoLogo -NonInteractive -NoProfile -WindowStyle Hidden -File .\Install-RSATv1809v1903v1909.ps1 -Basic

The uninstall program:

powershell.exe -ExecutionPolicy Bypass -NoLogo -NonInteractive -NoProfile -WindowStyle Hidden -File .\Install-RSATv1809v1903v1909.ps1 -Uninstall



34 thoughts on “Deploy RSAT (Remote Server Administration Tools) for Windows 10 v1909 using ConfigMgr and Powershell”

      • Hi Martin,
        i have modified your script for our needs to install from FoD media. therefor i modified your param block and also the add -windowscapability part.

        My param blocks look like this:

        [parameter(Mandatory=$false, ParameterSetName = “Install”)]
        [parameter(Mandatory=$false, ParameterSetName = “Install”)]
        [parameter(Mandatory=$false, ParameterSetName = “Install”)]
        [Parameter(ParameterSetName = “Install”, Mandatory=$true)]
        [parameter(Mandatory=$false, ParameterSetName=”Default”)]

        and the add part:

        Add-WindowsCapability -Online -Name $RsatItem -Source $FoDMediaPath -LimitAccess

        Through set parameter the param FoDMediaPath is only needed within the installation switch
        Install-RSATv1809v1903.ps1 -FoDMediaPath [-All] [-Basic] [-ServerManager] []
        Install-RSATv1809v1903.ps1 [-Uninstall] []

        Thank you for your great scripts

  1. Thanks for this! I was able to get this working after making the Group Policy change. Just curious is you’ve tried this during a Windows 10 Task Sequence upgrade? I can get this to install during a regular Task Sequence just fine, but I get a generic 0X80004005 error during the TS upgrade. I’ll keep digging, but just curious if you’ve had any success with this.

    • I haven’t tried to run the script during an IPU TS, but if you enable dynamic updates (Dynamically update Windows Setup with Windows Update) for your in-place upgrade, the RSAT tools should be preserved.

  2. Hi Martin,

    the script is running if I run it manually on my machine. But with SCCM Application I get the error message:
    Unmatched exit code (4294770688) is considered an execution failure.
    in the appenforce.log.
    I thing it is the detection method
    Path: %windir%\system32\
    File or folder name: ServerManager.exe
    – Install for system
    – Whether or not a user is logged on
    – Normal
    What is here wrong?

  3. Tried manual install – Error info shared for your info.

    VERBOSE: Script is running with -Basic parameter. Installing basic RSAT features
    VERBOSE: Adding Rsat.ActiveDirectory.DS-LDS.Tools~~~~ to Windows
    VERBOSE: Failed to add Rsat.ActiveDirectory.DS-LDS.Tools~~~~ to Windows
    WARNING: Add-WindowsCapability failed. Error code = 0x800f0954
    VERBOSE: Adding Rsat.DHCP.Tools~~~~ to Windows
    VERBOSE: Failed to add Rsat.DHCP.Tools~~~~ to Windows
    WARNING: Add-WindowsCapability failed. Error code = 0x800f0954
    VERBOSE: Adding Rsat.Dns.Tools~~~~ to Windows
    VERBOSE: Failed to add Rsat.Dns.Tools~~~~ to Windows
    WARNING: Add-WindowsCapability failed. Error code = 0x800f0954
    VERBOSE: Adding Rsat.GroupPolicy.Management.Tools~~~~ to Windows
    VERBOSE: Failed to add Rsat.GroupPolicy.Management.Tools~~~~ to Windows
    WARNING: Add-WindowsCapability failed. Error code = 0x800f0954
    VERBOSE: Adding Rsat.ServerManager.Tools~~~~ to Windows
    VERBOSE: Failed to add Rsat.ServerManager.Tools~~~~ to Windows
    WARNING: Add-WindowsCapability failed. Error code = 0x800f0954

  4. I tried both manual and through application package. Both fails for me. Not sure what is wrong. The test was done at home lab.
    I can provide error details and other info to help fix the issue. Let me know.

  5. Does anyone know whether this is broken if we have the following Group Policy settings enabled?

    -Turn off access to all Windows Update features
    -Remove access to use all Windows Update features

    I have these enabled from back when there was some weird stuff relating to Dual Scan. I wonder if I need them any longer…..

    • I would assume the script will fail installing RSAT if those group policies are enabled. I had those too applied to avoid dual scan initially, but I have since made the move to Windows Update for Business and is no longer applying any setting in regards to Windows Update with GPOs 🙂

  6. Unfortunately, I am also receiving error 0x87D00324 in SCCM, and it fails during manual install. The script worked great for v1809 and v1903, but not here unfortunately.

    • Hmm, can you add the RSAT features manually? Not through the script, but directly in the OS (manage optional features). If that doesn’t work either, something is not right in your OS.

        • Alright, I actually don’t know. All my testing is done on a clean installation as well, and I don’t have any issues. The script is not doing anything magically, other than running the proper powershell cmdlets: add-windowscapability, remove-windowscapability. Are you able to run those manually too?

  7. Looking forward to a script that can be used for offline RSAT install. I was able to get hold of FOD package for en-us. Not sure how to use it with PS script.

    By the way, if anybody need help with RSAT install using above PS script through CB1906 check below link. I wrote a detailed documentation with all screen shot that worked perfectly when deployed to Win 10 v1909 workstation.

  8. During IPU I set the following REG Key before I use this script:

    reg add “HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Servicing” /v RepairContentServerSource /d 2 /t REG_DWORD /f

    This does the same as the policy setting Specify settings for optional component installation and component repair under Computer Configuration\Administrative Templates\System.

    Well documented

  9. Also, this worked for me;
    Run “gpedit.msc” to edit your local computer policy The setting in question is: Computer Configuration\Administrative Templates\System\Specify settings for optional component installation and component repair

    My local policy seems to have defaulted to “Disabled” – after changing it to “Enabled” and selecting the checkbox labeled “Download repair content and optional features directly from Windows Update instead of Windows Server Update Services (WSUS)” the RSAT tools installed for me.

  10. This does not work with Powershell 7.

    .\Install-RSATv1809v1903v1909.ps1 -Uninstall
    Get-WmiObject: C:\Users\xxx\Downloads\Install-RSATv1809v1903v1909.ps1:78
    Line |
    78 | $WindowsBuild = (Get-WmiObject -Class Win32_OperatingSystem).BuildNum …
    | ~~~~~~~~~~~~~
    | The term ‘Get-WmiObject’ is not recognized as the name of a cmdlet, function, script file, or operable
    | program. Check the spelling of the name, or if a path was included, verify that the path is correct
    | and try again.

    WARNING: Not running correct Windows 10 build:

    Get-WmiObject was deprecated in PS Core; use CIM instead.


Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.