监控Windows操作系统用户增删修改
2014-06-04 14:16
411 查看
监控Windows操作系统的用户信息更改,可以采用监控注册表来实现。
在注册表中,用户和用户组信息保存在HKEY_LOCAL_MACHINE的SAM\\SAM\\Domains\\Account下面。用户信息保存在SAM\\SAM\\Domains\\Account\\Users下面;用户组信息保存在SAM\\SAM\\Domains\\Account\\Aliases下面。
当然可以采用写注册表过滤驱动来实现监控,但是写驱动比较麻烦,而且有时候我们只需要知道注册表有更改,然后再去获取用户信息就OK。
以下代码实现,当用户和用户组有更改时,系统通知事件出来。
监控Windows操作系统的用户信息更改,可以采用监控注册表来实现。
在注册表中,用户和用户组信息保存在HKEY_LOCAL_MACHINE的SAM\\SAM\\Domains\\Account下面。用户信息保存在SAM\\SAM\\Domains\\Account\\Users下面;用户组信息保存在SAM\\SAM\\Domains\\Account\\Aliases下面。
当然可以采用写注册表过滤驱动来实现监控,但是写驱动比较麻烦,而且有时候我们只需要知道注册表有更改,然后再去获取用户信息就OK。
以下代码实现,当用户和用户组有更改时,系统通知事件出来。
#include <Windows.h> #include <stdio.h> #define SYS_ACCOUNT_REG_KEY_W L"SAM\\SAM\\Domains\\Account" #define SYS_ACCOUNT_REG_KEY_A "SAM\\SAM\\Domains\\Account" int main(int argc, char **argv) { HANDLE hEvent; LSTATUS ret; HKEY hKey; DWORD dwRet; hEvent = CreateEventW(NULL, FALSE, TRUE, L"RegistryNotify"); if (NULL == hEvent) { printf("Create event failed.\n"); return GetLastError(); } ret = RegOpenKeyExW(HKEY_LOCAL_MACHINE, SYS_ACCOUNT_REG_KEY_W, 0, KEY_NOTIFY, &hKey); if (ERROR_SUCCESS != ret) { CloseHandle(hEvent); printf("Open Key %s failed.\n", SYS_ACCOUNT_REG_KEY_A); return ret; } while(TRUE) { ret = RegNotifyChangeKeyValue(hKey, TRUE, REG_NOTIFY_CHANGE_NAME | REG_NOTIFY_CHANGE_ATTRIBUTES | REG_NOTIFY_CHANGE_LAST_SET | REG_NOTIFY_CHANGE_SECURITY, hEvent, TRUE); if (ERROR_SUCCESS != ret) { printf("RegNotifyChangeKeyValue failed.\n"); break; } dwRet = WaitForSingleObject(hEvent, INFINITE); if (WAIT_FAILED == dwRet) { ret = GetLastError(); printf("WaitForSingleObject failed.\n"); break; } else { printf("System account change occur...\n"); } } RegCloseKey(hKey); CloseHandle(hEvent); return ret; }
相关文章推荐
- 监控Windows操作系统用户增删修改
- 【运维规范】修改Windows 操作系统用户的密码之前,应该做的核查工作
- c# 添加、删除、修改windows用户和组
- 用C#修改Windows 2000用户密码
- c# 添加、删除、修改windows用户和组
- 转:ConfigMgr 2007 SP2中Windows 7操作系统部署如何进行用户状态迁移
- Windows 7修改用户登录方式
- 修改操作系统用户密码,造成SQL Server服务启动失败
- Windows下启动MySQL数据库与root用户的密码修改
- 在Windows平台的WebSphere Application Server 5版本中使用本地操作系统作为用户注册表启用全局安全性失败
- 用C#修改Windows 2000用户密码
- 更安全的服务器:Windows账号权限修改监控
- Windows 2008下修改域用户密码
- sharepoint 2007 使用open with windows explorer的方式打开sharepoint 目录,然后批量复制文件,会导致被复制的文件信息被修改成当前用户和当前时间
- 修改Windows 7用户名称对应的用户文件夹名
- [备忘录] Windows版本Oracle中添加操作系统认证用户的步骤
- [备忘录] Windows版本Oracle中添加操作系统认证用户的步骤
- 为Windows操作系统建立一个隐藏超级用户
- [备忘]windows下安装winwebmail3.7.6.1修改用户邮箱大小