jjohnsoncantell (3rd June 2009)
Greetings,
I have found a nice simple script which lets me add a local user and puts him into a specified group. I need this script to be able to change options on the account such as password expiry, whether or not the user can change the password and so on. I dont really know anything about scripting so your help would be great.
' ------- TEXT USED ----------
Title = "New User Tools v1.1"
strGroup = "Administrators"
' ------ END TEXT USED --------
'---- RETRIEVE COMPUTER NAME ---------
Dim objNetwork, strComputerName
Set objNetwork = CreateObject("WScript.Network")
strComputer = objNetwork.ComputerName
'---- END RETRIEVE COMPUTER NAME --------
'------ GET INPUTS FROM USER ----------
Dim strUserName, strFullName, strPassword
If Msgbox("Would you Like to Add a User?" , vbYesNo, Title) = vbYes then
Call GetInputs
Else Call Rename_Computer
Sub GetInputs
Do
strUserName = InputBox("Please Enter User Name.",Title)
If strUserName = ""Then
If MsgBox("Are you Sure you want to Quit?" , vbYesNo, Title)= VbNo Then
Else Call Rename_Computer()
End If
End if
Loop Until strUserName <> ""
Do
strFullName = InputBox("Please Enter Your Full Name.", Title)
If strFullName = "" Then
If MsgBox("Are you Sure you want to Quit?" , vbYesNo, Title)= VbNo Then
Else Call Rename_Computer
End If
End If
Loop Until strFullName <> ""
Do
strPassword = InputBox("Please Enter Password.",Title)
If strPassword="" Then
If MsgBox("Are you Sure you want to Quit?" , vbYesNo, Title)= VbNo Then
Else Call Rename_Computer
End If
End If
Loop Until strPassword<>""
Call AddUser()
End Sub
' ------ END INPUTS ---------------
' ----- CODE TO ADD USER ----------
Sub AddUser
Set objSystem = GetObject("WinNT://" & strComputer)
Set objUser = objSystem.Create("user", strUserName)
objUser.FullName = strFullName
objUser.SetPassword strPassword
objUser.SetInfo
Call MsgBox ("User Name: " & strUserName & vbCrLf & "Password: " &strPassword & VbCrLf & VbCrLf & "Please Write This Information Down.", 64, Title)
Call AddGroup
End Sub
' ----- END CODE TO ADD USER -------
' ----- CODE TO ADD USER TO GROUP -------
Sub AddGroup
Set objGroup = GetObject("WinNT://" & strComputer & "/" & strGroup)
objGroup.Add("WinNT://" & strComputer & "/" & strUserName)
Call Rename_Computer()
End Sub
' ----- END CODE TO ADD USER TO GROUP -----
' ------ RENAME COMPUTER ------
Sub Rename_Computer
Dim strNewComputer, objNetwork, objWMIService, colComputers
Set objNetwork = CreateObject("WScript.Network")
strComputer = objNetwork.ComputerName
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colComputers = objWMIService.ExecQuery _
("Select * from Win32_ComputerSystem")
If Msgbox("Would you Like to Change the Computer Name?" , vbYesNo, Title) = vbNo Then
Call CleanUp()
Else Do
strNewComputer = InputBox("Please Enter a New Computer Name.",Title)
If strNewComputer = "" Then
If MsgBox("Are you Sure you want to Quit?" , vbYesNo, Title)= VbYes Then
Call CleanUp()
End If
End If
Loop Until strNewComputer <>""
For Each objComputer in colComputers
err = objComputer.Rename (strNewComputer)
Next
End If
Call Reboot()
End Sub
'------ END RENAME COMPUTER -----------
'------ REBOOT MACHINE -------------
Sub Reboot
If Msgbox("Your Computer Needs to Reboot Before Changes Can be Made. " & vbCrLf & "Would you Like To Reboot Now?" , vbYesNo, Title) = vbYes then
Dim oWMI, oOS, obj
Set oWMI = GetObject("winmgmts:{impersonationLevel=impersonat e,(Shutdown)}!\\.\root\cimv2")
On Error GoTo 0
For Each obj in oWMI.ExecQuery("Select * from Win32_OperatingSystem")
Set oOS = obj
Exit For
Next
Call ShutDownNow()
End If
End Sub
Sub ShutDownNow
Const EWX_LOGOFF = 0
Const EWX_SHUTDOWN = 1
Const EWX_REBOOT = 2
Const EWX_FORCE = 4
Const EWX_POWEROFF = 8
oOS.Win32shutdown EWX_REBOOT '+ EWX_FORCE
End Sub
' ------- END ROOT MACHINE ---------
'------ EXIT -----
Sub CleanUp
Call MsgBox ("Click OK To Exit the Program",0, Title)
WScript.quit
End Sub
End If
'----- EXIT ------
This is the code, copied from My First Script - Create New Local User Account and/or Change Local Computer Name as a nod to the creator (hope im not doing anything wrong here).
Cheers
James
Scripting Local Users using VBScript
That might be useful as a starting point. And the Scripting Guys have quite a lot of stuff on setting user account flags - Welcome to the Script Center
Also very useful is the ADSI Scriptomatic -ADSI (Active Directory Service Interfaces) Scriptomatic
Last edited by jamesb; 3rd June 2009 at 03:04 PM.
jjohnsoncantell (3rd June 2009)
Many thanks Jamesb, that was exactly what i needed and i even learned a bit more about scripting, you're a star!
There are currently 1 users browsing this thread. (0 members and 1 guests)