public RdsServerInfo GetRdsServerInfo(string serverName) { var result = new RdsServerInfo(); Runspace runspace = null; try { runspace = OpenRunspace(); result = GetServerInfo(runspace, serverName); result.Status = GetRdsServerStatus(runspace, serverName); } finally { CloseRunspace(runspace); } return result; }
private RdsServerInfo GetServerInfo(Runspace runspace, string serverName) { var result = new RdsServerInfo(); Command cmd = new Command("Get-WmiObject"); cmd.Parameters.Add("Class", "Win32_Processor"); cmd.Parameters.Add("ComputerName", serverName); object[] errors = null; var psProcInfo = ExecuteShellCommand(runspace, cmd, false, out errors).First(); if (errors.Any()) { Log.WriteWarning(string.Join("\r\n", errors.Select(e => e.ToString()).ToArray())); return result; } cmd = new Command("Get-WmiObject"); cmd.Parameters.Add("Class", "Win32_OperatingSystem"); cmd.Parameters.Add("ComputerName", serverName); var psMemoryInfo = ExecuteShellCommand(runspace, cmd, false, out errors).First(); if (errors.Any()) { Log.WriteWarning(string.Join("\r\n", errors.Select(e => e.ToString()).ToArray())); return result; } result.NumberOfCores = Convert.ToInt32(GetPSObjectProperty(psProcInfo, "NumberOfCores")); result.MaxClockSpeed = Convert.ToInt32(GetPSObjectProperty(psProcInfo, "MaxClockSpeed")); result.LoadPercentage = Convert.ToInt32(GetPSObjectProperty(psProcInfo, "LoadPercentage")); result.MemoryAllocatedMb = Math.Round(Convert.ToDouble(GetPSObjectProperty(psMemoryInfo, "TotalVisibleMemorySize")) / 1024, 1); result.FreeMemoryMb = Math.Round(Convert.ToDouble(GetPSObjectProperty(psMemoryInfo, "FreePhysicalMemory")) / 1024, 1); result.Drives = GetRdsServerDriveInfo(runspace, serverName).ToArray(); return result; }
private static RdsServerInfo GetRdsServerInfoInternal(int? itemId, string fqdnName) { int serviceId = GetRdsServiceId(itemId); var result = new RdsServerInfo(); if (serviceId != -1) { var rds = RemoteDesktopServicesHelpers.GetRemoteDesktopServices(serviceId); result = rds.GetRdsServerInfo(fqdnName); } return result; }