Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
28 changes: 0 additions & 28 deletions AIR_Version.xml

This file was deleted.

25 changes: 24 additions & 1 deletion ARD Field 1.xml
Original file line number Diff line number Diff line change
@@ -1 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?><extensionAttribute> <displayName>ARD Field 1</displayName> <displayInCategory>System Information</displayInCategory> <description>This attribute returns the ARD Computer Info field #1 from the Computer Information attributes in the Apple Remote Desktop settings of a machine.</description> <dataType>string</dataType> <scriptContentsMac>#!/bin/shif [ -f "/Library/Preferences/com.apple.RemoteDesktop.plist" ]; thenecho "&lt;result&gt;`/usr/bin/defaults read /Library/Preferences/com.apple.RemoteDesktop Text1`&lt;/result&gt;"fi </scriptContentsMac></extensionAttribute>
<?xml version="1.0" encoding="UTF-8"?>
<extensionAttribute>
<displayName>ARD Field 1</displayName>
<displayInCategory>System Information</displayInCategory>
<description>Returns the Apple Remote Desktop Computer Info field #1.</description>
<dataType>string</dataType>
<scriptContentsMac>#!/bin/zsh

# Updated by SecurityShrimp 2026
# ARD Field 1 Extension Attribute
# Targets macOS 12 through 26 (Tahoe)
# Reads Text1 from the Apple Remote Desktop preferences plist. The plist
# is only present once ARD has been configured; absence is reported as empty.

plist="/Library/Preferences/com.apple.RemoteDesktop.plist"

if [[ -f "$plist" ]]; then
value=$(/usr/bin/defaults read "$plist" Text1 2&gt;/dev/null)
echo "&lt;result&gt;$value&lt;/result&gt;"
else
echo "&lt;result&gt;&lt;/result&gt;"
fi
</scriptContentsMac>
</extensionAttribute>
25 changes: 24 additions & 1 deletion ARD Field 2.xml
Original file line number Diff line number Diff line change
@@ -1 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?><extensionAttribute> <displayName>ARD Field 2</displayName> <displayInCategory>System Information</displayInCategory> <description>This attribute returns the ARD Computer Info field #2 from the Computer Information attributes in the Apple Remote Desktop settings of a machine.</description> <dataType>string</dataType> <scriptContentsMac>#!/bin/shif [ -f "/Library/Preferences/com.apple.RemoteDesktop.plist" ]; thenecho "&lt;result&gt;`/usr/bin/defaults read /Library/Preferences/com.apple.RemoteDesktop Text2`&lt;/result&gt;"fi </scriptContentsMac></extensionAttribute>
<?xml version="1.0" encoding="UTF-8"?>
<extensionAttribute>
<displayName>ARD Field 2</displayName>
<displayInCategory>System Information</displayInCategory>
<description>Returns the Apple Remote Desktop Computer Info field #2.</description>
<dataType>string</dataType>
<scriptContentsMac>#!/bin/zsh

# Updated by SecurityShrimp 2026
# ARD Field 2 Extension Attribute
# Targets macOS 12 through 26 (Tahoe)
# Reads Text2 from the Apple Remote Desktop preferences plist. The plist
# is only present once ARD has been configured; absence is reported as empty.

plist="/Library/Preferences/com.apple.RemoteDesktop.plist"

if [[ -f "$plist" ]]; then
value=$(/usr/bin/defaults read "$plist" Text2 2&gt;/dev/null)
echo "&lt;result&gt;$value&lt;/result&gt;"
else
echo "&lt;result&gt;&lt;/result&gt;"
fi
</scriptContentsMac>
</extensionAttribute>
25 changes: 24 additions & 1 deletion ARD Field 3.xml
Original file line number Diff line number Diff line change
@@ -1 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?><extensionAttribute> <displayName>ARD Field 3</displayName> <displayInCategory>System Information</displayInCategory> <description>This attribute returns the ARD Computer Info field #3 from the Computer Information attributes in the Apple Remote Desktop settings of a machine.</description> <dataType>string</dataType> <scriptContentsMac>#!/bin/shif [ -f "/Library/Preferences/com.apple.RemoteDesktop.plist" ]; thenecho "&lt;result&gt;`/usr/bin/defaults read /Library/Preferences/com.apple.RemoteDesktop Text3`&lt;/result&gt;"fi </scriptContentsMac></extensionAttribute>
<?xml version="1.0" encoding="UTF-8"?>
<extensionAttribute>
<displayName>ARD Field 3</displayName>
<displayInCategory>System Information</displayInCategory>
<description>Returns the Apple Remote Desktop Computer Info field #3.</description>
<dataType>string</dataType>
<scriptContentsMac>#!/bin/zsh

