Доброе утро, уважаемые коллеги!
В конторе есть дорогостоящие машины для расчета гидравлических моделей.(стоимость каждой примерно 300 к. руб была, когда брали. 80-100 RAM. 32-64 CPU)
Но такие машины не всем достались, и поэтому у некоторых расчеты идут очень долго(бывает до 1-го месяца).
1 модель состоит из кучи мелких не зависимых расчетов(до 20 000). В общем нет разницы на какой машине ты выполнишь тот или иной расчет.
Поэтому решили по пробовать создать искусственный кластер из всех машин в которых выполняются такие расчеты.
1) По удаленке подключились к машине YY.Y.Y.YYY и выполнили команду mored -n 4 \\XX.X.X.XXX\C$\test\base.
Все ок, результаты расчетов упали в машину XX.X.X.XXX, в общем туда куда надо.
Вывод, теоритически реально создать искусственный кластер.
2) Создал приложение по примеру от
сюда.
Все ок, блокнот запускается на удаленной машине.
3) команду блокнота меняем на команду mored -n 4 \\XX.X.X.XXX\C$\test\base.
И ничего не происходит, ошибку не выдает.
Нужный процесс на удаленной машине не появляется.
Начали извращаться различными командами (см. ниже), эффекта 0.
В чем могут быть грабли? Куда копать?
Спасибо большое!
//Запуск блакнота
//////////////////////////////
BSTR MethodName = SysAllocString(L"Create");
BSTR ClassName = SysAllocString(L"Win32_Process");
IWbemClassObject* pClass = NULL;
hres = pSvc->GetObject(ClassName, 0, NULL, &pClass, NULL);
IWbemClassObject* pInParamsDefinition = NULL;
hres = pClass->GetMethod(MethodName, 0, &pInParamsDefinition, NULL);
IWbemClassObject* pClassInstance = NULL;
hres = pInParamsDefinition->SpawnInstance(0, &pClassInstance);
VARIANT varCommand;
varCommand.vt = VT_BSTR;
//varCommand.bstrVal = _bstr_t(L"\\XX.X.X.XXX\C$\Program Files\ROXAR\simulation\bin\more\v7.0\Windows_NT_X64\mored.exe -n 4 \\XX.X.X.XXX\C$\test\base");
varCommand.bstrVal = _bstr_t(L"cmd.exe /c mored -n 4 \\XX.X.X.XXX\C$\test\base");
hres = pClassInstance->Put(L"CommandLine", 0, &varCommand, 0);
//wprintf(L"The command is: %s\n", V_BSTR(&varCommand));
IWbemClassObject* pOutParams = NULL;
cout << cpu_memory.employeeID << endl;
if (atoi(cpu_memory.employeeID) == 445)
{
hres = pSvc->ExecMethod(ClassName, MethodName, 0, NULL, pClassInstance, &pOutParams, NULL);
cout << "good" << endl;
if (FAILED(hres))
{
cout << "Could not execute method. Error code = 0x" << hex << hres << endl;
cout << "hachalbak" << endl;
}
}
//////////////////////////////