User Tools

Site Tools


userspace:activate_win

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

userspace:activate_win [2012/10/04 10:38]
bhubal [Activate-Win]
userspace:activate_win [2021/08/23 08:37]
Line 1: Line 1:
-====== Activate-Win ====== 
-Windows Activation\\ 
-2012-09-13\\ 
  
-Script by uib Gmbh \\ 
-Comments and improvements welcome \\ 
- 
-Tested with opsi 4.0.2 \\ 
- 
-Full-Package at 
-http://download.uib.de/opsi4.0/products/contribute/full-package/activate-win_1.0-6.opsi 
- 
- 
-==== setup.ins ==== 
- 
-<code winst> 
-; Copyright (c) uib gmbh (www.uib.de) 
-; This sourcecode is owned by uib 
-; and published under the Terms of the General Public License. 
-; credits: http://www.opsi.org/credits/ 
- 
-[Actions] 
-requiredWinstVersion >= "4.11.1.1" 
- 
-DefVar $LogDir$ 
-DefVar $ProductId$   
-DefVar $LicenseRequired$ 
-DefVar $LicenseKey$ 
-DefVar $LicensePool$ 
-DefVar $poolOrKey$ 
-DefVar $source$ 
-DefVar $httpproxy$ 
- 
-Set $LogDir$ = "%SystemDrive%\tmp" 
- 
-Set $ProductId$       = "activate-win" 
- 
- 
- 
-; ---------------------------------------------------------------- 
-; see: 
-; http://technet.microsoft.com/en-us/library/ff793433.aspx 
- 
-if GetMsVersionInfo < "6"  
- LogError "This is for NT 6 (Vista) and above" 
- isFatalError 
-else 
-  
- comment "Show product picture" 
- ShowBitmap "%ScriptPath%\" + $ProductId$ + ".png" $ProductId$ 
-  
-  
- Message "Installing " + $ProductId$ + " ..." 
-  
- set $poolOrKey$ = GetProductProperty("Poolid-or-Licensekey","") 
- set $source$ = GetProductProperty("method","only-activate") 
- set $httpproxy$ = GetProductProperty("httpproxy","") 
-  
- comment "Check Status" 
- DosInAnIcon_status_win7 winst /sysnative 
-  
- if not ( $httpproxy$ = "" ) comment "enable HTTP proxy, required for auto-activating" DosInAnIcon_setproxy_win7 winst /sysnative 
- endif 
- 
- if not ($source$ = "only-activate") 
- comment " we need a key..." 
- if $source$ = "opsi License management" 
- Set $LicenseRequired$ = "true" 
- Set $LicensePool$     = $poolOrKey$ 
- comment " get key from license management with poolid "+$LicensePool$ 
- comment "Licensing required, reserve license and get license key" 
- Sub_get_licensekey 
- else 
- Set $LicenseRequired$ = "false" 
- Set $LicensePool$     = "" 
- set $LicenseKey$ = $poolOrKey$ 
- comment " use key "+$LicenseKey$ 
- endif 
- 
- comment "Set the Key" 
- DosInAnIcon_set_key winst /sysnative 
-  
- comment "Check Status" 
- DosInAnIcon_status_win7 winst /sysnative 
- endif 
-  
- comment "Start Activation" 
- DosInAnIcon_activate  winst /sysnative 
-  
- comment "Check Status" 
- DosInAnIcon_status_win7 winst /sysnative 
- 
-endif 
- 
-[DosInAnIcon_set_key]  
-cscript //b c:\windows\system32\slmgr.vbs /ipk $LicenseKey$ 
- 
-[DosInAnIcon_activate]  
-cscript //b c:\windows\system32\slmgr.vbs /ato 
- 
-[DosInAnIcon_status_win7] 
-cscript c:\windows\system32\slmgr.vbs /dli 
- 
- 
- 
-[Sub_get_licensekey] 
-if opsiLicenseManagementEnabled 
- comment "License management is enabled and will be used" 
- 
- comment "Trying to get a license key" 
- Set $LicenseKey$ = demandLicenseKey ($LicensePool$) 
- ; If there is an assignment of exactly one licensepool to the product the following call is possible: 
- ; Set $LicenseKey$ = demandLicenseKey ("", $ProductId$) 
- ; 
- ; If there is an assignment of a license pool to a windows software id, it is possible to use: 
- ; DefVar $WindowsSoftwareId$ 
- ; $WindowsSoftwareId$ = "..." 
- ; Set $LicenseKey$ = demandLicenseKey ("", "", $WindowsSoftwareId$) 
-  
- DefVar $ServiceErrorClass$ 
- set $ServiceErrorClass$ = getLastServiceErrorClass 
- comment "Error class: " + $ServiceErrorClass$ 
-  
- if $ServiceErrorClass$ = "None" 
- comment "Everything fine, we got the license key '" + $LicenseKey$ + "'" 
- else 
- if $ServiceErrorClass$ = "LicenseConfigurationError" 
- LogError "Fatal: license configuration must be corrected" 
- LogError getLastServiceErrorMessage 
- isFatalError 
- else  
- if $ServiceErrorClass$ = "LicenseMissingError" 
- LogError "Fatal: required license is not supplied" 
- isFatalError 
- endif 
- endif 
- endif 
-else 
- LogError "Fatal: license required, but license management not enabled" 
- isFatalError 
-endif 
- 
- 
-[Sub_check_exitcode] 
-comment "Test for installation success via exit code" 
-set $ExitCode$ = getLastExitCode 
-; informations to exit codes see 
-; http://msdn.microsoft.com/en-us/library/aa372835(VS.85).aspx 
-; http://msdn.microsoft.com/en-us/library/aa368542.aspx 
-if ($ExitCode$ = "0") 
- comment "Looks good: setup program gives exitcode zero" 
-else 
- comment "Setup program gives a exitcode unequal zero: " + $ExitCode$ 
- if ($ExitCode$ = "1605") 
- comment "ERROR_UNKNOWN_PRODUCT 1605 This action is only valid for products that are currently installed." 
- comment "Uninstall of a not installed product failed - no problem" 
- else 
- if ($ExitCode$ = "1641") 
- comment "looks good: setup program gives exitcode 1641" 
- comment "ERROR_SUCCESS_REBOOT_INITIATED 1641 The installer has initiated a restart. This message is indicative of a success." 
- else 
- if ($ExitCode$ = "3010") 
- comment "looks good: setup program gives exitcode 3010" 
- comment "ERROR_SUCCESS_REBOOT_REQUIRED 3010 A restart is required to complete the install. This message is indicative of a success." 
- else 
- logError "Fatal: Setup program gives an unknown exitcode unequal zero: " + $ExitCode$ 
- isFatalError 
- endif 
- endif 
- endif 
-endif 
- 
-[DosInAnIcon_setproxy_win7] 
-;netsh.exe winhttp set proxy proxy:3128 "<local>;*.mynet.local" 
-netsh.exe winhttp set proxy $httpproxy$ 
- 
-</code> 
userspace/activate_win.txt ยท Last modified: 2021/08/23 08:37 (external edit)