package           : tis-rsat
version           : 2.0-5
architecture      : x64
section           : base
priority          : optional
name              : RSAT
categories        : Utilities,System and network
maintainer        : WAPT Team,Tranquil IT,Jimmy PELÉ
description       : The Remote Server Administration Tools (RSAT) is a set of remote administration tools that enable efficient management of Windows servers from a workstation
depends           : 
conflicts         : 
maturity          : PROD
locale            : all
target_os         : windows
min_wapt_version  : 2.3
sources           : MVLSC
installed_size    : 
impacted_process  : 
description_fr    : Les Outils d'administration de serveur distant (RSAT) est un ensemble d'outils d'administration à distance permettant de gérer les serveurs Windows à partir d'un poste de travail
description_pl    : Remote Server Administration Tools (RSAT) to zestaw narzędzi do zdalnej administracji, które umożliwiają wydajne zarządzanie serwerami Windows ze stacji roboczej
description_de    : Die Remote Server Administration Tools (RSAT) sind eine Reihe von Remote-Verwaltungstools, die eine effiziente Verwaltung von Windows-Servern von einer Workstation aus ermöglichen
description_es    : Las Herramientas de administración remota de servidores (RSAT) son un conjunto de herramientas de administración remota que permiten una gestión eficaz de los servidores Windows desde una estación de trabajo
description_pt    : As Ferramentas de Administração Remota do Servidor (RSAT) são um conjunto de ferramentas de administração remota que permitem a gestão eficiente de servidores Windows a partir de uma estação de trabalho
description_it    : Remote Server Administration Tools (RSAT) è un insieme di strumenti di amministrazione remota che consentono di gestire in modo efficiente i server Windows da una stazione di lavoro
description_nl    : De Remote Server Administration Tools (RSAT) is een set hulpprogramma's voor beheer op afstand waarmee Windows-servers efficiënt kunnen worden beheerd vanaf een werkstation
description_ru    : Remote Server Administration Tools (RSAT) - это набор инструментов удаленного администрирования, которые позволяют эффективно управлять серверами Windows с рабочей станции
audit_schedule    : 
editor            : Microsoft
keywords          : windows,server,rsat,remote,administration,tools
licence           : wapt_public
homepage          : https://learn.microsoft.com/windows-server/remote/remote-server-administration-tools
package_uuid      : f2065855-68d8-4c78-8783-6aaf67a9e47d
valid_from        : 
valid_until       : 
forced_install_on : 
changelog         : 
min_os_version    : 10.0.18361
max_os_version    : 10.0.19041
icon_sha256sum    : 4a5dca5829cfca39f879e051a117fdb5c41a72bf26bee9b87cd78c45fdb5f141
signer            : Tranquil IT
signer_fingerprint: 8c5127a75392be9cc9afd0dbae1222a673072c308c14d88ab246e23832e8c6bb
signature         : BJfq2Ni3nu8CV0qhAu0pkkgfYWux/LWzAKtGBEdmeGyDnxnAvBN6boTYBGgUHss6q2cO7PMUOqwEQNtjMyZks36QFdlzUL/LWl/WrrQnWBDagsqYfidA2kziDdVyIOwnhhDpn72Xh0HBRu2tq+ASMQJkR4JqV2wjSTyfELxefcJ2X+KGT+/D2lvdd6jaLn60Cb6V5asYZxE8iP+YluUzU2F4S3UTgiqaSyoCRKhn6bXdXRQhcuiuVcSn1H9kP3AMKXNwGLtBbGrAEHyxiqKPHpTDJafhOLnrWWv59z6b9UGz2VuwjQt+A6Z77wQtuWCv1VzWMRthYEynMn1MMUkDGw==
signature_date    : 2024-04-17T14:02:34.665627
signed_attributes : package,version,architecture,section,priority,name,categories,maintainer,description,depends,conflicts,maturity,locale,target_os,min_wapt_version,sources,installed_size,impacted_process,description_fr,description_pl,description_de,description_es,description_pt,description_it,description_nl,description_ru,audit_schedule,editor,keywords,licence,homepage,package_uuid,valid_from,valid_until,forced_install_on,changelog,min_os_version,max_os_version,icon_sha256sum,signer,signer_fingerprint,signature_date,signed_attributes

# -*- coding: utf-8 -*-
from setuphelpers import *

uninstallkey = []

