Board logo

标题: 如何批量删除不包含的用户 [打印本页]

作者: czweb     时间: 2010-3-20 22:45    标题: 如何批量删除不包含的用户

我想恢复系统默认的administrator和禁用的guest用户,其它多余的用户全部删除
怎么写会比较好
作者: HAT     时间: 2010-3-20 23:23
既然administrator是系统默认,你想咋恢复?
作者: dato     时间: 2010-3-21 01:56
很久之前有这需求,后来用ntfs禁止nnusr.cpl lusr.msc
%systemroot%\system32\cacls.exe %systemroot%\system32\nusrmgr.cpl /e /d onlyit
%systemroot%\system32\cacls.exe %systemroot%\system32\lusrmgr.msc /e /d onlyit
就基本没这烦恼了

删除用户.cmd
cscript allusername.vbs>%tmp%\a.txt
for /f "tokens=* skip=3" %%i in (%tmp%\a.txt) do find "%%i" userlist.ini||net user /delete "%%i"
pause
allusername.vbs
Set objNetwork = CreateObject("Wscript.Network")
strComputer = objNetwork.ComputerName
Set colAccounts = GetObject("WinNT://" & strComputer & "")
colAccounts.Filter = Array("user")
For Each objUser In colAccounts
    Wscript.Echo objUser.Name
Next
userlist.ini
administrator
guest

作者: czweb     时间: 2010-3-27 03:02
果然是高手,高手都有同样的需求
作者: czweb     时间: 2010-3-27 03:42
在你的基础上该了一下,只需要一个文件就可以了
:禁用Administrator以外的所有用户
set f=%temp%\GetAllusername.vbs
echo.>%f%
echo Set objNetwork = CreateObject("Wscript.Network")                        >>%f%
echo strComputer = objNetwork.ComputerName                                >>%f%
echo Set colAccounts = GetObject("WinNT://" ^& strComputer ^& "")        >>%f%
echo colAccounts.Filter = Array("user")                                        >>%f%
echo For Each objUser In colAccounts                                        >>%f%
echo     Wscript.Echo objUser.Name                                        >>%f%
echo Next                                                                >>%f%

set ff=%temp%\GetAllusername.txt
cscript %f%>%ff%

set fff=%temp%\userlist.ini
echo Administrator >%fff%
:删除
:for /f "tokens=* skip=3" %%i in (%ff%) do find "%%i" %fff%||net user /delete "%%i"
:禁用
for /f "tokens=* skip=3" %%i in (%ff%) do find "%%i" %fff%||net user /active:n "%%i"

作者: pdanniel66     时间: 2010-3-27 05:33
如何指定Windows DC (2000) 下的OU建立账号 (Bat 与VBS均可 ),谢谢 !
作者: HAT     时间: 2010-3-28 15:44
BAT可以实现,调个VBS干啥?
作者: czweb     时间: 2010-3-28 19:50


  Quote:
Originally posted by HAT at 2010-3-28 15:44:
BAT可以实现,调个VBS干啥?

楼主给的是vbs,bat不会所以将就着用,
net user出来的结果不是一行一个用户名
作者: pdanniel66     时间: 2010-3-28 20:47
net user指令可以指定 OU ?
作者: Hanyeguxing     时间: 2010-3-28 20:51


  Quote:
Originally posted by czweb at 2010-3-28 19:50:



楼主给的是vbs,bat不会所以将就着用,
net user出来的结果不是一行一个用户名

那就for /f解析他呗
作者: pdanniel66     时间: 2010-5-22 19:43
如何指定Windows DC (2000) 下的OU建立账号 (Bat 与VBS均可 ),谢谢 !
作者: tongzj     时间: 2010-5-23 08:01
试试我这个笨办法:

@echo off
for /f "skip=4 tokens=1,2,3" %%a in ('net user') do (
  if not "%%a"=="命令成功完成。" (
    if /i not "%%a"=="administrator" (if /i not "%%a"=="guest" net user %%a /delete)
    if /i not "%%b"=="administrator" (if /i not "%%b"=="guest" net user %%b /delete)
    if /i not "%%c"=="administrator" (if /i not "%%c"=="guest" net user %%c /delete)
    )
  )
net user guest /active:no