# Updated by SecurityShrimp 2026
# ARD Field 3 Extension Attribute
# Targets macOS 12 through 26 (Tahoe)
# Reads Text3 from the Apple Remote Desktop preferences plist. The plist
# is only present once ARD has been configured; absence is reported as empty.

plist="/Library/Preferences/com.apple.RemoteDesktop.plist"

if [[ -f "$plist" ]]; then
value=$(/usr/bin/defaults read "$plist" Text3 2&gt;/dev/null)
echo "&lt;result&gt;$value&lt;/result&gt;"
else
echo "&lt;result&gt;&lt;/result&gt;"
fi
</scriptContentsMac>
</extensionAttribute>
25 changes: 24 additions & 1 deletion ARD Field 4.xml
Original file line number Diff line number Diff line change
@@ -1 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?><extensionAttribute> <displayName>ARD Field 4</displayName> <displayInCategory>System Information</displayInCategory> <description>This attribute returns the ARD Computer Info field #4 from the Computer Information attributes in the Apple Remote Desktop settings of a machine.</description> <dataType>string</dataType> <scriptContentsMac>#!/bin/shif [ -f "/Library/Preferences/com.apple.RemoteDesktop.plist" ]; thenecho "&lt;result&gt;`/usr/bin/defaults read /Library/Preferences/com.apple.RemoteDesktop Text4`&lt;/result&gt;"fi </scriptContentsMac></extensionAttribute>
<?xml version="1.0" encoding="UTF-8"?>
<extensionAttribute>
<displayName>ARD Field 4</displayName>
<displayInCategory>System Information</displayInCategory>
<description>Returns the Apple Remote Desktop Computer Info field #4.</description>
<dataType>string</dataType>
<scriptContentsMac>#!/bin/zsh

# Updated by SecurityShrimp 2026
# ARD Field 4 Extension Attribute
# Targets macOS 12 through 26 (Tahoe)
# Reads Text4 from the Apple Remote Desktop preferences plist. The plist
# is only present once ARD has been configured; absence is reported as empty.

plist="/Library/Preferences/com.apple.RemoteDesktop.plist"

if [[ -f "$plist" ]]; then
value=$(/usr/bin/defaults read "$plist" Text4 2&gt;/dev/null)
echo "&lt;result&gt;$value&lt;/result&gt;"
else
echo "&lt;result&gt;&lt;/result&gt;"
fi
</scriptContentsMac>
</extensionAttribute>
52 changes: 29 additions & 23 deletions Active Directory OU.xml
Original file line number Diff line number Diff line change
@@ -1,27 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<extensionAttribute>
<displayName>Active Directory OU</displayName>
<description>If the computer is bound to Active Directory it will show the path to where it is located in AD. Helpful for Smart Groups based on objects in a particular OU. </description>
<dataType>string</dataType>
<scriptContentsMac>#!/bin/sh&#13;
ad_computer_name=`dsconfigad -show | grep "Computer Account" | awk '{print $4}'`&#13;
ad_computer_ou=`dscl /Search read /Computers/$ad_computer_name | \&#13;
grep -A 1 dsAttrTypeNative:distinguishedName | \&#13;
cut -d, -f2- | sed -n 's/OU\=//gp' | \&#13;
sed -n 's/\(.*\),DC\=/\1./gp' | \&#13;
sed -n 's/DC\=//gp' | \&#13;
awk -F, '{&#13;
N = NF&#13;
while ( N &gt; 1 )&#13;
{&#13;
printf "%s/",$N&#13;
N--&#13;
}&#13;
&#13;
printf "%s",$1&#13;
}'`&#13;
&#13;
echo "&lt;result&gt;$ad_computer_ou&lt;/result&gt;"&#13;
<displayName>Active Directory OU</displayName>
<description>If the computer is bound to Active Directory, returns the OU path as a slash-separated DNS-style string. Empty if not bound.</description>
<dataType>string</dataType>
<scriptContentsMac>#!/bin/zsh