rsat_source = "RSAT_1903_x64"  # You can specify a network access
rsat_capability_all = (
    "Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0",
    "Rsat.BitLocker.Recovery.Tools~~~~0.0.1.0",
    "Rsat.CertificateServices.Tools~~~~0.0.1.0",
    "Rsat.DHCP.Tools~~~~0.0.1.0",
    "Rsat.Dns.Tools~~~~0.0.1.0",
    "Rsat.FailoverCluster.Management.Tools~~~~0.0.1.0",
    "Rsat.FileServices.Tools~~~~0.0.1.0",
    "Rsat.GroupPolicy.Management.Tools~~~~0.0.1.0",
    "Rsat.IPAM.Client.Tools~~~~0.0.1.0",
    "Rsat.LLDP.Tools~~~~0.0.1.0",
    "Rsat.NetworkController.Tools~~~~0.0.1.0",
    "Rsat.NetworkLoadBalancing.Tools~~~~0.0.1.0",
    "Rsat.RemoteAccess.Management.Tools~~~~0.0.1.0",
    "Rsat.RemoteDesktop.Services.Tools~~~~0.0.1.0",
    "Rsat.ServerManager.Tools~~~~0.0.1.0",
    "Rsat.Shielded.VM.Tools~~~~0.0.1.0",
    "Rsat.StorageMigrationService.Management.Tools~~~~0.0.1.0",
    "Rsat.StorageReplica.Tools~~~~0.0.1.0",
    "Rsat.SystemInsights.Management.Tools~~~~0.0.1.0",
    "Rsat.VolumeActivation.Tools~~~~0.0.1.0",
    "Rsat.WSUS.Tools~~~~0.0.1.0",
)
# rsat_capability_to_install = rsat_capability_all
rsat_capability_to_install = (
    "Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0",
    "Rsat.Dns.Tools~~~~0.0.1.0",
    "Rsat.GroupPolicy.Management.Tools~~~~0.0.1.0",
    "Rsat.LLDP.Tools~~~~0.0.1.0",
    "Rsat.RemoteAccess.Management.Tools~~~~0.0.1.0",
)


def install():
    # Getting the used storage on programfiles before installation (place it on the top)
    get_disk_free_space_before = get_disk_free_space(programfiles)

    # Installing the package
    with EnsureWUAUServRunning():
        try:
            if windows_version() >= "10.0.18361":
                for capabilities in rsat_capability_to_install:
                    # state = run_powershell('Get-WindowsCapability -Online | Where Name -like "%s" | Select State' % capabilities)
                    # if state['State'] == 4:
                    #    print('Already installed: %s' % capabilities)
                    # else:
                    print("Installing: %s" % capabilities)
                    try:
                        run_powershell('Add-WindowsCapability -Online -Name "%s" -LimitAccess -Source "%s"' % (capabilities, rsat_source))
                    except:
                        print("Installation failed on: %s" % capabilities)
                        continue
            else:
                print("This Windows 10 version is not compatible with this package")
        except:
            print("A reboot is probably required")

    # Return used storage of the program. (place it on the bottom)
    get_disk_free_space_after = get_disk_free_space(programfiles)
    free_space_after_diff = get_disk_free_space_before - get_disk_free_space_after
    print("Storage used: " + str(free_space_after_diff))


def uninstall():
    print("Uninstalling all installed RSAT features")

    with EnsureWUAUServRunning():
        try:
            for capabilities in rsat_capability_all:
                print("Uninstalling: %s" % capabilities)
                try:
                    run_powershell('Remove-WindowsCapability -Online -Name "%s"' % capabilities)
                except:
                    print("Uninstallation failed on: %s" % capabilities)
                    continue
        except:
            print("A reboot is probably required")


def audit():
    import pprint

    print("Showing installed")
    pprint.pprint(run_powershell("Get-WindowsCapability -Online | Where Name -like Rsat* | Where State -Like Installed | Select Name,RestartNeeded"))
    print("Showing not installed RSAT features")
    pprint.pprint(
        run_powershell("Get-WindowsCapability -Online | Where Name -like Rsat* | Where State -NotLike Installed | Select Name,RestartNeeded")
    )
    return "OK"


def update_package():
    pass


if __name__ == "__main__":
    update_package()

8806d296673930af2b4742b4f6bfc3009f96951065c9f3d933bec6f3287663d5 : setup.py
4a5dca5829cfca39f879e051a117fdb5c41a72bf26bee9b87cd78c45fdb5f141 : WAPT/icon.png
a5a97261381e1d0ad46ee15916abec9c2631d0201f5cc50ceb0197a165a0bbbf : WAPT/certificate.crt
316902fc731109281810e943e64f65b4ce1e0a6ea8d7ac52be8442b14f5cbece : luti.json
e1493aea19e3e4cc48d88f22a08870d40d4a9054eef87e7b6f28e3fd9241a57b : WAPT/control