Я пытаюсь отключить taskmgr
по GPO.
IGroupPolicyObject* p = NULL;
HRESULT hr = CoCreateInstance(CLSID_GroupPolicyObject, NULL, CLSCTX_ALL,
IID_IGroupPolicyObject, (LPVOID*)&p);
if (SUCCEEDED(hr))
{
HKEY key = NULL;
HRESULT hr = p->OpenLocalMachineGPO(GPO_OPEN_LOAD_REGISTRY);
if (SUCCEEDED(hr)) {
p->GetRegistryKey(GPO_SECTION_USER, &key);
// disable taskmgr
}
GUID RegistryId = REGISTRY_EXTENSION_GUID;
if(SUCCEEDED(p->Save(FALSE, TRUE, &RegistryId, (GUID*) &CLSID_GPESnapIn))) {
}
}
Работает под учетной записью администратора.
И это работает только после перезагрузки или gpupdate
команда под системной учетной записью (сессия 0).
Как сделать его действующим сразу под системной учетной записью (сессия 0)?
Не используйте функцию CreateProcessAsUser или внедряйте другую программу.
Задача ещё не решена.
Других решений пока нет …