# Updated by SecurityShrimp 2026
# Active Directory OU Extension Attribute
# Targets macOS 12 through 26 (Tahoe)
# dsconfigad and dscl /Search continue to work on Apple Silicon and Intel.
# If the Mac is unbound, dsconfigad returns "Not bound..." and we exit empty
# so the EA doesn't pollute Jamf inventory with junk.

if ! /usr/sbin/dsconfigad -show 2&gt;/dev/null | /usr/bin/grep -q "Computer Account"; then
echo "&lt;result&gt;&lt;/result&gt;"
exit 0
fi

adComputer=$(/usr/sbin/dsconfigad -show | /usr/bin/awk -F'= ' '/Computer Account/ { gsub(/^[ \t]+|[ \t]+$/, "", $2); print $2; exit }')

ou=$(/usr/bin/dscl /Search read "/Computers/${adComputer}" dsAttrTypeNative:distinguishedName 2&gt;/dev/null \
| /usr/bin/awk '/distinguishedName/ {found=1; next} found {print; exit}' \
| /usr/bin/sed -E 's/^[[:space:]]+//; s/^CN=[^,]+,//; s/OU=//g; s/,DC=/./; s/DC=//g' \
| /usr/bin/awk -F',' '{
out=""
for (i=NF; i&gt;1; i--) out = out $i "/"
print out $1
}')

echo "&lt;result&gt;${ou}&lt;/result&gt;"
</scriptContentsMac>
<scriptContentsWindows/>
</extensionAttribute>
21 changes: 20 additions & 1 deletion Active Power Management Profile.xml
Original file line number Diff line number Diff line change
@@ -1 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?><extensionAttribute> <displayName>Active Power Management Profile</displayName> <displayInCategory>Power Management</displayInCategory> <description>This attribute displays the power management profile that is currently active on the machine. This attribute applies to both Mac and Windows.</description> <dataType>string</dataType> <scriptContentsMac>#!/bin/shecho "&lt;result&gt;`/usr/bin/pmset -g 2>&amp;1 | grep \* | awk '{$NF=""; print $0}'`&lt;/result&gt;" </scriptContentsMac> <scriptTypeWindows>VBScript</scriptTypeWindows> <scriptContentsWindows>On Error Resume NextDim WshShellDim oExecDim strPowerProfileSet WshShell = WScript.CreateObject("Wscript.Shell")Set oExec = WshShell.Exec("powercfg -GETACTIVESCHEME")strPowerProfile = oExec.StdOut.ReadAllstrPowerProfile = Replace (strPowerProfile, Chr(40), "", 58) strPowerProfile = Replace (strPowerProfile, Chr(41), "")WScript.Echo "&lt;result&gt;" &amp; strPowerProfile &amp; "&lt;/result&gt;"</scriptContentsWindows></extensionAttribute>
<?xml version="1.0" encoding="UTF-8"?>
<extensionAttribute>
<displayName>Active Power Management Profile</displayName>
<displayInCategory>Power Management</displayInCategory>
<description>Reports the active pmset profile (e.g. "Battery Power", "AC Power", "UPS Power"). pmset marks the active profile with an asterisk.</description>
<dataType>string</dataType>
<scriptContentsMac>#!/bin/zsh

# Updated by SecurityShrimp 2026
# Active Power Management Profile Extension Attribute
# Targets macOS 12 through 26 (Tahoe), Intel and Apple Silicon
# pmset -g lists profile sections; the currently active one is prefixed
# with "*". We strip that marker and trailing colon for a clean label.

