; Copyright (c) uib GmbH (www.uib.de) ; This sourcecode is owned by uib ; and published under the Terms of the General Public License. ; ; Started at 2007/10/25 by Rupert Roeder / Jan Schneider ; Added uninstallString 2008/01/28 by Jan Schneider ; [actions] setloglevel=7 DefVar $ProductId$ DefVar $OpsiRegKey$ DefVar $uninstkey$ DefVar $uninstkey32$ DefVar $extendedkey$ defVar $winSoftwareId$ defVar $displayVersion$ defVar $displayName$ defVar $uninstallString$ defVar $Language$ defVar $user$ defVar $pass$ defVar $serviceUrl$ DefVar $loglevel$ DefVar $swAuditInfoStr$ DefVar $clientId$ DefStringlist $uninstKeys$ DefStringlist $resultlist$ DefStringList $singleHash$ set $ProductId$ = "swaudit" Set $OpsiRegKey$ = "HKLM\SOFTWARE\opsi.org" Set $uninstkey$="HKEY_LOCAL_MACHINE\software\microsoft\windows\currentversion\uninstall" Set $uninstkey32$="HKEY_LOCAL_MACHINE\software\wow6432node\microsoft\windows\currentversion\uninstall" Set $extendedkey$="HKEY_LOCAL_MACHINE\software\microsoft\windows\currentversion\app management\arpcache" ;set $user$="test1.opsi.uib.local" ;set $pass$="033dc4d91671a481e54e65b387fb51dd" ;set $serviceUrl$="https://experimental002:4447" set $clientId$="autotest001.uib.local" ;set $user$="autotest001.uib.local" ;set $pass$="b61455728859cfc9988a3d9f3e2343b3" set $serviceUrl$="https://bonifax:4447" set $user$="adminuser" set $pass$="linux123" set $clientId$="%HostID%" ; Message at install time: Message "Running software audit..." ShowBitmap "%SCRIPTPATH%\swaudit.png" "Software Inventarisierung" message "collecting products ..." setloglevel=3 set $uninstKeys$ = GetOutStreamFromSection('execWith_getunstallkeys cmd.exe /C') ;set $uninstKeys$ = createStringList ($uninstkey$+"\KB950762",$uninstkey$+"\lvdrivers_12.0",$uninstkey$+"\interbase",$uninstkey$+"\{C9BED750-1211-4480-B1A5-718A3BE15525}",$uninstkey$+"\{08CECC71-A9B1-417d-AB3A-C57C4F854F53}498595280") set $swAuditInfoStr$ = "{" message "collecting product details ..." for %aktkey% in $uninstKeys$ do sub_getswdetails setloglevel=3 set $swAuditInfoStr$ = $swAuditInfoStr$+"}" setloglevel=7 message "writing results back to service ..." ;opsiservicecall_authenticated /username $User$ /password $Pass$ /serviceurl $serviceUrl$ opsiservicecall_setSoftwareInformation ;opsiservicecall_auditSoftwareOnClient_createObjects /username $User$ /password $Pass$ /serviceurl $serviceUrl$ [sub_getswdetails] if not ("%aktkey%" = "") set $winSoftwareId$ = takeString(6,splitString("%aktkey%",'\')) if not ($winSoftwareId$ = "") set $displayVersion$ = GetRegistrystringvalue ("[%aktkey%] DisplayVersion") set $displayName$ = GetRegistrystringvalue ("[%aktkey%] displayName") set $Language$ = GetRegistrystringvalue ("[%aktkey%] Language") set $uninstallString$ = GetRegistrystringvalue ("[%aktkey%] uninstallString") set $uninstallString$ = RegString($uninstallString$) set $uninstallString$ = composeString(splitString($uninstallString$,'"'),'\""') sub_create_hash endif endif [sub_create_hash] if not ($swAuditInfoStr$ = "{") set $swAuditInfoStr$ = $swAuditInfoStr$+"," endif set $swAuditInfoStr$ = $swAuditInfoStr$+'""'+$winSoftwareId$+'"": {' set $swAuditInfoStr$ = $swAuditInfoStr$+'""displayName"": ""'+$displayName$+'"",' set $swAuditInfoStr$ = $swAuditInfoStr$+'""uninstallString"": ""'+$uninstallString$+'"",' ;set $swAuditInfoStr$ = $swAuditInfoStr$+'""uninstallString"": ""'+$uninstallString$+'"",' set $swAuditInfoStr$ = $swAuditInfoStr$+'""softwareId"": ""'+$winSoftwareId$+'"",' set $swAuditInfoStr$ = $swAuditInfoStr$+'""usageFrequency"": -1,' set $swAuditInfoStr$ = $swAuditInfoStr$+'""installSize"": """",' set $swAuditInfoStr$ = $swAuditInfoStr$+'""lastUsed"": """",' set $swAuditInfoStr$ = $swAuditInfoStr$+'""displayVersion"": ""'+$displayVersion$+'"",' set $swAuditInfoStr$ = $swAuditInfoStr$+'""binaryName"": ""test""}' [execWith_getunstallkeys] @echo off reg query $uninstkey$ [opsiservicecall_authenticated] "method": "authenticated" "params": [ ] [opsiservicecall_setSoftwareInformation] "method": "setSoftwareInformation" "params": [ "$clientId$" "$swAuditInfoStr$" ] [opsiservicecall_auditSoftwareOnClient_createObjects] "method": "auditSoftwareOnClient_createObjects" "params": [ '{ "name": "test1", "version": "3.1.4", "subVersion": "", "language": "de", "architecture": "x86", "clientId": "$user$", "uninstallString": "", "binaryName": "", "usageFrequency": "", "lastUsed": "" }, { "name": "test2", "version": "3.1.4", "subVersion": "", "language": "en", "architecture": "x64", "clientId": "$user$", "uninstallString": "", "binaryName": "", "usageFrequency": "", "lastUsed": "" }' ]