Windows 7: How to avoid manually activating each machine after deployment.



  • My company is upgrading a few student labs from XP to 7. We do not want to manually activate each machine after deploying our image, nor do we want to run a licensing server, as our network for the labs is very small. We are using HP machines that came with professional edition pre-installed, so we can legally deploy a new Windows image on the machines.

    Anybody know how to manage licenses in a more elegant manner when deploying Windows 7?



  • [quote=“Steve Dearman, post: 10452, member: 3124”]This is similar to the problem I have 50 oem machines with label keys on top so I created a script to read the serial number from the bios and change the key and activate.

    [CODE]’ Use “wmic bios get serialnumber” to get the serial number if its not documented elsewhere.
    Dim sSerial
    Dim sKey
    set cnn = createobject(“adodb.connection”)
    set rs = createobject(“adodb.recordset”)
    Set objWMIService = GetObject(“winmgmts:” _
    & “{impersonationLevel=impersonate}!\.\root\cimv2”)
    Set colBIOS = objWMIService.ExecQuery _
    (“Select * from Win32_BIOS”)
    For each objBIOS in colBIOS
    sSerial = objBIOS.SerialNumber
    Next
    cnn.open “Provider=Microsoft.Jet.OLEDB.4.0; Data Source=.; Extended Properties=”“text;HDR=Yes;”""
    rs.open “select * from serials.csv where Serial=’” & sSerial & “’”, cnn, 3, 3

    Do until rs.eof
    sKey = rs.fields.item(“key”).value
    rs.MoveNext
    loop
    If Not IsEmpty(sKey) Then
    Dim objShell
    Set objShell = Wscript.CreateObject(“WScript.Shell”)
    objShell.Run "c:\windows\system32\cscript c:\windows\system32\slmgr.vbs /ipk " & sKey,1,TRUE
    objShell.Run “c:\windows\system32\cscript c:\windows\system32\slmgr.vbs /ato”,1,TRUE
    Set objShell = Nothing
    End If

    [/CODE]

    This reads a csv file called serials so its easy to update.

    [CODE]Serial,Key
    HKCF91LC102731,abcde-fghij-klmno-pqrst-uvwxy
    [/CODE]

    I call this from the setupcomplete.cmd as outlined in the main windows 7 fog guide so everything is activated with the correct key right from the word go[/quote]

    Hi Steve,
    Question on your script:

    1. Do you save your script as .cmd or .vbs?
      2.What path do you placed your script and cvs file? ( Is it the same location as setupcomplete.cmd?)
      thanks in advanced

  • Moderator

    If your machines come with an OEM key pre-installed, you are allowed by microsoft to clone them with the same product and use a Volume License key. So if you have 100 machines that all came oem activated and you want to reimage them with the same product, you need to purchase at least 1 volume licensing key and email microsoft so they can setup a MAK key with the amount of activations you need. I have a white paper from Microsoft somewhere that outlines your rights for reimaging machines that were originally OEM licensed. It’s pretty easy to find though.

    We setup a KMS server for our Windows 7, but didn’t sysprep right and all the machine have the same client machine ID (CMID) and my count is messed up and won’t activate. I am redoing the images this summer and will fix this issue so we can use KMS or active directory based activation (ADBA) once we upgrade our schema. You can run your license server on one of the Windows 7 machines if you want, such as the lab technicians workstation, and use Volume Activation Management Toolkit (VAMT) to install the KMS keys and force activation to the KMS server.



  • [url]http://technet.microsoft.com/en-us/library/ff793434.aspx[/url]

    This is how licenses are managed for Windows 7 deployments. It’s included in your Windows 7 license. You will also need this to manage any other MS desktop product after 2010.

    Quick overview. Install KMS somewhere (anywhere really) on a windows OS. Add the DNS pointer in DNS. Add your key’s for 7 and office (import on a csv or one by one on command line). Then you are done.

    Deploy until you run out of key’s. Read the link above first thought to make sure I’m not missing anything and obtain the technical details of the process of setting it up.

    [quote=“Travis Ford, post: 369, member: 176”]My company is upgrading a few student labs from XP to 7. We do not want to manually activate each machine after deploying our image, nor do we want to run a licensing server, as our network for the labs is very small. We are using HP machines that came with professional edition pre-installed, so we can legally deploy a new Windows image on the machines.

    Anybody know how to manage licenses in a more elegant manner when deploying Windows 7?[/quote]


  • Moderator

    Anyone with experience with Windows 7 and Windows Server 2012 in a domain environment? I thought I read that the machines would not need activation as long as they were in an AD domain running server 2012. I’d love to move to this before this coming July.



  • This post is deleted!


  • This is similar to the problem I have 50 oem machines with label keys on top so I created a script to read the serial number from the bios and change the key and activate.

    [CODE]’ Use “wmic bios get serialnumber” to get the serial number if its not documented elsewhere.
    Dim sSerial
    Dim sKey
    set cnn = createobject(“adodb.connection”)
    set rs = createobject(“adodb.recordset”)
    Set objWMIService = GetObject(“winmgmts:” _
    & “{impersonationLevel=impersonate}!\.\root\cimv2”)
    Set colBIOS = objWMIService.ExecQuery _
    (“Select * from Win32_BIOS”)
    For each objBIOS in colBIOS
    sSerial = objBIOS.SerialNumber
    Next
    cnn.open “Provider=Microsoft.Jet.OLEDB.4.0; Data Source=.; Extended Properties=”“text;HDR=Yes;”""
    rs.open “select * from serials.csv where Serial=’” & sSerial & “’”, cnn, 3, 3

    Do until rs.eof
    sKey = rs.fields.item(“key”).value
    rs.MoveNext
    loop
    If Not IsEmpty(sKey) Then
    Dim objShell
    Set objShell = Wscript.CreateObject(“WScript.Shell”)
    objShell.Run "c:\windows\system32\cscript c:\windows\system32\slmgr.vbs /ipk " & sKey,1,TRUE
    objShell.Run “c:\windows\system32\cscript c:\windows\system32\slmgr.vbs /ato”,1,TRUE
    Set objShell = Nothing
    End If

    [/CODE]

    This reads a csv file called serials so its easy to update.

    [CODE]Serial,Key
    HKCF91LC102731,abcde-fghij-klmno-pqrst-uvwxy
    [/CODE]

    I call this from the setupcomplete.cmd as outlined in the main windows 7 fog guide so everything is activated with the correct key right from the word go



  • little note for this thread. If your using KMS, don’t use skip rearm in your unattend.

    This will cause all machine to look like one machine in the eye’s of the KMS server. So your host count will drop below 24 & then not work anymore.



  • [quote=“Blackout, post: 424, member: 1”]It’s worth noting that if you run a KMS and a KMS serial you don’t need to do anything.[/quote]
    As long as the number of workstations to activate is greater than 24, otherwise the KMS server won’t be activated.


  • Developer

    It’s worth noting that if you run a KMS and a KMS serial you don’t need to do anything.


  • Developer

    You shouldnt need to put the serial in as long as you syspreped the image with the serial.

    The activate might be needed, but windows should try automatically.
    After mini setup it will enter a 3 day grace period. During this period, it should try to run out to the internet and activate.

    I’m not sure about the proxy, i would assume it will activate through your proxy. But knowing M$…



  • Hi Travis

    Im working on this at the moment and going to test this tomorrow at work…
    Here is what iv learnt to get this right though its still in theroy…

    Windows 7 Answer : Under

    -7 oobeSystem
    –[I][B]amd64_Microsoft-Windows-Shell-Setup_6.1.7600.16385_neutral[/B] [/I]
    [I]—[B]FirstLogonCommands[/B][I] [/I][/I]
    [I]----[/I]SynchronousCommand[Order=“1”] “add this command” cscript //b c:\windows\system32\slmgr.vbs /ipk XXXXX-XXXXX-XXXXX-XXXXX-XXXXX (windows 7 license key)
    -----[B]RequiresUserInput:[/B] false
    ------SynchronousCommand[Order=“2”]
    -------cscript //b c:\windows\system32\slmgr.vbs /ato
    --------[B]RequiresUserInput:[/B] false
    In my setup im going to remove "SynchronousCommand[Order=“1”] and change “SynchronousCommand[Order=“2”]” to SynchronousCommand[Order=“1”] as i already provide my serial under

    -4 specialize
    –[B][I]amd64_Microsoft-Windows-Shell-Setup_6.1.7600.16385_neutral[/I][/B]
    —Product key

    If that doesnt work then ill use the exact example above

    Now the question comes to mind, what if your site has a proxy server? Is there a way to provide the proxy setting in the answer file?, guess not as I’ve done a 10 minute search and come up with nothing.
    Im not 100% sure how to go about the activation behind a proxy and adding the setting in the answer file

    Will test this tomorrow and confirm if it works, & if im right about being behind a proxy


Log in to reply
 

523
Online

39.4k
Users

11.1k
Topics

105.4k
Posts

Looks like your connection to FOG Project was lost, please wait while we try to reconnect.