Detectando se a função de Serviços de Área de Trabalho Remota está instalada
Você pode usar a classe WMI Win32_ServerFeature para detectar se a função de servidor dos Serviços de Área de Trabalho Remota está instalada.
O exemplo de C# a seguir mostra um método que retorna True se a função de servidor dos Serviços de Área de Trabalho Remota estiver instalada e em execução ou falsa caso contrário. Como a classe WMI Win32_ServerFeature só está disponível a partir do Windows Server 2008, esse código não é compatível com versões anteriores do Windows.
static void Main(string[] args)
{
// 14 is the identifier of the Remote Desktop Services role.
HasServerFeatureById(14);
}
static bool HasServerFeatureById(UInt32 roleId)
{
try
{
ManagementClass serviceClass = new ManagementClass("Win32_ServerFeature");
foreach (ManagementObject feature in serviceClass.GetInstances())
{
if ((UInt32)feature["ID"] == roleId)
{
return true;
}
}
return false;
}
catch (ManagementException)
{
// The most likely cause of this is that this is being called from an
// operating system that is not a server operating system.
}
return false;
}