/build/static/layout/Breadcrumb_cap_w.png

K2000: Scripted Installation to join and rename computers in AD environent

I have successfully deployed my first scripted install with drivers and everything! I am now looking to do an install that will automate computer names. Here is our scenario:

We have about 50 computers coming in for a refresh and I need to streamline this as much as possible for the helpdesk guys. I need the script to rename the computers sequentially without having to do it by hand. Is there anyway to do this? For example, we have in AD in a certain OU, workstations named like so: wrk1234, wrk1233 etc. I need the script to somehow either by manual input or by reading the AD envirnonment (ambitious i know) to start the computer names sequentially so we dont have to do it each time manually, I would THEN like it to join it to the domain as that computer.

 

Any tips?

 

I am also looking to automate software installs as well.


0 Comments   [ + ] Show comments

Answers (1)

Posted by: RaulC08 10 years ago
White Belt
0

I can explain to you my setup to see if that works for you.

 

I use the Get/Set computername.exe program.  This program prompts for a computer name as soon as an installation takes place.  The program then applies the name after windows installs.   Heres a sample of mine and Here - https://www.kace.com/support/resources/kb/article/Get-Set-ComputerName is the a nice article on how to use it.  

 

I then use a vbs to add it to the domain.  I can't see an attach option so I'll copy and pase the VBS.

Copy the contents after the ***

***START***

Const JOIN_DOMAIN             = 1

Const ACCT_CREATE             = 2

Const ACCT_DELETE             = 4

Const WIN9X_UPGRADE           = 16

Const DOMAIN_JOIN_IF_JOINED   = 32

Const JOIN_UNSECURE           = 64

Const MACHINE_PASSWORD_PASSED = 128

Const DEFERRED_SPN_SET        = 256

Const INSTALL_INVOCATION      = 262144

 

If WScript.Arguments.Count < 3 or WScript.Arguments.Count > 4 Then

  WScript.Quit

Else

  strDomain   = WScript.Arguments.Item(0)

  strUser = WScript.Arguments.Item(1)

  strPassword = WScript.Arguments.Item(2)

 

'set DNS IP address

  If WScript.Arguments.Count = 4 Then

    strDNSIP = WScript.Arguments.Item(3)

    Set objShell = CreateObject("WScript.shell")

    objShell.Run "netsh int ip set dns  ""local area connection"" static "& _

                  strDNSIP &" primary",0,0

  End If

 

End If

 

 

Set objNetwork = CreateObject("WScript.Network")

strComputer = objNetwork.ComputerName

 

Set objComputer = GetObject("winmgmts:{impersonationLevel=Impersonate}!\\" & _

                             strComputer & _

                             "\root\cimv2:Win32_ComputerSystem.Name='" _

                             & strComputer & "'")

ReturnValue = objComputer.JoinDomainOrWorkGroup(strDomain, _

                                                strPassword, _

                                                strDomain & "\" & strUser, _

                                                NULL, _

                                                JOIN_DOMAIN+ACCT_CREATE)

 

***STOP***

 

I run the vbs as a Post install and the command line goes:

cscript Join_Domain.vbs "Domain.com" "USER" "PASSWORD"

 You will need an AD admin account to join to the domain, in our setup we created a general account to add PCs to the domain.  All the computers will be placed to the Computers OU, we then move it to the proper OU.  

 

This might not be the best solution, however this works for us as we name our computers based on our company inventory numbers.  


Comments:
  • That is fine, but I have very specific computer naming schemes here. For example, I name the computers like WRK1234, WRK1233 etc. Lets say I have computer all the way up to WRK1234 and then I go into AD and create 50 computers from WRK1235 - WRK1284. I want to tell the script: "Hey use computer names WRK1235 - WRK1284 and place them into the correct OU"

    Is there any way to do that? - bigtwenty 10 years ago

Don't be a Stranger!

Sign up today to participate, stay informed, earn points and establish a reputation for yourself!

Sign up! or login

Share

 
This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