A copy-pasta function to output all vendor preference keys

Background
While implementing feedback from Søren Theilgaard, we needed an easy way to output every key / value pair from any vendor’s preference files, in either the user or system domain.
Function
- Copy-and-paste the following
readPreferenceKeysfunction into an open Terminal window:
function readPreferenceKeys() {
scriptVersion="0.0.2"
export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin/
loggedInUser=$( echo "show State:/Users/ConsoleUser" | scutil | awk '/Name :/ { print $3 }' )
loggedInUserHome=$( dscl . read /Users/"${loggedInUser}" NFSHomeDirectory | awk -F ": " '{print $2}' )
serialNumber=$( system_profiler SPHardwareDataType | grep Serial | awk '{print $NF}' )
timestamp="$( date '+%Y-%m-%d-%H%M%S' )"
macOSproductVersion="$( sw_vers -productVersion )"
macOSbuildVersion="$( sw_vers -buildVersion )"
preferenceKeyLogDirectory="/var/tmp/"
preferenceKeyLog="${1}-${2}-preferenceKeys-${macOSproductVersion}-${macOSbuildVersion}-${serialNumber}-${timestamp}.log"
touch "${preferenceKeyLogDirectory}${preferenceKeyLog}"
echo "Preference Key Reader (${scriptVersion})" | tee -a "${preferenceKeyLogDirectory}${preferenceKeyLog}"
echo "Created ${preferenceKeyLog} …" | tee -a "${preferenceKeyLogDirectory}${preferenceKeyLog}"
echo "Running …" | tee -a "${preferenceKeyLogDirectory}${preferenceKeyLog}"
echo "Searching for \"${1}\" preference keys on macOS ${macOSproductVersion} (${macOSbuildVersion}) in the \"${2}\" domain …" | tee -a "${preferenceKeyLogDirectory}${preferenceKeyLog}"
printf "\n\n\n" >> "${preferenceKeyLogDirectory}${preferenceKeyLog}"
SECONDS="0"
case "${2}" in
"system" )
preferencePath="/Library/Preferences/"
;;
"user" )
preferencePath="${loggedInUserHome}/Library/Preferences/"
;;
* )
echo "Unrecognized Option: \"${2}\"" | tee -a "${preferenceKeyLogDirectory}${preferenceKeyLog}"
echo "Removing temporary file and exiting" | tee -a "${preferenceKeyLogDirectory}${preferenceKeyLog}"
rm -v "${preferenceKeyLogDirectory}${preferenceKeyLog}"
return 1
;;
esac
for plists in "${preferencePath}"*."${1}".*; do
echo "${plists}" >> "${preferenceKeyLogDirectory}${preferenceKeyLog}"
defaults read "${plists}" >> "${preferenceKeyLogDirectory}${preferenceKeyLog}" 2>&1
printf "\n\n\n" >> "${preferenceKeyLogDirectory}${preferenceKeyLog}"
done
echo "Elapsed Time: ${SECONDS}" | tee -a "${preferenceKeyLogDirectory}${preferenceKeyLog}"
mv -v "${preferenceKeyLogDirectory}${preferenceKeyLog}" "${loggedInUserHome}/Desktop/"
open -R "${loggedInUserHome}/Desktop/${preferenceKeyLog}"
}
2. Call the function:
# readPreferenceKeys "vendor name" "domain [ system | user]" readPreferenceKeys "apple" "system" readPreferenceKeys "apple" "user"
3. Review the output (which is saved to your Desktop)
Discoverys
The readPreferenceKeys function helped us discover that the absence of the ConfigDataInstall key in com.apple.SoftwareUpdate.plist indicated that macOS Ventura’s Rapid Security Response was actually enabled.
(My personal favorite is 1,045-line com.apple.EmojiCache.plist in the user domain.)