This commit is contained in:
DT Netsolution GmbH 2012-04-05 14:33:15 +02:00
commit 3a27aaacd3
17 changed files with 553 additions and 0 deletions

View File

@ -0,0 +1,95 @@
; 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

View File

@ -0,0 +1,12 @@
Const ENABLE_CONNECTIONS = 1
WScript.Sleep 60000
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery _
("Select * from Win32_TerminalServiceSetting")
For Each objItem in colItems
objItem.SetAllowTSConnections(ENABLE_CONNECTIONS)
Next

View File

@ -0,0 +1,38 @@
Main()
Sub Main()
const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "SYSTEM\CurrentControlSet\Services\Tcpip\Linkage"
strValueName = "Bind"
oReg.GetMultiStringValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, arrValues
Dim colNewVals
Set colNewVals = CreateObject("Scripting.Dictionary")
flag = false
For Each strValue In arrValues
If strValue = "\Device\NdisWanIp" Then
colNewVals.Add 0, strValue
flag = true
Exit For
End If
Next
If flag = false Then
Exit Sub
End If
i = 1
For Each strValue In arrValues
If strValue <> "\Device\NdisWanIp" Then
colNewVals.Add i, strValue
i = i + 1
End If
Next
oReg.SetMultiStringValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName,colNewVals.Items
End Sub

27
CLIENT_DATA/reghack.vbs Normal file
View File

@ -0,0 +1,27 @@
Const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
strComputer & "\root\default:StdRegProv")
strKeyPath = "SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}"
oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys
strValueName = "DriverDesc"
For Each subkey In arrSubKeys
oReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath&"\"&subkey,strValueName,strValue
if strValue = "TAP-Win32 Adapter V9" Then
strValueName2 = "MTU"
strValue2 = "1400"
oReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath&"\"&subkey,strValueName2,strValue2
strValueName3 = "NetCfgInstanceId"
oReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath&"\"&subkey,strValueName3,strValue3
strKeyPath2 = "SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002bE10318}\"&strValue3&"\Connection"
strValueName4 = "Name"
strValue3 = "LAN-Verbindung OpenVPN"
oReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath2,strValueName4,strValue3
end if
Next

37
CLIENT_DATA/reghack2.vbs Normal file
View File

@ -0,0 +1,37 @@
On Error Resume Next
Const HKEY_LOCAL_MACHINE = &H80000002
'Const FULL_DNS_REGISTRATION = True
'Const DOMAIN_DNS_REGISTRATION = False
strComputer = "."
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
strComputer & "\root\default:StdRegProv")
strKeyPath = "SYSTEM\CurrentControlSet\Services\Tcpip\Parameters"
strValueName = "SearchList"
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colNetCards = objWMIService.ExecQuery _
("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")
For Each objNetCard in colNetCards
if objNetCard.Description = "TAP-Win32 Adapter V9" then
objNetCard.SetDynamicDNSRegistration True, _
False
objNetCard.SetTcpipNetbios 0
else
objNetCard.SetDynamicDNSRegistration False, _
False
objNetCard.SetTcpipNetbios 2
end if
Next
oReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue
if strValue <> "" then
oReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,""
end if

155
CLIENT_DATA/setup32.ins Normal file
View File

