使用批删除用户注册表

时间:2016-08-09 11:50:18

标签: windows batch-file

我最近开始在一所学校工作,我们正在每年两次擦除所有计算机上的用户帐户。我们为所有学生使用持久帐户,以减少硬盘驱动器的磨损,减少网络负载,并减少启动时间。要删除用户文件夹,我们使用以下脚本:

var $arr4=[];
for(var i=1;i<$arr3.length;i++)
{
   url_new=url.split("_")[0];
   url_new=url_new+"/"+$arr3[i];
   $.get( url_new, function( data ) { 
      $arr4.push(data); 

 myFunction(url,$arr4);

唯一的问题是,当多个成绩使用同一台计算机时,如果学生将其个人资料下载到计算机,则前一年无法登录,因为他们的注册表仍然存在于计算机上。我将如何删除他们的注册表项(如果可能的话,使用批处理),这样就不存在任何注册冲突?

如果更改任何内容,我们所有的计算机都在运行Windows 10。 TIA

2 个答案:

答案 0 :(得分:0)

分享有关此类内容的经验:我有点管理Windows XP计算机,使用域帐户但本地配置文件。

我们开始使用漫游配置文件,但它非常忙碌,我们决定默认切换到本地配置文件(通过更改某些系统注册表项)。存在破坏腐败漫游用户配置文件的问题,因此它们将在之后创建为本地配置文件。

在这种情况下,删除给定用户的%USERPROFILE%中的所有内容会删除文件NTUSER.DAT,从而删除所有他/她的设置/注册表项(但不能再次连接)

之后,如果学生与不存在的个人资料相关联,则Windows会创建从Default User个人资料中克隆的标准个人资料。

如果在用户成功登录后未重新启动计算机,则此功能无效:NTUSER.DAT存在,但不存在其他可能存在问题的文件,可能是您遇到的问题。< / p>

我要做的事情:

  • 远程重启所有计算机以解锁NTUSER.DAT个文件
  • 对于所有计算机,远程销毁Users子目录(您只需要一个包含所有计算机的额外for循环并访问这样的驱动器:\\host\C$\Users(前提{ {1}}在C盘上)

答案 1 :(得分:0)

如果要删除远程PC上某个学生的注册表项,请将此脚本保存到 test.bat ,然后从打开的 Admin Cmd提示符运行它。用您自己的值替换 PC_name 用户值。您可以在用户名中使用通配符,即"user=.*20.*",以删除名称为 AshleyPalm-2016 的所有用户的注册数据。这对我来说很有用。如果弹出任何错误,请告诉我:

@echo off
setlocal enabledelayedexpansion
set "PC_name=remote_PC_name" & set "user=.*20.*" & echo/
for /f "usebackq tokens=*" %%H in (`reg query \\%PC_name%\HKEY_USERS`) do (
    set "val=\\%PC_name%\%%H\Volatile Environment"
    for /f "usebackq tokens=3 skip=1" %%K in (`reg query "!val!" /v USERNAME 2^>nul`) do (
        echo %%K | findstr /r /e /c:"%user%" >nul && (echo Deleting %%K: %%H & reg delete \\%PC_name%\%%H )))
exit /b

在此处阅读详情:Reg command(MS),FINDSTR