K2000 Computer name generation, Domain join and Computer Object creation in correct OU
Hi,
I think this is probably a pretty normal task request for the Kace, I see lots of similar questions, but no single unified answer or solution anywhere.
I want to assign a computer name, I have read the WSScript can do this, not sure of all the options yet, but then I want to join the computer to the domain and create the computer object in the correct OU if the computer account does not exist already.
0 Comments
[ + ] Show comments
Answers (1)
Answer Summary:
Please log in to answer
Posted by:
StockTrader
9 years ago
Top Answer
Hello,
to set the computer name to the desiderated one you can use Get/Set Computer name utility or WSNAME.
Then to join the device to the domain and put it in a specific OU you can use a slightly modified version of the post-installation task Example: Join Domain that you find by default in the K2000.
The script uses the JoinDomainOrWorkgroup method of the Win32_ComputerSystem class.
One of the parameters that you can pass to the method is the OU as documented here: https://msdn.microsoft.com/en-us/library/windows/desktop/aa392154(v=vs.85).aspx
The script Example: Join Domain does not set this parameter and send a NULL value instead.
I modified it a little bit as an example and I tried it with success in a scripted installation:
'This script accepts 4 parameters: 3 are mandatory and the last one is optional'USAGE:' join_domain_force.vbs domain username password OU'The last parameter is optional'Example:'join_domain_force.vbs KACE administrator pw "OU=WorkStations,OU=MyOU,DC=kace,DC=local"Const JOIN_DOMAIN = 1Const ACCT_CREATE = 2Const ACCT_DELETE = 4Const WIN9X_UPGRADE = 16Const DOMAIN_JOIN_IF_JOINED = 32Const JOIN_UNSECURE = 64Const MACHINE_PASSWORD_PASSED = 128Const DEFERRED_SPN_SET = 256Const INSTALL_INVOCATION = 262144If WScript.Arguments.Count < 3 or WScript.Arguments.Count > 4 Then ' If the number of arguments is not correct terminates the script WScript.Quit(1)End IfstrDomain = WScript.Arguments.Item(0)strUser = WScript.Arguments.Item(1)strPassword = WScript.Arguments.Item(2)'set the OU if provided as parameterSet objNetwork = CreateObject("WScript.Network")strComputer = objNetwork.ComputerNameSet objComputer = GetObject("winmgmts:{impersonationLevel=Impersonate}!\\" & _ strComputer & _ "\root\cimv2:Win32_ComputerSystem.Name='" _ & strComputer & "'")If WScript.Arguments.Count = 4 Then ReturnValue = objComputer.JoinDomainOrWorkGroup(strDomain, _ strPassword, _ strDomain & "\" & strUser, _ WScript.Arguments.Item(3), _ DOMAIN_JOIN_IF_JOINED+JOIN_DOMAIN+ACCT_CREATE)Else ReturnValue = objComputer.JoinDomainOrWorkGroup(strDomain, _ strPassword, _ strDomain & "\" & strUser, _ NULL, _ DOMAIN_JOIN_IF_JOINED+JOIN_DOMAIN+ACCT_CREATE) End IfWScript.Quit(ReturnValue)
You can download the script from here: https://www.dropbox.com/s/dji66za4u5aa3d9/join_domain_force.vbs?dl=0
Kind regards,
Marco - StockTrader