【发布时间】:2015-02-26 14:07:00
【问题描述】:
我正在尝试使用 WMI 查询远程计算机以获取其计划任务(特别是两个),但查询没有返回任何内容。我试过在我的本地机器上运行它,它仍然没有返回任何结果。但是如果我查询 Win32_LogicalDisk 它会返回 3 个结果。对我来说,说 WMI 在本地工作,它只为计划作业返回任何内容。我觉得这很奇怪,因为当我从命令提示符运行schtasks 时,我得到了大约 25 个任务(也许更多) 下面的代码没什么特别的。我已经注释掉了我尝试过的东西,现在它已设置为在我的机器上本地运行。
public Win32_ScheduledJob QueryTask(string systemName, string p2)
{
var job = new Win32_ScheduledJob();
var connectionOptions = new ConnectionOptions()
{
Impersonation = ImpersonationLevel.Impersonate
};
var computer = string.Format(@"\\{0}\root\CIMV2", systemName);
//var scope = new ManagementScope(computer);
//scope.Connect();
//var str = "SELECT * FROM Win32_LogicalDisk";
var str = "SELECT * FROM Win32_ScheduledJob";
var query = new ManagementObjectSearcher(str);
var tasks = query.Get();
//TODO search for Name==p2 and set its elements to job
var count = tasks.Count;
tasks.Dispose();
return job;
}
知道为什么我没有得到任何结果吗?哦,我忘了提到我曾经使用 query.Get(???ManagementOO???) 并订阅了 4 个事件,它以 NoError 状态调用完成,但从不调用 Progress、ObjectReady 或 ObjectPut。
【问题讨论】: