SqlToGraphite.Plugin.Wmi.WmiClient.GetWmiObject C# (CSharp) Method

GetWmiObject() private method

private GetWmiObject ( string query, string machineName, string rootPath ) : IEnumerable
query string
machineName string
rootPath string
return IEnumerable
        private IEnumerable<ManagementObject> GetWmiObject(string query, string machineName, string rootPath)
        {
            try
            {
                var conn = new ConnectionOptions();
                var path = string.Format(@"\\{0}\{1}", machineName, rootPath);
                if (!string.IsNullOrEmpty(this.Username))
                {
                    conn.Username = this.Username;
                }

                var pwd = this.Decrypt(this.Password);
                if (!string.IsNullOrEmpty(pwd))
                {
                    conn.Password = pwd;
                }

                path = string.Format(@"\\{0}\{1}", Hostname, rootPath);
                var scope = new ManagementScope(path, conn);
                this.Log.Debug(string.Format("{0} {1}", path, query));
                var queryObject = new ObjectQuery(query);
                var searcher = new ManagementObjectSearcher(scope, queryObject);
                return searcher.Get().Cast<ManagementObject>().ToList();
            }
            catch (Exception e)
            {
                this.Log.Debug(e);
                throw;
            }
        }