sql server — WMIC возвращает File Not Found при вызове из C ++ или VB — командная строка работает

Вот мой код:

#define tcalloc(nCharacters) (TCHAR*)calloc(nCharacters,sizeof(TCHAR))
TCHAR *sCmdParam = tcalloc(1024);
StringCchCopy(sCmdParam, 1024,
L"wmic.exe ""/NAMESPACE:\\\\root\\Microsoft\\SqlServer\\ComputerManagement14 PATH ServerNetworkProtocol WHERE ProtocolName='Tcp' CALL SetEnable");
DWORD dwPID = 0;
DWORD dwExit = ExecCmdAndWait(sCmdParam, 120, SW_HIDE, &dwPID);
_tprintf(L"%u\n",dwExit);
free(sCmdParam);
_getchar_nolock();
return 0;

(ExecCmdAndWait просто вызывает CreateProcess)

Если я запускаю команду wmic из командной строки в командной строке администратора, она работает правильно.

Чем отличается запуск от скомпилированной программы?

Он работает под администратором домена.

Я также попытался запустить его с «cmd.exe / c» перед «wmic», но это дало тот же результат.

Я также пробовал ‘chdir’ заранее для c: \ windows \ syswow64 \ wbem и c: \ windows \ system32 \ wbem, оба не работали.

И я попытался позвонить из быстрой программы VB6, которая дала тот же результат.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]