Chinaunix首页 | 论坛 | 博客
  • 博客访问: 236426
  • 博文数量: 59
  • 博客积分: 2016
  • 博客等级: 大尉
  • 技术积分: 660
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-04 17:30
文章分类
文章存档

2013年(1)

2011年(2)

2010年(7)

2009年(30)

2008年(19)

我的朋友

分类: WINDOWS

2010-06-03 14:57:09

起因:sysprep时应该是选择了重新生成sid,但在硬盘对拷过程中,换盘重启时不慎使镜像系统启动过了,所以使得部分客户端SID相同了。

现像:其它到现在还没有发现什么,就是在wsus 3.0 sp1控制台上,看到客户端,有时来台A,有时来台B,有A没B,有B没A,只能显示一台。

解决方案:均在客户端上操作,

net stop wuauserv

删掉 HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionWindowsUpdate 下面 SusClientId 和 SusClientIdValidation 键

删掉 %windir%下面的SoftwareDistribution目录

net start wuauserv

运行 wuauclt.exe /Detectnow /Resetauthorization 命令

飞快,在控制台就可以看到新加入的客户端了!

 

在网上看到两个不错的代码,用于清除WSUS客户端相同SID的.
想起我去年为了解决这个问题,也写过一段脚本,将它们分别贴出来:
我自己写的脚本:

Microsoft TechNet 上的技术文章:
地址:date/cscsw027.mspx

WSUS: Script to delete duplicate SID created by Disk Imaging / Disk Cloning
You might notice that some computers are appearing multiple times in WSUSAdmin - Computers and some of them disappear very often. This is due to duplicate SUS client IDs. Take a look at this script which deletes duplicate SUS client IDs found on a computer. These IDs are often found on computers where the operating system was installed using an image-based setup.
 

程序代码 程序代码
Script Code
============================================

@echo off
Echo Save the batch file "AU_Clean_SID.cmd". This batch file will do the following:
Echo 1.    Stops the wuauserv service
Echo 2.    Deletes the AccountDomainSid registry key (if it exists)
Echo 3.    Deletes the PingID registry key (if it exists)
Echo 4.    Deletes the SusClientId registry key (if it exists)
Echo 5.    Restarts the wuauserv service
Echo 6.    Resets the Authorization Cookie
Echo 7.    More information on 
Pause
@echo on
net stop wuauserv
REG Delete "HKLMSOFTWAREMicrosoftWindowsCurrentVersionWindowsUpdate" /v AccountDomainSid /f
REG Delete "HKLMSOFTWAREMicrosoftWindowsCurrentVersionWindowsUpdate" /v PingID /f
REG Delete "HKLMSOFTWAREMicrosoftWindowsCurrentVersionWindowsUpdate" /v SusClientId /f
net start wuauserv
wuauclt /resetauthorization /detectnow
Pause
============================================

SUS client ID will be generated at next detection.


另外一位网友的作品:
 

程序代码 程序代码
const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set objRegistry=GetObject("winmgmts:\" &strComputer & "rootdefault:StdRegProv")
strKeyPath = "SOFTWAREMicrosoftwindowsCurrentVersionWindowsUpdate"
strValueName01 = "susclientid"
strValueName02 = "accountdomainsid"

objRegistry.DeleteValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName01
Wscript.Sleep 5000
objRegistry.DeleteValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName02
Wscript.Sleep 5000

Set objWMIService = GetObject("winmgmts:\" & strComputer & "rootcimv2")
Set colServiceList = objWMIService.ExecQuery ("Select * from Win32_Service where Name = 'wuauserv'")

For Each objService in colServiceList
If objService.State = "Running" Then
objService.stopService()
Wscript.Sleep 5000
objService.startService()
Wscript.Sleep 5000

End If
Next 

Set objShell = CreateObject("wscript#.Shell") 
objShell.Run("%comspec% /c wuauclt /resetauthorization /detectnow"), 1, TRUE
Wscript.Echo "Success !"
阅读(1646) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~