profile=$(/usr/bin/pmset -g 2&gt;/dev/null \
| /usr/bin/awk '/^\*/ { sub(/^\*[[:space:]]*/, ""); sub(/:$/, ""); print; exit }')

echo "&lt;result&gt;${profile:-Unknown}&lt;/result&gt;"
</scriptContentsMac>
</extensionAttribute>
77 changes: 36 additions & 41 deletions Active_Network_Interface.xml
Original file line number Diff line number Diff line change
@@ -1,44 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<extensionAttribute>
<displayName>Active Network Interface</displayName>
<description/>
<dataType>string</dataType>
<scriptContentsMac>#!/bin/bash&#13;
ref=$(/usr/bin/sw_vers -productVersion | awk '{print substr($1,4,2)}')&#13;
case $ref in&#13;
[0-4] ) ntwkset="/System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Support/networksetup -listnetworkserviceorder"&#13;
;;&#13;
*) ntwkset="networksetup -listnetworkserviceorder"&#13;
;;&#13;
esac&#13;
&#13;
ifconfigoutput='&#13;
BEGIN { print_it = 0 }&#13;
/status: active/ { print_it = 1 }&#13;
/^($|[^\t])/ { if(print_it) print buffer; buffer = $0; print_it = 0 }&#13;
/^\t/ { buffer = buffer "\n" $0 }&#13;
END { if(print_it) print buffer }&#13;
'&#13;
&#13;
ntwkint=($(ifconfig -u | awk "$ifconfigoutput" | awk '/flags/{print substr($1,1,3)}'))&#13;
/bin/echo -n $"&lt;result&gt;"&#13;
for x in "${ntwkint[@]}"&#13;
do&#13;
echo `$ntwkset | grep "$x" | sed -e 's/[)(]//g;s/,//g;s/.*Port: //g;s/Device:\ //g'`&#13;
done&#13;
echo "&lt;/result&gt;"</scriptContentsMac>
<scriptContentsWindows>On Error Resume Next&#13;
strComputer = "." &#13;
Set objWMIService = GetObject("winmgmts:\\" &amp; strComputer &amp; "\root\CIMV2") &#13;
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration",,48) &#13;
intmetric = 999 &#13;
For Each objItem in colItems &#13;
If objitem.ipenabled = True then&#13;
If objItem.IPConnectionMetric &lt; intmetric then&#13;
stractiveconnection = objItem.description&#13;
intmetric = objItem.IPConnectionMetric&#13;
End If&#13;
End If &#13;
Next&#13;
WScript.Echo "&lt;result&gt;" &amp; stractiveconnection &amp; "&lt;/result&gt;"</scriptContentsWindows>
<displayName>Active Network Interface</displayName>
<description>Returns the human-readable service name(s) of every currently active network interface (e.g. "Wi-Fi", "USB 10/100/1000 LAN").</description>
<dataType>string</dataType>
<scriptContentsMac>#!/bin/zsh

# Updated by SecurityShrimp 2026
# Active Network Interface Extension Attribute
# Targets macOS 12 through 26 (Tahoe), Intel and Apple Silicon
# Finds every ifconfig device marked "status: active" and maps each BSD
# name (en0, en1, ...) to its Service name via networksetup. Multiple
# active services are joined with ", ".

