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;
}
}