@ -0,0 +1,155 @@
; 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 $wget$
DefVar $wget_uninst$
DefVar $Ovpn-Config-Dir$
DefVar $Konfig-URL$
DefVar $defPW$
DefVar $pw$
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 $wget$ = "%SystemDrive%\Programme\GnuWin32\bin\wget.exe"
;Set $wget_uninst$ = GetRegistrystringvalue("[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Wget-1.11.4-1_is1] UninstallString")
;Set $wget_uninst$ = unquote($wget_uninst$,$wget_uninst$)
Set $Ovpn-Config-Dir$ = "%SystemDrive%\Programme\OpenVPN\config"
Set $Konfig-URL$ = GetIni ("%ScriptPath%\url.ini" [Webserver] URL)
Set $defPW$ = GetIni ("%ScriptPath%\url.ini" [Webserver] defPW)
Set $pw$ = GetProductProperty ("apache-pw","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$ = "openvpn-config"
Set $MinimumSpace$ = "1 MB"
; the path were we find the product after the installation
Set $InstallDir$ = "%ProgramFiles32Dir%\<path to the product>"
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
if $pw$ = ""
Set $pw$ = $defPW$
endif
comment "Start setup program"
Winbatch_install
Sub_check_exitcode
comment "Patch Registry"
Registry_install /32Bit
comment "Default-User in Registry"
Registry_AllUsers /AllNTUserdats
comment "Reboot"
ExitWindows /Reboot
comment "Test for installation success"
; Test if software marked as installed in registry
; if (GetRegistryStringValue32("[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}] DisplayName") = "")
; logError "Fatal: After Installation 32 bit [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}] not found"
; isFatalError
; else
; comment "Successful Installation"
; endif
endif
[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 ================================================================
"$Wget32Exe$" /Silent
;Set $wget_uninst$ = GetRegistrystringvalue("[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Wget-1.11.4-1_is1] UninstallString")
;Set $wget_uninst$ = unquote($wget_uninst$,$wget_uninst$)
"%ScriptPath%\reghack.vbs"
"%ScriptPath%\reghack2.vbs"
"%ScriptPath%\reg_ndiwswan_bind.vbs"
"%Scriptpath%\enable_rdp.vbs"
$wget$ -O $Ovpn-Config-Dir$\ca.crt --http-user=%PCName% --password=$pw$ $Konfig-URL$/%PCName%/ca.crt
$wget$ -O $Ovpn-Config-Dir$\client.crt --http-user=%PCName% --password=$pw$ $Konfig-URL$/%PCName%/client.crt
$wget$ -O $Ovpn-Config-Dir$\client.key --http-user=%PCName% --password=$pw$ $Konfig-URL$/%PCName%/client.key
$wget$ -O $Ovpn-Config-Dir$\client.ovpn --http-user=%PCName% --password=$pw$ $Konfig-URL$/%PCName%/client.ovpn
$wget$ -O $Ovpn-Config-Dir$\ta.key --http-user=%PCName% --password=$pw$ $Konfig-URL$/%PCName%/ta.key
cacls $Ovpn-Config-Dir$ /E /R Benutzer
cacls $Ovpn-Config-Dir$ /E /R Hauptbenutzer
sc config OpenVPNService start= auto
netsh firewall set opmode mode=disable interface="LAN-Verbindung OpenVPN"
netsh firewall set service type=remotedesktop mode=enable scope=all
;$wget_uninst$ /silent
[Registry_install]
openkey [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]
set "fDenyTSConnections" = REG_DWORD:0000
openkey [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\Kerberos\Parameters]
set "MaxPacketSize"=reg_dword:01
openkey [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
set "GpNetworkStartTimeoutPolicyValue"=reg_dword:60
set "GroupPolicyMinTransferRate"=reg_dword:00
openkey [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\System]
set "GpNetworkStartTimeoutPolicyValue"=reg_dword:60
set "GroupPolicyMinTransferRate"=reg_dword:00
[Registry_AllUsers]
openkey [SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
set "GpNetworkStartTimeoutPolicyValue"=reg_dword:60
set "GroupPolicyMinTransferRate"=reg_dword:00

View File

@ -0,0 +1,68 @@
; 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%\<path to the product>"
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$)

3
CLIENT_DATA/url.ini Normal file
View File

@ -0,0 +1,3 @@
[Webserver]
URL = "http://opsi-dev.dtnet.de/opsi/openvpn"
defPW = "sECureIT"

2
OPSI/changelog.txt Normal file
View File

@ -0,0 +1,2 @@
Don't add cahngelog entries here!
It get autogenerated by the opsi-builder.sh

46
OPSI/control Normal file
View File

@ -0,0 +1,46 @@
[Package]
version: RELEASE
depends:
incremental: False
[Product]
type: localboot
id: openvpn-config
name: openvpn-config
description: Konfiguration OpenVPN und Registry Anpassungen
advice: ADVICE
version: VERSION
priority: PRIORITY
licenseRequired: False
productClasses:
setupScript: setup32.ins
uninstallScript: uninstall32.ins
updateScript:
alwaysScript:
onceScript:
customScript:
userLoginScript:
[ProductDependency]
action: setup
requiredProduct: openvpn
requiredAction: setup
requirementType: before
;[ProductProperty]
;type: unicode
;name: install_architecture
;multivalue: False
;editable: False
;description: which architecture (32/64 bit) has to be installed
;values: ["32 only", "64 only", "both", "system specific"]
;default: ["system specific"]
[ProductProperty]
type: unicode
name: apache-pw
multivalue: False
editable: True
description: Passwort fuer Download der Konfigfiles
values: [""]
default: [""]

9
OPSI/postinst Normal file
View File

@ -0,0 +1,9 @@
#! /bin/sh
#
# postinst script for softprod
# This script executes after unpacking files from that archive and registering the product at the server.
#
# The following environment variables can be used to obtain information about the current installation:
# PRODUCT_ID: id of the current product
# CLIENT_DATA_DIR: directory which contains the installed client data
#

9
OPSI/preinst Normal file
View File

@ -0,0 +1,9 @@
#! /bin/sh
#
# preinst script for softprod
# This script executes before that package will be unpacked from its archive file.
#
# The following environment variables can be used to obtain information about the current installation:
# PRODUCT_ID: id of the current product
# CLIENT_DATA_DIR: directory where client data will be installed
#

24
builder-product.cfg Normal file
View File

@ -0,0 +1,24 @@
############################
# Setup product information
############################
VENDOR="dtnet.de"
PN="openvpn-config"
VERSION="1"
RELEASE="1"
PRIORITY="0"
ADVICE="Pflichtfelder: apache-pw [Anmeldepasswort fuer download Konfigurationsdateien]"
# TYPE - defines, if the install files are public or restricted.
# Valid value: restricted | public
TYPE="public"
DL_FILE[0]="openvpn-config.png"
DL_SOURCE[0]="http://www.bitblokes.de/wp-content/uploads/2010/10/openvpn-logo-150x150.png"
DL_FILE[1]="wget.exe"
DL_SOURCE[1]="http://downloads.sourceforge.net/project/gnuwin32/wget/1.11.4-1/wget-1.11.4-1-setup.exe?r=&ts=1333400082&use_mirror=garr"
DL_ARCH[1]="X86"
DL_WINST_NAME[1]=Wget32exe
# File array index for the image showing while installing the program
ICON_DL_INDEX=0

25
builder-targets-cb.sh Normal file
View File

@ -0,0 +1,25 @@
##############################################################################
# This optional file "builder-targets-cb.sh" will be called by builder.sh
#
# The targets will be called from thde opsi-builder using the following
# order: config, prepare, retrieve, create, package, publish, commit, cleanup
# You can overwrite the target functions in builder-targets-cb.sh
#
# You can define callback functions. The functions are called from
# opsi-builder within processing a target
# cb_package_makeproductfile
#
# You can use every variable defined in any configuration file or by
# the defined builder script itself. Also, calling the predefined
# targets builder_<targetname> is possible.
#
# Abstract:
# target order: config, prepare, retrieve, create, package, publish, commit, cleanup
# callbacks: <none>
#
##############################################################################
function cleanup() {
echo "Cleanup"
builder_cleanup
}

View File

@ -0,0 +1 @@
1e55e6d56fd54b044fedb5863e1693e812b776fe /home/dtrinks/.opsi-dist-cache/dtnet.de/openvpn-config/1//openvpn-config.png

1
openvpn.png.sha1sum Normal file
View File

@ -0,0 +1 @@
1e55e6d56fd54b044fedb5863e1693e812b776fe /home/dtrinks/.opsi-dist-cache/openvpn.org/openvpn/2.2.2//openvpn.png

1
wget.exe.sha1sum Normal file
View File

@ -0,0 +1 @@
35e3ecc99c5a28745f957e87695b5a18b1f61680 /home/dtrinks/.opsi-dist-cache/openvpn.org/openvpn/2.2.2/X86/wget.exe