Создание общей папки на машине без Windows программно

Я пытаюсь использовать функцию Windows API NetShareAdd () для удаленного создания общей папки в окне Linux. У меня есть общая папка с использованием samba, и я могу создавать каталоги удаленно прямо здесь; но я всегда получаю ACCESS_DENIED, когда пытаюсь создать сетевой ресурс на такой машине.

Вы знаете, возможно ли это? Если да, есть ли у вас идеи, как заставить это работать?

Это небольшой тест на это:

int main()
{
SHARE_INFO_2 sh;
sh.shi2_netname = L"shr004x";
sh.shi2_type = STYPE_DISKTREE;
sh.shi2_remark = L"This is a shared test";
sh.shi2_permissions = ACCESS_ALL;
sh.shi2_max_uses = 17;
sh.shi2_current_uses = 1;
sh.shi2_path = L"/mnt/Storage/Test/test001"; //No matter what I put here, I always get access denied (5)
sh.shi2_passwd = NULL;
DWORD hr = ::NetShareAdd(L"172.16.212.40", 2, (LPBYTE) &sh, NULL);
cout << hr << endl;
getchar();
}

-1

Решение

У вас должны быть права дискового оператора (SeDiskOperatorPrivilege) и Samba, настроенные для создания общих ресурсов.

См. Страницу руководства smb.conf (5) для описания опции ‘add share command’.

1

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

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

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