重置重命名的管理员帐户的密码

时间:2009-10-02 18:48:13

标签: windows passwords administrator sid

我需要创建一个.VBS脚本来重置大型计算机上的Windows本地管理员密码。我的问题是我们的一些网站出于安全原因重命名了管理员帐户。有没有人有一个脚本可以根据原管理员帐户的SID更改管理员帐户的密码?

4 个答案:

答案 0 :(得分:1)

使用本地管理员的SID始终以-500结尾的事实:

strComputer="."    ' local computer by default   
Set objUser=GetObject("WinNT://" & strComputer & "/" & GetAdminName & ",user")     
objUser.SetPassword "New local admin password"     
objUser.SetInfo 

Function GetAdminName   
  'This function was written using information from Table J.1 from the Windows XP resource Kit
  'http://www.microsoft.com/resources/documentation/Windows/XP/all/reskit/en-us/Default.asp?url=/resources/documentation/Windows/XP/all/reskit/en-us/prnc_sid_cids.asp

  Set objNetwork = CreateObject("Wscript.Network") 'get the current computer name 
  objComputerName = objNetwork.ComputerName    
  Set objwmi = GetObject("winmgmts:{impersonationLevel=impersonate}!//" & objComputerName)

  qry = "SELECT * FROM Win32_Account where Domain = '" & cstr(objComputerName) & "'" 
  'set query, making sure to only look at local computer

  For Each Admin in objwmi.ExecQuery(qry)   
    if (left(admin.sid, 6) = "S-1-5-" and right(admin.sid,4) = "-500") then 'look for admin sid
       GetAdminName = admin.name
    end if   
  next    
end Function

答案 1 :(得分:0)

有一个名为LookupAccountName(带有源!)的工具,它给出了内置管理员的SID,它会给你它的名字。

你可能最终会编写C ++代码来合理地推出这个代码。

答案 2 :(得分:0)

就像Joshua说的那样,我不认为你只能用windows脚本主机做这件事,你可以用它来下载并执行它:

  • 调用LookupAccountSid(S-1-5-domain-500 SID或enum admin group)+ NetUserSetInfo重置密码的自定义应用程序(需要以管理员身份运行)
  • http://home.eunet.no/pnordahl/ntpasswd/(启动时重置)
  • 转储SAM哈希并破解密码(Cain,John the Ripper,L0phtCrack等)

答案 3 :(得分:0)

@DmitryK的答案很好,我不知道那些东西。但我确实知道PowerShell中的这种东西通常比较清晰,所以我移植了它。

例如,可以编写整个GetAdminName函数:

$adminName = (gwmi win32_account | ? { $.SID.StartsWith( 'S-1-5-' ) -and $.SID.EndsWith( '-500' ) }).Name

(将-ComputerName选项添加到gwmi调用以在服务器上执行此操作。)

剩下的就变成了:

$user = ([ADSI]"WinNT://$($env:COMPUTERNAME)/$adminName,User")
$user.SetPassword( 'xxx' )
$user.SetInfo()

(当然,根据需要应用适当的计算机名称。)