::CoInitialize(NULL);
IGroupPolicyObject* p = NULL;
/*hr = CoCreateInstance(CLSID_GroupPolicyObject, NULL,
CLSCTX_INPROC_SERVER, IID_IGroupPolicyObject,
(LPVOID*)&p);*/
hr = CoCreateInstance(CLSID_GroupPolicyObject, NULL, CLSCTX_ALL,IID_IGroupPolicyObject,(LPVOID*)&p);
log_error("CoCreateInstance = %d\n",GetLastError());
log_error("CoCreateInstance() failed 0x%08x\n", hr);
if (SUCCEEDED(hr))
DWORD dwSection = GPO_SECTION_USER;
HKEY hGPOSectionKey = NULL;
DWORD dwData;
HKEY hSettingKey;
LSTATUS rStatus;
DWORD lData = 255;
hr = 0;
//hr = p->OpenDSGPO( bGPOPath, GPO_OPEN_LOAD_REGISTRY);
hr = p->OpenLocalMachineGPO(GPO_OPEN_LOAD_REGISTRY);
hr = p->GetRegistryKey(dwSection, &hGPOSectionKey);
long returnnum = RegOpenKeyEx( hGPOSectionKey,
L"Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer", 0,
KEY_WRITE, &hSettingKey) ;
log_printf(" RegOpenKeyEx return num = %d\n",returnnum);
if(returnnum != ERROR_SUCCESS )
rStatus = RegCreateKeyEx(
hGPOSectionKey,
L"Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer",
NULL,
REG_OPTION_NON_VOLATILE,
KEY_WRITE,
NULL,
&hSettingKey,
NULL );
rStatus = RegSetValueEx(hSettingKey, L"NoDriveTypeAutoRun",
NULL, REG_DWORD, (BYTE *)(&lData),
sizeof(DWORD));
rStatus = RegCloseKey(hSettingKey);
GUID RegistryId = REGISTRY_EXTENSION_GUID;
GUID ThisAdminToolGuid =
0x0F6B957E,
0x509E,
0x11D1,
{0xA7, 0xCC, 0x00, 0x00, 0xF8, 0x75, 0x71, 0xE3}
rStatus = RegCloseKey(hGPOSectionKey);
hr = p->Save(
FALSE,
TRUE,
&RegistryId,
&ThisAdminToolGuid );
CoUninitialize();
hr = p->Release();
hr=S_OK;
::CoInitialize(NULL);
p = NULL;
/*hr = CoCreateInstance(CLSID_GroupPolicyObject, NULL,
CLSCTX_INPROC_SERVER, IID_IGroupPolicyObject,
(LPVOID*)&p);*/
hr = CoCreateInstance(CLSID_GroupPolicyObject, NULL, CLSCTX_ALL,IID_IGroupPolicyObject,(LPVOID*)&p);
log_error("CoCreateInstance = %d\n",GetLastError());
log_error("CoCreateInstance() failed 0x%08x\n", hr);
if (SUCCEEDED(hr))
DWORD dwSection = GPO_SECTION_MACHINE;
HKEY hGPOSectionKey = NULL;
DWORD dwData;
HKEY hSettingKey;
LSTATUS rStatus;
DWORD lData = 255;
hr = 0;
//hr = p->OpenDSGPO( bGPOPath, GPO_OPEN_LOAD_REGISTRY);
hr = p->OpenLocalMachineGPO(GPO_OPEN_LOAD_REGISTRY);
log_printf("p->OpenLocalMachineGPO(GPO_OPEN_LOAD_REGISTRY) = %d",hr);
hr = p->GetRegistryKey(dwSection, &hGPOSectionKey);
log_printf("p->GetRegistryKey(dwSection, &hGPOSectionKey) = %d",hr);
long returnnum = RegOpenKeyEx( hGPOSectionKey,
L"Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer", 0,
KEY_WRITE, &hSettingKey) ;
log_printf(" RegOpenKeyEx return num = %d\n",returnnum);
if(returnnum != ERROR_SUCCESS )
rStatus = RegCreateKeyEx(
hGPOSectionKey,
L"Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer",
NULL,
REG_OPTION_NON_VOLATILE,
KEY_WRITE,
NULL,
&hSettingKey,
NULL );
log_printf("RegCreateKeyEx return num = %d\n",rStatus);
rStatus = RegSetValueEx(hSettingKey, L"NoDriveTypeAutoRun",
NULL, REG_DWORD, (BYTE *)(&lData),
sizeof(DWORD));
log_printf("RegSetValueEx NoDriveTypeAutoRun return num = %d\n",rStatus);
rStatus = RegCloseKey(hSettingKey);
GUID RegistryId = REGISTRY_EXTENSION_GUID;
GUID ThisAdminToolGuid =
0x0F6B957E,
0x509E,
0x11D1,
{0xA7, 0xCC, 0x00, 0x00, 0xF8, 0x75, 0x71, 0xE3}
rStatus = RegCloseKey(hGPOSectionKey);
hr = p->Save(
TRUE,
TRUE,
&RegistryId,
&ThisAdminToolGuid );
log_printf("Save return num = %d\n",hr);
CoUninitialize();
hr = p->Release();
使用这个链接 :)您可以使用此项目在本地系统上
修改
GPO。 不改变直接注册!!!!HRESULT hr;I
Group
Policy
Object
* pLGPO;HKEY machine_key, dsrkey;const IID my_IID_I
Group
Policy
Object
={ 0xea502723, 0xa23d, 0x11d1, { 0xa7, 0xd3, 0x0, 0x0, 0xf8, ...
用windows自带的GPO Editor编辑
修改
,然后利用注册表监控器regFromApp监视注册表的改动,就知道某个策略
修改
了注册表的哪个字段了。
下面是禁止U盘访问的例子:
1 #include <gpedit.h>
2 #include <windows.h>
3 #include <objbase.h>
4 #include <co...
相信生活让你失去你所想要的,将会给你更好的。因此任何时候绝不抱怨,绝不悔恨。
相信快乐是一种心态,一种选择,成功亦如是。
相信只有去追求和付出,就能得到你想要的,“去寻找,你就会找到;去问,你就会有答案。”
相信责任感是男人最重要的品质,相信只有自己才能对自己的决定和行为负责,绝不守株待兔,等待幸运的时刻和机遇的来临,只相信自己应该走出门去创造一切,对任何困...
上期我们学习了
组策略
的功能和管理工具,那么对于
组策略
来说,到底有几部分组成呢?域用户在客户端登录,
组策略
是如何加载的呢?一、
组策略
对象的存储:(GPC+GPT) 我们通过GPMC.msc新建一个
组策略
后,其实是建了一个GPO(
组策略
对象),那我们平时所说的其实就是GPO。 那我们可以在哪些容器上链接GPO呢?我们只能在LSDOU这几个容器上链接GPO。即Loc...