active=("${(@f)$(/sbin/ifconfig -u 2&gt;/dev/null \
| /usr/bin/awk '
/^[a-z0-9]+:/ { iface = substr($1, 1, length($1) - 1); st = "" }
/status:/ { st = $2; if (st == "active") print iface }
' | /usr/bin/sort -u)}")

order=$(/usr/sbin/networksetup -listnetworkserviceorder 2&gt;/dev/null)

results=()
for dev in "${active[@]}"; do
[[ -z "$dev" ]] &amp;&amp; continue
svc=$(echo "$order" | /usr/bin/awk -v d="Device: $dev)" '
index($0, d) { print prev; exit }
{ prev = $0 }
' | /usr/bin/sed -E 's/^\([0-9]+\)[[:space:]]+//')
[[ -n "$svc" ]] &amp;&amp; results+=("$svc")
done

if (( ${#results[@]} == 0 )); then
echo "&lt;result&gt;None&lt;/result&gt;"
else
echo "&lt;result&gt;${(j:, :)results}&lt;/result&gt;"
fi
</scriptContentsMac>
</extensionAttribute>
26 changes: 25 additions & 1 deletion Adobe Update Server.xml
Original file line number Diff line number Diff line change
@@ -1 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?><extensionAttribute> <displayName>Adobe Update Server</displayName> <displayInCategory>Software Updates</displayInCategory> <description>This attribute returns the DNS/IP address of the Adobe Update Server that is set on the client machine.</description> <dataType>string</dataType> <scriptContentsMac>#!/bin/shupdaterConfigFile="/Library/Application Support/Adobe/AAMUpdater/1.0/AdobeUpdater.Overrides"if [ -f "$updaterConfigFile" ]; thenresult=`/bin/cat "$updaterConfigFile" | grep -m 1 "Domain" | sed -e 's/&lt;[^&gt;]*&gt;//g' | sed 's:http\://::g' | awk '{print $1}'`echo "&lt;result&gt;$result&lt;/result&gt;"elseecho "&lt;result&gt;No Adobe Update Server Set&lt;/result&gt;"fi </scriptContentsMac></extensionAttribute>
<?xml version="1.0" encoding="UTF-8"?>
<extensionAttribute>
<displayName>Adobe Update Server</displayName>
<displayInCategory>Software Updates</displayInCategory>
<description>Returns the DNS/IP of the Adobe Update Server configured via AAMUpdater overrides.</description>
<dataType>string</dataType>
<scriptContentsMac>#!/bin/zsh

# Updated by SecurityShrimp 2026
# Adobe Update Server Extension Attribute
# Targets macOS 12 through 26 (Tahoe)
# Adobe still ships overrides at the AAMUpdater path on Creative Cloud.

cfg="/Library/Application Support/Adobe/AAMUpdater/1.0/AdobeUpdater.Overrides"

if [[ -f "$cfg" ]]; then
server=$(/usr/bin/grep -m1 "Domain" "$cfg" \
| /usr/bin/sed -E 's/&lt;[^&gt;]*&gt;//g; s|https?://||g' \
| /usr/bin/awk '{print $1}')
echo "&lt;result&gt;${server:-Not Set}&lt;/result&gt;"
else
echo "&lt;result&gt;No Adobe Update Server Set&lt;/result&gt;"
fi
</scriptContentsMac>
</extensionAttribute>
20 changes: 14 additions & 6 deletions AdobeReaderDCversion.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,21 @@
<displayName>Version of Acrobat Reader DC installed</displayName>
<displayInCategory/>
<dataType>string</dataType>
<description>Returns the version of Acrobat Reader DC installed.</description>
<scriptContentsMac>#!/bin/bash
<description>Returns the installed Adobe Acrobat Reader DC version, or N/A if absent.</description>
<scriptContentsMac>#!/bin/zsh

ver=`/usr/bin/defaults read /Applications/Adobe\ Acrobat\ Reader\ DC.app/Contents/Info CFBundleShortVersionString`
# Updated by SecurityShrimp 2026
# Acrobat Reader DC Version Extension Attribute
# Targets macOS 12 through 26 (Tahoe)

if [ $ver = "" ]; then
ver="N/A"
plist="/Applications/Adobe Acrobat Reader.app/Contents/Info.plist"
[[ ! -f "$plist" ]] &amp;&amp; plist="/Applications/Adobe Acrobat Reader DC.app/Contents/Info.plist"

if [[ -f "$plist" ]]; then
ver=$(/usr/bin/defaults read "$plist" CFBundleShortVersionString 2&gt;/dev/null)
echo "&lt;result&gt;${ver:-Unknown}&lt;/result&gt;"
else
echo "&lt;result&gt;N/A&lt;/result&gt;"
fi
echo "&lt;result&gt;$ver&lt;/result&gt;"</scriptContentsMac>
</scriptContentsMac>
</extensionAttribute>
Loading