注册表加载配置单元
来源:互联网 发布:java手游开发 编辑:程序博客网 时间:2024/05/29 19:10
问题:
我想对一些NT用户进行配置,在代码中实现加载其NT账户下的NTUSER.DAT文件,修改需要的键值:
例:禁用对用户test的CMD:
[HKEY_USERS\S-1-5-21-872786649-1826467909-1269344878-1555\Software\Policies\Microsoft\Windows\System]
"DisableCMD"=dword:00000002
这里的用户项“S-1-5-21-872786649-1826467909-1269344878-1555”,是该test用户被远程时系统自动生成的,所以对于我们不能确定是哪个用户。所以需要我们自己去加载关于这个test用户的配置信息即“NTUSER.DAT”文件,只有这样可以准确的实现对该目标用户的配置。现在的问题就是上面提到的,如何用相关代码实现--注册表加载配置单元“NTUSER.DAT”的操作。
提示:
用户的配置信息存放在系统所在磁盘的Documents and Setting目录,包括ntuser.dat,ntuser.ini和ntuser.dat.log。其加载路径都由注册表项HKLM/SYSTEM\CurrentControlSet/Control/HIVElist下的键值指出。
实现代码:
function SetPrivilege(sPrivilegeName: string; bEnabled: boolean): boolean;var TPPrev, TP: TTokenPrivileges; Token: THandle; dwRetLen: dword;begin Result := False; OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, Token); TP.PrivilegeCount := 1; if (LookupPrivilegeValue(Nil, PChar(sPrivilegeName), TP.Privileges[0].LUID)) then begin if (bEnabled) then // Give this privileges begin TP.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED; end else begin // NOT Give this privileges TP.Privileges[0].Attributes := 0; end; dwRetLen := 0; Result := AdjustTokenPrivileges(Token, False, TP, SizeOf(TPPrev), TPPrev, dwRetLen); end; CloseHandle(Token);end;procedure TForm1.btn1Click(Sender: TObject);var OpenDialog1: TOpenDialog;begin OpenDialog1.Filter := '(*.dat)|*.dat'; if OpenDialog1.Execute() then begin regpath := OpenDialog1.FileName; end; if OpenDialog1.FileName = '' then begin exit; end; if (SetPrivilege('SeRestorePrivilege', true)) and (SetPrivilege('SeBackupPrivilege', true)) then begin if ERROR_SUCCESS = RegLoadKey(HKEY_USERS, PChar(NtUser),PChar(DatPath)) then begin // 修改注册表的操作在这里完成 end; RegUnLoadKey(HKEY_USERS, PChar(rdpUser)); SetPrivilege('SeRestorePrivilege', False); SetPrivilege('SeBackupPrivilege', False); endend;
- 注册表加载配置单元
- 性能计数器注册表配置单元一致性
- sql2008R2 性能计数器注册表配置单元一致性
- sql server 安装失败 性能计数器注册表配置单元一致性
- 安装sqlserver2008 express问题:性能计数器注册表配置单元一致性
- sql 2008性能计数器注册表配置单元一致性 安装失败
- Sql Server 2008 “性能计数器注册表配置单元一致性”失败,
- 关于安装SQL2008提示“性能计数器注册表配置单元一致性”
- 关于“性能计数器注册表单元配置一致性”检测失败解决办法
- 关于“性能计数器注册表单元配置一致性”检测失败解决办法
- 该性能计数器注册表配置单元已损坏。若要继续,必须修复该性能计数器注册表配置单元
- SQL Server安装中错误"该性能计数器注册表配置单元已损坏。若要继续,必须修复该性能计数器注册表配置单元"的解决
- 安装sql server 2008“性能计数器注册表配置单元一致性”失败的解决办法
- 安装SQL 2005/2008“性能计数器注册表配置单元一致性”失败的解决办法
- SQL SERVER 安装出现 “性能计数器注册表配置单元一致性”检查失败 的问题
- 安装SQL 2005 or 2008“性能计数器注册表配置单元一致性”失败的解决办法
- WIN2003上安装SQL Server 2008时检查提示“性能计数器注册表配置单元一致性”
- 安装SQL Server 2008时出现“性能计数器注册表配置单元一致性”
- linux热插拔之udev的使用方法
- 未能加载文件或程序集“Interop.SQLDMO”或它的某一个依赖项。磁盘空间不足
- 流年,经不起怀念
- HDU 1274(展开字符串)
- 用Visual Studio 开发工具 如何快速批量生成属性的 get 和set 方法
- 注册表加载配置单元
- 在路上
- 2011-05-02 22:15 MySQL分区表例子——Hash分区
- Revit中如何编程旋转一个对象
- highcharts 设置
- 从 SSH实例《在线考试系统》 看SSH系统分层模型
- 静静的在心里承受所有的伤痛和不快乐
- 伸长的守候
- 今天遇到的一个IIS 下treeview不能显示的问题