예제 #1
0
        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;
        }
예제 #2
0
        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;
        }