• Recent
    • Unsolved
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    Windows 7 Activation Proposal

    Scheduled Pinned Locked Moved
    Feature Request
    6
    15
    7.1k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      Joe Schmitt Senior Developer
      last edited by

      I’d like to suggest that FOG auto-activate computers after imaging. In my current environment there are many different models each with a unique product key, meaning each computer must be activated manually. This automation would be accomplished with the hostname changer used in the FOG Client. Below is the current code that I have been using.

      [B]Edit 1[/B] – List all changes made and switch to hosts table instead of inventory
      – Made this proposal similair to a guide, but it is still a feature request

      [SIZE=4][B]Client[/B][/SIZE]

      [B]…\FOG Service\src\FOG_HostNameChanger\MOD_HostNameChanger.cs[/B] (if you have not made any other changes to this file, you may download a compiled version of it in the attachments)

      Once this change is completed you must compile the dll (or use the attached one) and give it to every instance of the client, or use the Client updater in FOG.

      ~line 362
      [CODE]
      if (arData.Length == 7)
      {
      strHostName = strHostResults.Remove(0, 5);
      String strUseAD = arData[1];
      String strD = arData[2];
      String strOU = arData[3];
      String strU = arData[4];
      String strP = arData[5];
      String strKey = arData[6];

                                      if (strKey != null)
                                          {
                                              strKey = strKey.Trim();
                                              if (strKey.StartsWith("#Key=")) {
                                              strKey = strKey.Replace("#Key=", "");
                                              Process scriptProc = new Process();
                                              scriptProc.StartInfo.FileName = @"cscript";
                                              scriptProc.StartInfo.Arguments =@"//B //Nologo c:\windows\system32\slmgr.vbs /ipk " + strKey;
                                              scriptProc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
                                              scriptProc.Start();
                                              scriptProc.WaitForExit();
                                              scriptProc.Close();
      
      
                                              scriptProc.StartInfo.Arguments =@"//B //Nologo c:\windows\system32\slmgr.vbs /ato";
                                              scriptProc.Start();
                                              scriptProc.WaitForExit();
                                              scriptProc.Close();
      
                                              }
                                   
                                          }
      

      [/CODE]

      [SIZE=4][B]SQL Database[/B][/SIZE]
      Using phpmyadmin or the terminal, add a column to the hosts table with the following attributes:
      [CODE]
      Column: hostProductKey
      Type: varchar(50)
      Collation: latin1_swedish_ci
      Null: No
      Default: None
      [/CODE]

      [SIZE=4][B]FOG Web Server[/B][/SIZE]

      [B]/var/www/fog/service/hostname.php[/B]
      [PHP]
      print ‘#ADPass=’.$Host->get(‘ADPass’).“\n”;
      print ‘#Key=’.$Host->get(‘productKey’);
      [/PHP]

      [B]/var/www/fog/lib/fog/Host.class.php[/B]

      line ~#9
      [PHP]
      public $databaseFields = array(
      ‘id’=> ‘hostID’,
      ‘name’=> ‘hostName’,
      'productKey => ‘hostProductKey’,
      [/PHP]

      [B]/var/www/fog/lib/pages/HostManagementPage.class.php[/B]

      line ~#177 AND ~#373
      [PHP]
      _(‘Host Description’) => ‘<textarea name=“description” rows=“5” cols=“40”>${host_desc}</textarea>’,
      _(‘Product Key’) => ‘<input type=“text” name=“key” value=“${host_key}” />’,
      [/PHP]

      line ~#206
      [PHP]
      ‘host_devs’ => $_REQUEST[‘dev’],
      ‘host_key’ => $_REQUEST[‘key’],
      [/PHP]

      line ~#277
      [PHP]
      ‘host_devs’ => $_REQUEST[‘dev’],
      ‘host_key’ => $_REQUEST[‘key’],
      [/PHP]

      line ~#401
      [PHP]
      ‘host_devs’ => $Host->get(‘kernelDevice’),
      ‘host_key’ => $Host->get(‘productKey’),
      [/PHP]

      /[B]var/www/fog/service/key.register.php[/B] (Optional if you want to be able to update a host’s product key at boot after being registered)
      –See Attachments

      [SIZE=4][B]Host Registration[/B][/SIZE]

      See [url]http://www.fogproject.org/wiki/index.php/Create_Custom_Fog_Registration_menu[/url]
      Note that the wiki’s instructions are not up to date below are the changes, in the format old_command => new_command
      You may also have authentication issues if you try and unzip the init.xz file where it resides, if so move it to another folder and move it back when finished)
      [CODE]
      gunzip init.gz => xz --decompress init.xz
      gzip init => xz -z -9 -C crc32 init
      [/CODE]

      [B]…/bin/fog.key.reg[/B] (Optional if you want to be able to update a host’s product key at boot after being registered)
      –See Attachments, remove the .txt ending on it. I am unable to upload files that end in .reg

      [B]…/bin/fog.man.reg[/B]

      line ~#76
      [CODE]
      ip=“”;
      productKey=“”;
      [/CODE]

      line ~#231
      [CODE]
      esac
      fi
      echo
      echo -n " Enter the product key for this computer: ";
      read productKey;
      productKey=echo $productKey | base64;
      echo
      [/CODE]

      line ~#302
      [CODE]
      res=“”;
      while [ “${res}” = “” ]
      do
      res=wget -O - --post-data="mac=$mac&advanced=1&host=$host&imageid=$imageid&productKey=$productKey&primaryuser=$primaryuser&other1=$other1&other2=$other2&doimage=$realdoimage&doad=$blDoAD&location=$locationid&username=$user64&groupid=$group64" "http://${web}service/auto.register.php" 2>/dev/null
      echo “${res}”;
      sleep 2;
      done;
      [/CODE]

      [B]…/etc/init.d/S99fog[/B] (Optional if you want to be able to update a host’s product key at boot after being registered)

      line ~#56
      [CODE]
      elif [ “$mode” == “manreg” ]; then
      run=“/bin/fog.man.reg”;
      after=$afterActionTerm;
      elif [ “$mode” == “keyreg” ]; then
      run=“/bin/fog.key.reg”;
      after=$afterActionTerm;
      [/CODE]

      [SIZE=4][B]Boot Menu[/B][/SIZE] (Optional if you want to be able to update a host’s product key at boot after being registered)

      [B]/var/www/fog/lib/fog/BootMenu.class.php[/B]

      line ~#79
      [PHP]
      ‘fog.reginput’ => ‘Perform Full Host Registration and Inventory’,
      ‘fog.keyreg’ => ‘Update Product Key’,
      [/PHP]

      line ~#529
      [PHP]
      if (!$this->Host || !$this->Host->isValid())
      {
      if ($option != ‘fog.quickdel’ && $option != ‘fog.keyreg’ &&$option != ‘fog.quickimage’ && ( $showDebug || $option != ‘fog.debug’ ) )
      $this->menuItem($option, $desc);
      }
      [/PHP]

      line ~#560
      [PHP]

      if ($option == ‘fog.sysinfo’)
      $this->menuOpt($option, “mode=sysinfo”);
      else if ($option == ‘fog.keyreg’)
      $this->menuOpt($option, “mode=keyreg”);
      [/PHP]

      [url=“/_imported_xf_attachments/1/1000_HostnameChange.dll?:”]HostnameChange.dll[/url][url=“/_imported_xf_attachments/1/1001_key.register.php?:”]key.register.php[/url][url=“/_imported_xf_attachments/1/1003_fog.key.reg.txt?:”]fog.key.reg.txt[/url]

      Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG! Get in contact with me (chat bubble in the top right corner) if you want to join in.

      1 Reply Last reply Reply Quote 1
      • A
        axel12
        last edited by

        bro, Microsoft has got you covered …

        [url]http://www.microsoft.com/en-us/download/details.aspx?id=11936[/url]

        We use VAMT at my school. You can have the choice of using MAK activation (not KMS) if your school does purchase keys in volumes. OR you can activate with no key - which will use the native key already built into the windows box.

        Also note this will work for Office too … and work through a proxy as well.

        The only requirement is that the windows box MUST be on the domain - so you don’t even need any AD usernames / passwords - since the authentication is done locally from the credentials you are already using.

        1 Reply Last reply Reply Quote 0
        • J
          jayphizzle
          last edited by

          @JBob: very nice customization. We have the same activation ‘problem’, but using a autoit script which runs after each deployment.
          I would be great if this can be handeld by fog as well.

          Which version are you using? Are this the only changes which are needed?

          1 Reply Last reply Reply Quote 0
          • J
            Joe Schmitt Senior Developer
            last edited by

            @axel12: I may not be understanding you, but at the institution I work at we do not have the luxury of volume licensing, each computer has its own unique product key.

            @jayphizzle We just upgraded to 1.1 and implemented it, but we were using this modification on 0.32 and 1.0.1. There are additional changes I have implemented. However, I am going to re-code them to be cleaner. Once I do that I’ll post all of my changes.

            [B]Edit[/B] All changes I have made for v1.1 are now in the original post in case this feature is not put into FOG but people, like jayphizzle wish to implement it.

            Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG! Get in contact with me (chat bubble in the top right corner) if you want to join in.

            1 Reply Last reply Reply Quote 1
            • I
              Ivanov Alexandru
              last edited by

              Hello Jbob , if i make these changes to the last [FONT=Ubuntu][COLOR=#555555]Version: 1.1.2 , it should work ?[/COLOR][/FONT]

              [FONT=Ubuntu][COLOR=#555555][/COLOR][/FONT]

              1 Reply Last reply Reply Quote 0
              • J
                Joe Schmitt Senior Developer
                last edited by

                @Ivanov Alexandru I believe it should work with no changes but currently where I work we are still running 1.1.0. My guess is that some of the line numbers may be off. However, if you would like help implementing it into 1.1.2 I would be more than willing to assist you. You can PM me if you wish me to help.

                Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG! Get in contact with me (chat bubble in the top right corner) if you want to join in.

                1 Reply Last reply Reply Quote 1
                • Tom ElliottT
                  Tom Elliott
                  last edited by

                  Jbob,

                  I hope you don’t mind, but I’m using this code and adding it. I’m going to ask if the user wants to add the product key on registration. The key changer/updater function is now embedded in ipxe, meaning no need for the key.register.php or the fog.key.reg files.

                  Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG! Get in contact with me (chat bubble in the top right corner) if you want to join in.

                  Web GUI issue? Please check apache error (debian/ubuntu: /var/log/apache2/error.log, centos/fedora/rhel: /var/log/httpd/error_log) and php-fpm log (/var/log/php*-fpm.log)

                  Please support FOG if you like it: https://wiki.fogproject.org/wiki/index.php/Support_FOG

                  1 Reply Last reply Reply Quote 0
                  • J
                    Joe Schmitt Senior Developer
                    last edited by

                    @Tom Elliott, that is great, it is one less thing I have to implement each time I upgrade!

                    Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG! Get in contact with me (chat bubble in the top right corner) if you want to join in.

                    1 Reply Last reply Reply Quote 1
                    • Tom ElliottT
                      Tom Elliott
                      last edited by

                      SVN 2056 should have these code revisions now.

                      The MOD_HostnameChanger.cs script has been updated as well, but it HAS NOT BEEN COMPILED in fog client.

                      Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG! Get in contact with me (chat bubble in the top right corner) if you want to join in.

                      Web GUI issue? Please check apache error (debian/ubuntu: /var/log/apache2/error.log, centos/fedora/rhel: /var/log/httpd/error_log) and php-fpm log (/var/log/php*-fpm.log)

                      Please support FOG if you like it: https://wiki.fogproject.org/wiki/index.php/Support_FOG

                      1 Reply Last reply Reply Quote 0
                      • A
                        andyroo54 Moderator
                        last edited by

                        This is a great feature, thanks jbob!

                        1 Reply Last reply Reply Quote 0
                        • J
                          jayphizzle
                          last edited by

                          @Tom: so if i’m using fog 1.2 i only need to replace the “HostnameChange.dll” created by Jbob to run the win7 activation during the hostchanger task ?

                          1 Reply Last reply Reply Quote 0
                          • Tom ElliottT
                            Tom Elliott
                            last edited by

                            Pretty much, yes.

                            Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG! Get in contact with me (chat bubble in the top right corner) if you want to join in.

                            Web GUI issue? Please check apache error (debian/ubuntu: /var/log/apache2/error.log, centos/fedora/rhel: /var/log/httpd/error_log) and php-fpm log (/var/log/php*-fpm.log)

                            Please support FOG if you like it: https://wiki.fogproject.org/wiki/index.php/Support_FOG

                            1 Reply Last reply Reply Quote 0
                            • J
                              jayphizzle
                              last edited by

                              [quote=“Tom Elliott, post: 35481, member: 7271”]Pretty much, yes.[/quote]

                              Ok i will give it a try.

                              #EDIT#

                              Added the WIn7 Key to the Host details and removed the serial from the client.
                              Replaced HostnameChange.dll and rebooted client.
                              After reboot the client was activated again. Perfect !!

                              Big Thanks to Jbob and Tom.

                              I hava only one suggestion:

                              Is it possible to write some informations about the activationprocess to the fog logfile ?
                              e.g. if the activations fails and why? Or it was succesfull.

                              1 Reply Last reply Reply Quote 0
                              • J
                                jayphizzle
                                last edited by

                                @Tom:

                                I tried to copy my windows 7 keys from a another db to the new column in the host table.
                                The result looks like this:

                                [IMG]http://abload.de/img/19-08-201417_55_33-ediekmw.png[/IMG]

                                Then i inserted the key directly in the webgui and the key looks like this in phpmyadmin:

                                [IMG]http://abload.de/img/19-08-201417_52_51-clmuu3l.png[/IMG]

                                It looks like the key will be saved in a crypted way? Is that correct ?

                                1 Reply Last reply Reply Quote 0
                                • Tom ElliottT
                                  Tom Elliott
                                  last edited by

                                  The key should be base64 encoded. Let me see if it’s being decoded in the GUI

                                  Please help us build the FOG community with everyone involved. It's not just about coding - way more we need people to test things, update documentation and most importantly work on uniting the community of people enjoying and working on FOG! Get in contact with me (chat bubble in the top right corner) if you want to join in.

                                  Web GUI issue? Please check apache error (debian/ubuntu: /var/log/apache2/error.log, centos/fedora/rhel: /var/log/httpd/error_log) and php-fpm log (/var/log/php*-fpm.log)

                                  Please support FOG if you like it: https://wiki.fogproject.org/wiki/index.php/Support_FOG

                                  1 Reply Last reply Reply Quote 0
                                  • 1 / 1
                                  • First post
                                    Last post

                                  198

                                  Online

                                  12.0k

                                  Users

                                  17.3k

                                  Topics

                                  155.2k

                                  Posts
                                  Copyright © 2012-2024 FOG Project