WhiteZin2000 said:
I have accomplished this using a Visual Basic script, pushed out through SMS
2003. In this capacity, we can change the Local Administrator account
password for all of our 1000+ PC/laptops without the user even knowing.
Also, SMS will show us the status of which systems the VB script has
executed on.
We've found that this is MUCH easier than trying to keep the local admin
account password a 'secret' - as secrets always seem to be discovered. I
suppost you could use the VB script without SMS, but the trick would be how
to execute it without user intervention. The particular script we use
requires Administrator rights (which we overcome via SMS2003). We had to
tweak the script to meet or needs - but it works well
Hi
As long as you have Active Directory, you don't need SMS for this:
You could do it in a computer startup script (with a GPO) that runs
as part of the boot up process (before the user logs in). It runs
under the system context and has admin rights.
To avoid users being able to read the script where the password is
stored, grant read access only for the AD group "Domain Computers"
to the script file.
As long as the Administrator account name is "Administrator", this
batch file will set the password on the account:
'--------------------8<----------------------
@echo off
net.exe user administrator newpassword
'--------------------8<----------------------
As long as the Administrator account name is "Administrator", this
vbscript will set the password on the account:
'--------------------8<----------------------
sNewPassword = "testpassword"
Set oWshNet = CreateObject("WScript.Network")
sComputer = oWshNet.ComputerName
On Error Resume Next
Set oUser = GetObject("WinNT://" & sComputer & "/Administrator,user")
oUser.SetPassword sNewPassword
oUser.SetInfo
On Error Goto 0
'--------------------8<----------------------
If you want to change the password instead of setting it (but this
means you will need to be sure that you know the old password on
all the computers), use oUser.ChangePassword instead of
oUser.SetPassword, like this:
oUser.ChangePassword "old pwd here", sNewPassword
If there is a chance that the name of the administrator is not
"Administrator" (e.g. the account is renamed, or you have some
non-English OS versions), you could use this version instead:
'--------------------8<----------------------
sNewPassword = "testpassword"
Set oWshNet = CreateObject("WScript.Network")
sComputer = oWshNet.ComputerName
sAdminName = GetAdministratorName
On Error Resume Next
Set oUser = GetObject("WinNT://" & sComputer & "/" & sAdminName & ",user")
oUser.SetPassword sNewPassword
oUser.SetInfo
On Error Goto 0
Function GetAdministratorName()
Dim sUserSID, oWshNetwork, oUserAccount
Set oWshNetwork = CreateObject("WScript.Network")
Set oUserAccounts = GetObject( _
"winmgmts://" & oWshNetwork.ComputerName & "/root/cimv2") _
.ExecQuery("Select Name, SID from Win32_UserAccount" _
& " WHERE Domain = '" & oWshNetwork.ComputerName & "'")
On Error Resume Next
For Each oUserAccount In oUserAccounts
If Left(oUserAccount.SID, 9) = "S-1-5-21-" And _
Right(oUserAccount.SID, 4) = "-500" Then
GetAdministratorName = oUserAccount.Name
Exit For
End if
Next
End Function
'--------------------8<----------------------