2016-11-13 103 views
1

我正在使用下面的vbs启用并重命名管理员本地帐户,但失败。它不启用帐户,也不重命名它。我现在打结,为什么,它看起来像一个简单而简单的脚本。任何线索?VBS启用并重命名本地管理员帐户

sPwd = "hsc1234" 

strComputer = "." 

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 
Set colAccounts = objWMIService.ExecQuery _ 
    ("Select * From Win32_UserAccount Where LocalAccount = True and Name = 'Administrator'") 

For Each objAccount in colAccounts 
    MsgBox objAccount.Name 
    objAccount.Disabled = False 
    objAccount.Rename("HSC1") 
    objAccount.SetPassword(sPwd)  

Next 
+1

'objAccount.Rename(“HSC1”)'返回一个状态码,它是什么。 'msgbox objAccount.Rename(“HSC1”)' – 2016-11-13 22:40:04

+0

谢谢,我怎么能得到状态码? –

+0

我不把它放在我的评论中。不要回复。你应该是一名程序员。 – 2016-11-13 22:53:23

回答

0

那么,最后我可以达成解决方案。此解决方案可以启用和重命名管理员帐户,并设置管理员密码。我在W10上遇到了管理员默认帐户的一些问题,所以我必须在高级模式下推送脚本。

If Not WScript.Arguments.Named.Exists("elevate") ThenCreateObject("Shell.Application").ShellExecute WScript.FullName _ 
    , """" & WScript.ScriptFullName & """ /elevate", "", "runas", 1 
    WScript.Quit 
End If 

sPwd = "hsc1234" 
strComputer = "." 
sUser = "XXxx" 

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 
Set colAccounts = objWMIService.ExecQuery("Select * From Win32_UserAccount Where LocalAccount = True and Name = 'Administrator'") 

For Each objAccount in colAccounts  
    objAccount.Disabled = False 
    objAccount.Put_ 
    objAccount.Rename sUser 
    'objAccount.SetPassword sPwd  
Next 


Set oUser = GetObject("WinNT://" & strComputer & "/" & sUser 
oUser.SetPassword sPwd 
oUser.Setinfo