2016-11-13 43 views
1

以下のvbsを使用してAdminローカルアカウントを有効にして名前を変更していますが、失敗しています。それはアカウントを有効にせず、名前を変更しません。私は結婚しているのですが、シンプルで簡単なスクリプトのように見えます。どんな手掛かり?ローカル管理者アカウントを有効にして名前を変更する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 ")' –

+0

ありがとう、どうすればステータスコードを取得できますか? –

+0

私はそれを私のコメントに入れませんでした。返信しないでください。あなたはプログラマであるはずです。 –

答えて

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 
関連する問題