diff --git a/CLIENT_DATA/README b/CLIENT_DATA/README deleted file mode 100644 index 0a58d64..0000000 --- a/CLIENT_DATA/README +++ /dev/null @@ -1,14 +0,0 @@ -********************************* -** Netdom.exe -********************************* -- Notwendig für Domänenbeitritt -- Quelle: http://www.microsoft.com/DOWNLOADS/de-de/details.aspx?FamilyId=49AE8576-9BB9-4126-9761-BA8011FABF38&displaylang=de -- Warum direkt im Scriptverzeichnis: - - Kein Direktlink für Download - - bei MS Gültigkeitsprüfung erforderlich - - App in .exe und .cab verpackt - -- Soll der Computer in eine OU verschoben werden (property "MachineObjectOU"), dann - muss der User (Property "joinadmin") Mitglied der AD Gruppe "Domain-Admins" sein. - -#INFO0:i8708 Do 05.04.2012 13:30, FROM=dt SUBJ=Netdom.exe \ No newline at end of file diff --git a/CLIENT_DATA/delsub32_inact.ins b/CLIENT_DATA/delsub32_inact.ins deleted file mode 100644 index f9bbf36..0000000 --- a/CLIENT_DATA/delsub32_inact.ins +++ /dev/null @@ -1,95 +0,0 @@ -; Copyright (c) uib gmbh (www.uib.de) -; This sourcecode is owned by uib gmbh -; and published under the Terms of the General Public License. -; credits: http://www.opsi.org/credits/ - - -Set $MsiId$ = '{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}' -Set $UninstallProgram$ = $InstallDir$ + "\uninstall.exe" - -Message "Uninstalling " + $ProductId$ + " ..." - -if FileExists($UninstallProgram$) - comment "Uninstall program found, starting uninstall" - Winbatch_uninstall - sub_check_exitcode -endif -if not (GetRegistryStringValue32("[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" + $MsiId$ + "] DisplayName") = "") - comment "MSI id " + $MsiId$ + " found in registry, starting msiexec to uninstall" - Winbatch_uninstall_msi - sub_check_exitcode -endif - -comment "Delete files" -Files_uninstall /32Bit - -comment "Cleanup registry" -Registry_uninstall /32Bit - -comment "Delete program shortcuts" -LinkFolder_uninstall - -[Winbatch_uninstall] -; Choose one of the following examples as basis for program uninstall -; -; === Nullsoft Scriptable Install System ================================================================ -; "$UninstallProgram$" /S -; -; === Inno Setup ======================================================================================== -; "$UninstallProgram$" /silent /norestart /SUPPRESSMSGBOXES - - -[Winbatch_uninstall_msi] -msiexec /x $MsiId$ /qb! REBOOT=ReallySuppress - -[Files_uninstall] -; Example for recursively deleting the installation directory (don't forget the trailing backslash): -; -; delete -sf "$InstallDir$\" - -[Registry_uninstall] -; Example of deleting a registry key: -; -; deletekey [HKEY_LOCAL_MACHINE\Software\$ProductId$] - -[LinkFolder_uninstall] -; Example of deleting a folder from AllUsers startmenu: -; -; set_basefolder common_programs -; delete_subfolder $ProductId$ -; -; Example of deleting a shortcut from AllUsers desktop: -; -; set_basefolder common_desktopdirectory -; set_subfolder "" -; delete_element $ProductId$ - -[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 - diff --git a/CLIENT_DATA/join.ins b/CLIENT_DATA/join.ins new file mode 100644 index 0000000..3d99492 --- /dev/null +++ b/CLIENT_DATA/join.ins @@ -0,0 +1,26 @@ +[INITIAL] +Message = "Rechner wird zur Domäne hinzugefügt!" +;Message = "Join computer to the domain!" + +[Actions] +DefVar $dom$ +DefVar $user$ +DefVar $password$ +set $dom$ = GetProductProperty("domainname", " ") +set $user$ = GetProductProperty("joinadmin", " ") +set $password$ = GetProductProperty("joinadminpw", " ") +PatchTextFile_Create_powershell %scriptpath%\join.ps1 +ShellBatch_JoinDom + + +[PatchTextFile_Create_powershell] +AddLine "$secpasswd = ConvertTo-SecureString '$password$' -AsPlainText -Force" +AddLine '$mycreds = New-Object System.Management.Automation.PSCredential ("$user$", $secpasswd)' +AddLine 'Add-Computer -DomainName "$dom$" -credential $mycreds' +SaveToFile "c:\joinpatched.ps1" + +[ShellBatch_JoinDom] +set-executionpolicy RemoteSigned +powershell c:\joinpatched.ps1 +del c:\joinpatched.ps1 + \ No newline at end of file diff --git a/CLIENT_DATA/netdom.exe b/CLIENT_DATA/netdom.exe deleted file mode 100644 index 4494b9e..0000000 Binary files a/CLIENT_DATA/netdom.exe and /dev/null differ diff --git a/CLIENT_DATA/setup32.ins b/CLIENT_DATA/setup32.ins deleted file mode 100644 index 9aa01fa..0000000 --- a/CLIENT_DATA/setup32.ins +++ /dev/null @@ -1,118 +0,0 @@ -; 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.10.8.6" - -DefVar $domainname$ -DefVar $joinadmin$ -DefVar $joinadminpw$ -DefVar $localadminpw$ -DefVar $orgunit$ -DefVar $joinstr$ -DefVar $MsiId$ -DefVar $UninstallProgram$ -DefVar $LogDir$ -DefVar $ProductId$ -DefVar $MinimumSpace$ -DefVar $InstallDir$ -DefVar $ExitCode$ -DefVar $LicenseRequired$ -DefVar $LicenseKey$ -DefVar $LicensePool$ - -Set $LogDir$ = "%SystemDrive%\tmp" -Set $domainname$ = GetProductProperty ("domainname","values") -Set $joinadmin$ = GetProductProperty ("joinadmin","values") -Set $joinadminpw$ = GetProductProperty ("joinadminpw","values") -Set $orgunit$ = GetProductProperty ("MachineObjectOU","values") -if not ($orgunit$ = "") - Set $joinstr$ = "JOIN %PCName% /Domain:" + $domainname$ + " /UserD:" + $joinadmin$ + " /PasswordD:" + $joinadminpw$ + " /OU:" + '"' + $orgunit$ + '"' -else - Set $joinstr$ = "JOIN %PCName% /Domain:" + $domainname$ + " /UserD:" + $joinadmin$ + " /PasswordD:" + $joinadminpw$ -endif -Set $localadminpw$ = GetProductProperty ("localadminpw","values") - -; The token BUILDER_VARIABLES will be replaced by opsi-builder.sh -; and adds the following variables: -; from builder-product.cfg : all variables definded by attribute WINST[index] -; from builder-product.cfg : VENDOR PN VERSION RELEASE PRIORITY ADVICE TYPE -; from opsi-builder.cfg : CREATOR_TAG CREATOR_NAME CREATOR_EMAIL -; auto generated winst-variables -; $IconFile$: path to product picture -; -@@BUILDER_VARIABLES@@ - -; ---------------------------------------------------------------- -; - Please edit the following values - -; ---------------------------------------------------------------- -;$ProductId$ should be the name of the product in opsi -; therefore please: only lower letters, no umlauts, -; no white space use '-' as a seperator -Set $ProductId$ = "joindomain" -Set $MinimumSpace$ = "1 MB" -; the path were we find the product after the installation -Set $InstallDir$ = "%ProgramFiles32Dir%\" -Set $LicenseRequired$ = "false" -Set $LicensePool$ = "p_" + $ProductId$ -; ---------------------------------------------------------------- - -if not(HasMinimumSpace ("%SystemDrive%", $MinimumSpace$)) - LogError "Not enough space on %SystemDrive%, " + $MinimumSpace$ + " on drive %SystemDrive% needed for " + $ProductId$ - isFatalError - ; Stop process and set installation status to failed -else - comment "Show product picture" - ShowBitmap "%ScriptPath%\" + $ProductId$ + ".png" $ProductId$ - - if FileExists("%ScriptPath%\delsub32.ins") - comment "Start uninstall sub section" - Sub "%ScriptPath%\delsub32.ins" - endif - - Message "Installing " + $ProductId$ + " ..." - - if $LicenseRequired$ = "true" - comment "Licensing required, reserve license and get license key" - Sub_get_licensekey - endif - - - comment "Copy files" - Files_install - - comment "Start setup program" - Winbatch_install - Sub_check_exitcode - - comment "Reboot" - ExitWindows /Reboot - -endif - -[Files_install] -copy "%ScriptPath%\netdom.exe" %System% - -[Winbatch_install] -; Choose one of the following examples as basis for your installation -; You can use $LicenseKey$ var to pass a license key to the installer -; -; === Nullsoft Scriptable Install System ================================================================ - -net user Administrator $localadminpw$ -netdom.exe $joinstr$ - -[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$ - isFatalError -endif diff --git a/CLIENT_DATA/uninstall32.ins b/CLIENT_DATA/uninstall32.ins deleted file mode 100644 index ede4908..0000000 --- a/CLIENT_DATA/uninstall32.ins +++ /dev/null @@ -1,68 +0,0 @@ -; Copyright (c) uib gmbh (www.uib.de) -; This sourcecode is owned by uib gmbh -; and published under the Terms of the General Public License. -; credits: http://www.opsi.org/credits/ - -[Actions] -requiredWinstVersion >= "4.10.8.6" - -DefVar $MsiId$ -DefVar $UninstallProgram$ -DefVar $LogDir$ -DefVar $ExitCode$ -DefVar $ProductId$ -DefVar $InstallDir$ -DefVar $LicenseRequired$ -DefVar $LicensePool$ - -Set $LogDir$ = "%SystemDrive%\tmp" - -; The token BUILDER_VARIABLES will be replaced by opsi-builder.sh -; and adds the following variables: -; from builder-product.cfg : all variables definded by attribute WINST[index] -; from builder-product.cfg : VENDOR PN VERSION RELEASE PRIORITY ADVICE TYPE -; from opsi-builder.cfg : CREATOR_TAG CREATOR_NAME CREATOR_EMAIL -; auto generated winst-variables -; $IconFile$: path to product picture -; -@@BUILDER_VARIABLES@@ - -; ---------------------------------------------------------------- -; - Please edit the following values - -; ---------------------------------------------------------------- -Set $ProductId$ = "opsi-template" -Set $InstallDir$ = "%ProgramFiles32Dir%\" -Set $LicenseRequired$ = "false" -Set $LicensePool$ = "p_" + $ProductId$ -; ---------------------------------------------------------------- - - -comment "Show product picture" -ShowBitmap "%ScriptPath%\" + $ProductId$ + ".png" $ProductId$ - -Message "Uninstalling " + $ProductId$ + " ..." - -if FileExists("%ScriptPath%\delsub32.ins") - comment "Start uninstall sub section" - Sub "%ScriptPath%\delsub32.ins" -endif - -if $LicenseRequired$ = "true" - comment "Licensing required, free license used" - Sub_free_license -endif - -[Sub_free_license] -comment "License management is enabled and will be used" - -comment "Trying to free license used for the product" -DefVar $result$ -Set $result$ = FreeLicense($LicensePool$) -; If there is an assignment of a license pool to the product, it is possible to use -; Set $result$ = FreeLicense("", $ProductId$) -; -; If there is an assignment of a license pool to a windows software id, it is possible to use -; DefVar $WindowsSoftwareId$ -; $WindowsSoftwareId$ = "..." -; set $result$ = FreeLicense("", "", $WindowsSoftwareId$) - diff --git a/OPSI/control b/OPSI/control index 41b0724..e4f037e 100644 --- a/OPSI/control +++ b/OPSI/control @@ -13,8 +13,8 @@ version: VERSION priority: PRIORITY licenseRequired: False productClasses: -setupScript: setup32.ins -uninstallScript: uninstall32.ins +setupScript: join.ins +uninstallScript: updateScript: alwaysScript: onceScript: @@ -65,12 +65,3 @@ editable: True description: Password for privileged account values: [""] default: ["JoinAdminPW"] - -[ProductProperty] -type: unicode -name: localadminpw -multivalue: False -editable: True -description: Local Administrator password -values: [""] -default: [""] \ No newline at end of file diff --git a/builder-product.cfg b/builder-product.cfg index 1c0dcd1..5b4260d 100644 --- a/builder-product.cfg +++ b/builder-product.cfg @@ -6,7 +6,7 @@ PN="windows.domainjoin" VERSION="1" RELEASE="1" PRIORITY="0" -ADVICE="Mandatory items: domainname / joinadmin / joinadminpw / localadminpw | Optional items: machineobjectou (RFC 1779)" +ADVICE="Mandatory items: domainname / joinadmin / joinadminpw | Optional items: machineobjectou (RFC 1779)" # TYPE - defines, if the install files are public or restricted. # Valid value: restricted | public