Files
Alte_Skripte/List_Applications.sh
2026-02-16 15:05:15 +01:00

33 lines
1.7 KiB
Bash

#!/bin/bash
#fill in variables for your environment
jssurl="https://lions-mac.ing.de:8443"
apiUser=$(osascript -e 'text returned of (display dialog "Benutzernamme" default answer "" buttons {"OK"} default button 1)')
apiPass=$(osascript -e 'text returned of (display dialog "Password" default answer "" buttons {"OK"} default button 1)')
#create temp folder
mkdir /tmp/appinventory
#list all computer IDs
allCompIDs=$(curl -k -u $apiUser:$apiPass $jssurl/JSSResource/computers | xmllint --format - | awk -F'>|<' '/<id>/,/<\/id>/{print $3}' | sort -n)
#get computer name for computer IDs
for compID in ${allCompIDs}; do
computerName=$(curl -k -u $apiUser:$apiPass $jssurl/JSSResource/computers/id/${compID} | xmllint --format - | awk -F'>|<' '/<name>/,/<\/name>/{print $3}' | head -n1)
#get macOS version for all computers
osVersion=$(curl -k -u $apiUser:$apiPass $jssurl/JSSResource/computers/id/${compID} | xmllint --format - | awk -F'>|<' '/<os_version>/,/<\/os_version>/{print $3}')
#get list of applications installed on each computer name and exports to csv per computer with format compName,osVersion,appName,appVersion
curl -k -u $apiUser:$apiPass $jssurl/JSSResource/computers/id/${compID} | xmllint --format - | awk -F'>|<' '/<applications>/,/<\/applications>/{print $3}' | tail -n+4 | tr '\n' ',' | sed -e $'s/,,,/\\\n/g' | sed 's/,\/.*,/,/g' | sed -e '$ d' | sed '1s;^;'"$computerName"','"$osVersion"',;' | sed 's/^/,,/g' | sed 's/,,'"$computerName"'/'"$computerName"'/g' | cut -f4 > /tmp/appinventory/${computerName}.csv
done # < (echo "${allCompIDs}")
#combine individual inventories into one file
cat /tmp/appinventory/*.csv >> /Users/90022300/Desktop/AllMacAppInventory.csv
#remove temp folder
#rm -rf /tmp/appinventory