Hallo zusammen,
im Rahmen einer Projektarbeit beschäftige ich mich momentan mit der Installation und Integration eines opsi-servers in meinem Betrieb. Ich habe mir das vorgefertigte Skript zur Installation und Deinstallation von TeamViewer 8 aus den Templates gesucht und ein wenig angepasst bis es mit TeamViewer 10 auf den TestClients funktionierte. Anschließend habe ich mich mit dem Lizenzmanagement beschäftigt und ein entsprechendes Lizenzpool für den TeamViewer als concurrent-Lizenz angelegt.
Da ich nicht der Beste im Umgang mit Skripten bin, möchte ich nun wissen wie genau ich Das im setup-Skript hinterlege, dass eine Lizenz im Lizenzmanagement "blockiert" wird und was ich anfügen muss damit die Lizenz auch auf dem TestClient in der Konfiguration des TeamViewers, nach einer Installation via opsi, eingebunden wird. Außerdem wäre es hilfreich wenn mir jemand zeigt was ich im uninstall-Skript abändern muss um die Lizenz nach einer Deinstallation wieder frei zu geben.
Hier die Inhalte der Skripte:
setup.ins:
[Actions]
requiredWinstVersion >= "4.11.3.6"
setLogLevel = 6
TraceMode = off
DefVar $OS$
DefVar $NTVersion$
DefVar $SystemType$
DefVar $ProductName$
DefVar $ProductNameFull$
DefVar $ProductPicture$
DefVar $Executable32$
DefVar $Executable64$
DefVar $ExitCode$
DefVar $MsiId32$
DefVar $MsiId64$
DefVar $TempDir$
set $OS$ = GetOS
set $NTVersion$ = GetNTVersion
Set $SystemType$ = GetSystemType
Set $TempDir$ = "C:\tmp"
; ----------------------------------------------------------------
; - Please edit the following values -
; ----------------------------------------------------------------
set $ProductNameFull$ = "TeamViewer 10"
Set $ProductPicture$ = "logo.png"
Set $Executable32$ = "TeamViewer.msi"
Set $Executable64$ = "TeamViewer.msi"
Set $MsiId32$ = '{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}'
Set $MsiId64$ = '{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}'
; ----------------------------------------------------------------
; Show $ProductPicture$ and $ProductNameFull$
ShowBitmap /3 "%scriptpath%\" + $ProductPicture$ $ProductNameFull$
Message "Installiere "+$ProductNameFull$
if not (HasMinimumSpace ("%SYSTEMDRIVE%", "50 MB"))
LogError "Nicht genügend Platz auf %SYSTEMDRIVE%"
isFatalError
endif
; Deinstall old Version
Sub "%ScriptPath%\delsub.ins"
Message "Installiere " + $ProductNameFull$ + " ..."
if ( $NTVersion$ = "Win2K" OR $NTVersion$ = "WinXP" OR $NTVersion$ = "Win NT 5.2" OR $NTVersion$ = "Windows Vista" OR $NTVersion$ = "Win NT 6.1" OR $NTVersion$ = "Win NT 6.2" )
if $SystemType$ = "x86 System"
Files_copy_local
Winbatch_Install_32-Bit
sub "%ScriptDrive%\install\check_exitcode\check_msi-exitcode.ins"
Files_del
endif
if $SystemType$ = "64 Bit System"
Files_copy_local
Winbatch_Install_64-Bit
sub "%ScriptDrive%\install\check_exitcode\check_msi-exitcode.ins"
Files_del
endif
else
LogError "Kein kompatibles Betriebssystem installiert"
isFatalError
endif
[Files_copy_local]
copy "%scriptpath%\$Executable64$" "$TempDir$\."
copy "%scriptpath%\TeamViewer_Settings.reg" "$TempDir$\."
[Winbatch_Install_32-Bit]
msiexec /i "$TempDir$\$Executable32$" /quiet /norestart
[Winbatch_Install_64-Bit]
msiexec /i "$TempDir$\$Executable64$" /quiet /norestart
[Files_del]
delete "$TempDir$\$Executable64$"
delete "$TempDir$\TeamViewer_Settings.reg"
uninstall.ins:
[Actions]
requiredWinstVersion >= "4.11"
setLogLevel = 6
TraceMode = off
DefVar $MsiId32$
DefVar $MsiId64$
DefVar $LogDir$
DefVar $ExitCode$
DefVar $ProductNameFull$
DefVar $ProductPicture$
DefVar $OS$
DefVar $NTVersion$
DefVar $SystemType$
DefVar $TempDir$
DefVar $Executable32$
DefVar $Executable64$
set $OS$ = GetOS
set $NTVersion$ = GetNTVersion
Set $SystemType$ = GetSystemType
Set $TempDir$ = "C:\tmp"
; ----------------------------------------------------------------
; - Please edit the following values -
; ----------------------------------------------------------------
Set $ProductNameFull$ = "TeamViewer 10"
Set $ProductPicture$ = "logo.png"
Set $Executable32$ = "TeamViewer.msi"
Set $Executable64$ = "TeamViewer.msi"
Set $MsiId32$ = '{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}'
Set $MsiId64$ = '{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}'
; ----------------------------------------------------------------
comment "Display product logo"
ShowBitmap /3 "%scriptpath%\" + $ProductPicture$ $ProductNameFull$
Message "Deinstalliere " + $ProductNameFull$ + " ..."
if FileExists("%ScriptPath%\delsub.ins")
comment "Start uninstall sub section"
Sub "%ScriptPath%\delsub.ins"
endif
delsub.ins:
Message "Deinstalliere " + $ProductNameFull$ + " ..."
;OS-Version ermitteln
if ( $NTVersion$ = "Win2K" OR $NTVersion$ = "WinXP" OR $NTVersion$ = "Win NT 5.2" OR $NTVersion$ = "Windows Vista" OR $NTVersion$ = "Win NT 6.1" OR $NTVersion$ = "Win NT 6.2" )
comment "checking for old installation (32bit)"
if not (GetRegistryStringValue32("[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\TeamViewer] DisplayName") = "")
comment "MSI id " + $MsiId32$ + " found in registry, starting msiexec to uninstall"
Files_copy_local
Winbatch_uninstall_msi32
sub "%ScriptDrive%\install\check_exitcode\check_msi-exitcode.ins"
endif
if $SystemType$ = "64 Bit System"
comment "checking for old installation (64bit)"
if not (GetRegistryStringValue64("[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\TeamViewer] DisplayName") = "")
comment "MSI id " + $MsiId64$ + " found in registry, starting msiexec to uninstall"
Files_copy_local
Winbatch_uninstall_msi64
sub "%ScriptDrive%\install\check_exitcode\check_msi-exitcode.ins"
endif
endif
else
LogError "Kein kompatibles Betriebssystem installiert"
isFatalError
endif
[Winbatch_uninstall_msi32]
msiexec /x "$TempDir$\$Executable32$" /quiet REBOOT=ReallySuppress
;delete "$TempDir$\$Executable32$"
;msiexec /x $MsiId32$ /quiet REBOOT=ReallySuppress
[Winbatch_uninstall_msi64]
msiexec /x "$TempDir$\$Executable64$" /quiet REBOOT=ReallySuppress
;delete "$TempDir$\$Executable64$"
;msiexec /x $MsiId64$ /quiet REBOOT=ReallySuppress
[Files_copy_local]
copy "%scriptpath%\$Executable64$" "$TempDir$\."
copy "%scriptpath%\TeamViewer_Settings.reg" "$TempDir$\."
Danke & Gruß
SES
Hilfe bei Lizenzmanagement
Re: Hilfe bei Lizenzmanagement
es ist sinnvoll, sich anhand des OPSI-Templates von UIB zu orientieren...
(Paket "opsi-template" auf deinen Client installieren bzw. beim "OPSI-Setup-Detector" ins Verzeichnis C:\Program Files (x86)\opsiSetupDetector\files2opsi\CLIENT_DATA reinschauen)
Früher sagte man öfter RTFM ....
http://download.uib.de/opsi4.0/doc/html ... l-template
http://download.uib.de/opsi4.0/doc/html ... ns-license
(Paket "opsi-template" auf deinen Client installieren bzw. beim "OPSI-Setup-Detector" ins Verzeichnis C:\Program Files (x86)\opsiSetupDetector\files2opsi\CLIENT_DATA reinschauen)
Code: Alles auswählen
DemandLicenseKey( poolId [, productId [,windowsSoftwareId]] )
FreeLicense (`poolId [, productId [,windowsSoftwareId]])`
opsiLicenseManagementEnabled

http://download.uib.de/opsi4.0/doc/html ... l-template
http://download.uib.de/opsi4.0/doc/html ... ns-license
Leibniz-Institut für Bildungsmedien | Georg-Eckert-Institut (GEI)
---
'opsi4instituts' = Communityprojekt für wissenschaftliche Einrichtungen
offenes Repository, Update-Notifier
wiki.o4i.org - www.gei.de/institut/direktion/it-service/opsi4instituts
---
'opsi4instituts' = Communityprojekt für wissenschaftliche Einrichtungen
offenes Repository, Update-Notifier
wiki.o4i.org - www.gei.de/institut/direktion/it-service/opsi4instituts
Re: Hilfe bei Lizenzmanagement
Hallo,
vielen Dank für deine Antwort. Ich habe mich bereits im Vorfeld mit den opsi-Templates beschäftigt war mir aber nicht sicher ob ich alles richtig verstanden hatte.
Ich hatte das Problem bereits vor deiner Antwort gelöst, war mir aber nicht sicher ob es eine "saubere" Lösung war.
Ich habe es wie folgt gemacht:
Verstehe ich das richtig das ich dem TeamViewer keine Lizenz mitgeben kann? Also gemeint ist eine Integration der Lizenz in der TeamViewer-Installation.
Mich würde es noch brennend interessieren ob es möglich ist die Hard- und Software-Inventarisierung und die bereit gestellten Informationen des Lizenzmanagements in z.B. Excel oder CSV-Dateien zu exportieren. Auch hierzu konnte ich bisher nicht finden und wäre für eine Anwort sehr dankbar!
vielen Dank für deine Antwort. Ich habe mich bereits im Vorfeld mit den opsi-Templates beschäftigt war mir aber nicht sicher ob ich alles richtig verstanden hatte.
Ich hatte das Problem bereits vor deiner Antwort gelöst, war mir aber nicht sicher ob es eine "saubere" Lösung war.
Ich habe es wie folgt gemacht:
Code: Alles auswählen
DefVar $LicenseRequired$
DefVar $LicenseKey$
DefVar $LicensePool$
------------------------------
Set $LicenseRequired$ = "true"
Set $LicensePool$ = "teamviewer"
------------------------------------------------
if $LicenseRequired$ = "true"
comment "Licensing required, reserve license and get license key"
Sub_get_licensekey
----------------------------------------------------------------------------------------------
[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$)
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
Mich würde es noch brennend interessieren ob es möglich ist die Hard- und Software-Inventarisierung und die bereit gestellten Informationen des Lizenzmanagements in z.B. Excel oder CSV-Dateien zu exportieren. Auch hierzu konnte ich bisher nicht finden und wäre für eine Anwort sehr dankbar!
Re: Hilfe bei Lizenzmanagement
normalerweise wird dies beim anlegen des Paketes in der OPSI/control definiert, der opsi-Setup-Detector generiert darausCode: Alles auswählen
Set $LicenseRequired$ = "true"
die Informationen in der setup.ins.
Code: Alles auswählen
[Product]
licenseRequired: True
weitermachen (siehe unten)
Code: Alles auswählen
DefVar $LicenseRequired$
Set $LicenceRequired$ = "True"
; die anderen Variablen werden erst definiert und belegt, wenn wirklich
; eine Lizenz erforderlich ist...
; ...
if $LicenseRequired$ = "True"
comment "Licensing required, reserve license and get license key"
DefVar $LicenceKey$
DefVar $LicencePool$
Set $LicensePool$ = "p_" + $ProductId$
include_append "%ScriptDrive%\lib\sub_get_licensekey.opsiinc"
Sub_get_licensekey
endif
Code: Alles auswählen
Set $LicensePool$ = "teamviewer"
= "p_" + $ProductId$
wie meinst du das? Einen Key, ein Lizenzfile, eine Verbindung zu einem Lizenzserver? .... ich kenne das Lizenzierungsverfahren von Teamviewer nicht.Verstehe ich das richtig das ich dem TeamViewer keine Lizenz mitgeben kann? Also gemeint ist eine Integration der Lizenz in der TeamViewer-Installation.
Einen Key könntest du im Lizenzmodul hinterlegen.
PS:
den Inhalt des Reiter "Statistik" des Lizenzmodules kann man problemlos via Copy & Paste in eine Tabelle (Calc, Excel) übernehmen.
Ab OPSI 4.0.6 sollen ja verschiedene Tabellen des opsi-confd als PDF speicherbar werden...
Leibniz-Institut für Bildungsmedien | Georg-Eckert-Institut (GEI)
---
'opsi4instituts' = Communityprojekt für wissenschaftliche Einrichtungen
offenes Repository, Update-Notifier
wiki.o4i.org - www.gei.de/institut/direktion/it-service/opsi4instituts
---
'opsi4instituts' = Communityprojekt für wissenschaftliche Einrichtungen
offenes Repository, Update-Notifier
wiki.o4i.org - www.gei.de/institut/direktion/it-service/opsi4instituts