2016-08-09 101 views
-1

我最近開始在一所學校工作,我們正在每兩年一次擦除所有計算機上的用戶帳戶。我們爲所有學生使用永久帳戶來減少硬盤的磨損,減少網絡負載並縮短開機時間。對於刪除用戶文件夾,我們使用這個腳本:刪除批量用戶註冊表

@echo off 
cd \. 
cd \Users\ 
dir *20** 
echo Users to be deleted 
pause 
@echo on 
for /D %%f in (*20**) do rmdir %%f /s /q 
pause 
exit 

唯一的問題是,當多個檔次使用同一臺計算機一個學生說了他們的個人資料下載到上年無法登錄他們的註冊表中的計算機仍然存在於電腦上。我將如何去除它們的註冊表項(如果可能,使用批處理),這樣就不會有任何註冊表衝突?

我們所有的電腦都運行Windows 10,如果這改變了任何東西。 TIA

回答

0

如果你想刪除某個學生上的註冊表項遠程PC上,將此腳本保存到test.bat,並從打開的Admin Cmd Prompt運行。用您自己的值代替PC名稱用戶值。您可以使用用戶名中的通配符,即"user=.*20.*"來刪除名稱爲AshleyPalm-2016的所有用戶的Reg數據。這對我來說很有用。讓我知道如果任何錯誤彈出:

@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

+0

如果腳本適用於您,並且將來需要更多幫助,請考慮** Upvoting **和**接受**答案,方法是在_Answer Box_左側單擊_Arrow Up_和_Select_標誌。這個門戶的一些新手不知道這些有用的功能。 :) – sambul35

+0

無論如何要使用通配符?在我的批處理腳本中,我們將每個用戶的畢業年份命名爲ie。並且使用'20 **'作爲我們的通配符,以便任何後來有20位和2位數字的用戶刪除C:\ Users中的所有學生文件夾。有沒有辦法做到這一點,但註冊登記? –

+0

更新了腳本。閱讀答案並仔細按照說明操作。請閱讀上面的第一個註釋。 :) – sambul35

0

分享這種東西的經驗:我很喜歡管理一個Windows XP機器池,有域帳戶但本地配置文件。

我們從漫遊配置文件開始,但它太忙了,我們決定默認切換到本地配置文件(通過更改某些系統註冊表項)。有一個問題是銷燬損壞的漫遊用戶配置文件,因此他們將在之後創建爲本地配置文件。

在這種情況下,對於給定用戶去除%USERPROFILE%一切刪除該文件NTUSER.DAT因此,所有他/她的設置/註冊表項(而不是重新連接右)

之後,如果學生所連接使用不存在的配置文件,Windows會創建一個從Default User配置文件克隆的標準配置文件。

如果用戶成功登錄後機器尚未重新啓動,則不起作用:NTUSER.DAT存在,但不存在可能存在問題的其他文件,也可能是您遇到的問題。

我會做什麼:

  • 所有機器的遠程重啓解鎖NTUSER.DAT文件
  • 所有機器,遠程銷燬Users子迪爾斯(你只需要包含一個額外的for循環所有機器和訪問驅動器那樣:\\host\C$\Users(前提是Users是C驅動器上)
+0

我們有大約100臺機器要做到這一點,並從我老闆說,在Windows不幸的是這不會工作7及以上。 –