то, о чем вы просите, напрямую не поддерживается, но может быть достигнуто путем добавления другого шага фильтра после возвращения запроса.
во-первых, .populate( 'tags', null, { tagName: { $in: ['funny', 'politics'] } } )
определенно то, что вам нужно сделать, чтобы отфильтровать теги документы. то после возвращения запроса вам нужно будет вручную отфильтровать документы, у которых нет документов tags
, которые соответствуют критериям заполнения. что-то вроде:
query....
.exec(function(err, docs){
docs = docs.filter(function(doc){
return doc.tags.length;
})
// do stuff with docs
});
Можно использовать PsExec из http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx
или WMI :
object theProcessToRun() = { "YourFileHere" };
ManagementClass theClass = new ManagementClass(@"\\server\root\cimv2:Win32_Process");
theClass.InvokeMethod("Create", theProcessToRun);
Согласно MSDN , объект Процесс
разрешает доступ только к удаленным процессам, но не к возможности запускать или останавливать удаленные процессы. Итак, чтобы ответить на ваш вопрос относительно использования этого класса, вы не можете.
Я не верю, что вы можете запустить процесс напрямую через UNC-путь; то есть, если System.Process использует comspec Windows для запуска приложения ... как насчет того, чтобы проверить эту теорию, сопоставив диск с "\ someComputer \ somePath", а затем изменив свое создание ProcessStartInfo на это? Если это работает таким образом, вы можете рассмотреть возможность временного сопоставления диска программным способом, запустить приложение, а затем удалить сопоставление (так же, как pushd / popd работает из командного окна).
Используйте один из следующих способов:
Или, если вам захочется, внедрите свою собственную службу или COM-компонент. Это будет очень близко к тому, что делает PsExec.
Из всех этих методов я предпочитаю планировщик задач. На мой взгляд, это самый чистый API из всех. Подключитесь к удаленному планировщику задач, создайте новую задачу для исполняемого файла, запустите его. Примечание: имя исполняемого файла должно быть локальным для этой машины. Не \servername\path\file.exe, а c:\path\file.exe. Удалите задачу, если вам так хочется.
Все эти методы требуют, чтобы у вас был административный доступ к целевой машине.
ProcessStartInfo
не способен запускать удаленные процессы.