set computername to computer name of (system info)
set hostname to host name of (system info)
set shortusername to short user name of (system info)
set longusername to long user name of (system info)
set userid to user ID of (system info)
set userlocale to user locale of (system info)
set bootvolume to boot volume of (system info)
set homedirectory to home directory of (system info)
set cputype to CPU type of (system info)
set cpuspeed to CPU speed of (system info)
set physicalmemory to physical memory of (system info)
set systemversion to system version of (system info)
set primaryethernetaddress to primary Ethernet address of (system info)
set ipv4address to IPv4 address of (system info)
set applescriptversion to AppleScript version of (system info)
set applescriptstudioversion to AppleScript Studio version of (system info)
set macmodelnumber to (do shell script "/usr/sbin/system_profiler SPHardwareDataType | sed -En '/Model Identifier:/ s/^[^:]+: *//p'")
set macserialnumber to (do shell script "ioreg -l | grep IOPlatformSerialNumber | cut -d '\"' -f4")
display dialog "Computer Model Number: " & macmodelnumber & return & "Computer Serial Number: " & macserialnumber & return & return & "Computer Name: " & computername & return & "Host Name: " & hostname & return & "Short User Name: " & shortusername & return & "Long User Name: " & longusername & return & "User ID: " & userid & return & "User Locale: " & userlocale & return & return & "Boot Volume: " & bootvolume & return & "Home Directory: " & homedirectory & return & "CPU Type: " & cputype & return & "CPU Speed: " & cpuspeed / 1000 & " GHz." & return & "Physical Memory: " & physicalmemory / 1000 & " GB." & return & "Operating System Version: " & systemversion & return & return & "Primary Ethernet MAC Address: " & primaryethernetaddress & return & "IPv4 Address: " & ipv4address & return & return & "AppleScript Version: " & applescriptversion & return & "AppleScript Studio Version (deprecated in OS X v10.6): " & applescriptstudioversion
1: cpuspeed
Intel iMac: This script produces the expected results.
Apple Silicon Mac Studio: This script produces the expected results, except that the “cpuspeed” field displays “missing value GHz.”
2: Is there a command to get the Mac Studio to return “Mac Studio13,1” instead of “Mac13,1?”
3: Is there a command to get the Mac to return the “AXXXX” value, and, the “MXXXXLL/A” value?
4: Is there a command to get the Mac Studio to return “Apple M1 Max” or “Apple M1 Max ARM64E” instead of “ARM64E?”
Thank you.
Kurt
A1. “system info” with Apple Silicon Mac returns “missing value” as clock speed. That is a common behavior. The clock speed of Apple Silicon is dynamically changed in very very short period. So, there is no use to know clock maximum speed in catalog specification.
A2. No. ID format of Mac has been changed forever. If you want to know the model from machine ID, you can download “MacTracker” app from Mac App Store.
A3. I don’t know about it. See MacTracker.
A4. This AppleScript will return such information as you want. Try this on your Mac Studio and report the result here.
set aTargLabel to "machdep.cpu.brand_string:"
set aRes to retFilteredSysctrlValue(aTargLabel) of me
--> "Intel(R) Core(TM) i7-3720QM CPU @ 2.60GHz"
--> "Apple M1"
--> "Apple M2"
on retFilteredSysctrlValue(aTargLabel)
try
set aRes to do shell script "sysctl -a | grep " & aTargLabel
on error
return ""
end try
set aLen to length of aTargLabel
set bRes to text (aLen + 2) thru -1 of aRes
return bRes
end retFilteredSysctrlValue
I wrote these information on my ebook.
https://piyomarusoft.booth.pm/items/4923559
https://piyomarusoft.booth.pm/items/4923559
Hi, Piyomaru.
set computername to computer name of (system info)
set hostname to host name of (system info)
set shortusername to short user name of (system info)
set longusername to long user name of (system info)
set userid to user ID of (system info)
set userlocale to user locale of (system info)
set bootvolume to boot volume of (system info)
set homedirectory to home directory of (system info)
set cputype to CPU type of (system info)
set cpuspeed to CPU speed of (system info)
set physicalmemory to physical memory of (system info)
set systemversion to system version of (system info)
set primaryethernetaddress to primary Ethernet address of (system info)
set ipv4address to IPv4 address of (system info)
set applescriptversion to AppleScript version of (system info)
set applescriptstudioversion to AppleScript Studio version of (system info)
set macmodelnumber to (do shell script "/usr/sbin/system_profiler SPHardwareDataType | sed -En '/Model Identifier:/ s/^[^:]+: *//p'")
set macserialnumber to (do shell script "ioreg -l | grep IOPlatformSerialNumber | cut -d '\"' -f4")
set aTargLabel to "machdep.cpu.brand_string:"
set aRes to retFilteredSysctrlValue(aTargLabel) of me
--> "Intel(R) Core(TM) i7-3720QM CPU @ 2.60GHz"
--> "Apple M1"
--> "Apple M2"
on retFilteredSysctrlValue(aTargLabel)
try
set aRes to do shell script "sysctl -a | grep " & aTargLabel
on error
return ""
end try
set aLen to length of aTargLabel
set bRes to text (aLen + 2) thru -1 of aRes
return bRes
end retFilteredSysctrlValue
display dialog "Computer Model Number: " & macmodelnumber & return & "Computer Serial Number: " & macserialnumber & return & return & "Computer Name: " & computername & return & "Host Name: " & hostname & return & "Short User Name: " & shortusername & return & "Long User Name: " & longusername & return & "User ID: " & userid & return & "User Locale: " & userlocale & return & return & "Boot Volume: " & bootvolume & return & "Home Directory: " & homedirectory & return & "CPU Type: " & cputype & return & "CPU Speed: " & cpuspeed & " GHz." & return & "Physical Memory: " & physicalmemory / 1000 & " GB." & return & "Operating System Version: " & systemversion & return & return & "Primary Ethernet MAC Address: " & primaryethernetaddress & return & "IPv4 Address: " & ipv4address & return & return & "AppleScript Version: " & applescriptversion & return & "AppleScript Studio Version (deprecated in OS X v10.6): " & applescriptstudioversion & return & "CPU Type: " & retFilteredSysctrlValue
This script returned the error message:
error "Can’t make «handler retFilteredSysctrlValue» into type Unicode text." number -1700 from «handler retFilteredSysctrlValue» to Unicode text
Kurt
Your failure is two.
One, the position of handler “retFilteredSysctrlValue” is wrong. It must be the end of script.
Two, you had to use variable “aRes” instead of “retFilteredSysctrlValue”. retFilteredSysctrlValue is a handler not a variable.
This works.
set computername to computer name of (system info)
set hostname to host name of (system info)
set shortusername to short user name of (system info)
set longusername to long user name of (system info)
set userid to user ID of (system info)
set userlocale to user locale of (system info)
set bootvolume to boot volume of (system info)
set homedirectory to home directory of (system info)
set cputype to CPU type of (system info)
set cpuspeed to CPU speed of (system info)
set physicalmemory to physical memory of (system info)
set systemversion to system version of (system info)
set primaryethernetaddress to primary Ethernet address of (system info)
set ipv4address to IPv4 address of (system info)
set applescriptversion to AppleScript version of (system info)
set applescriptstudioversion to AppleScript Studio version of (system info)
set macmodelnumber to (do shell script "/usr/sbin/system_profiler SPHardwareDataType | sed -En '/Model Identifier:/ s/^[^:]+: *//p'")
set macserialnumber to (do shell script "ioreg -l | grep IOPlatformSerialNumber | cut -d '\"' -f4")
set aTargLabel to "machdep.cpu.brand_string:"
set aRes to retFilteredSysctrlValue(aTargLabel) of me
display dialog "Computer Model Number: " & macmodelnumber & return & "Computer Serial Number: " & macserialnumber & return & return & "Computer Name: " & computername & return & "Host Name: " & hostname & return & "Short User Name: " & shortusername & return & "Long User Name: " & longusername & return & "User ID: " & userid & return & "User Locale: " & userlocale & return & return & "Boot Volume: " & bootvolume & return & "Home Directory: " & homedirectory & return & "CPU Type: " & cputype & return & "CPU Speed: " & cpuspeed & " GHz." & return & "Physical Memory: " & physicalmemory / 1000 & " GB." & return & "Operating System Version: " & systemversion & return & return & "Primary Ethernet MAC Address: " & primaryethernetaddress & return & "IPv4 Address: " & ipv4address & return & return & "AppleScript Version: " & applescriptversion & return & "AppleScript Studio Version (deprecated in OS X v10.6): " & applescriptstudioversion & return & "CPU Type: " & aRes
on retFilteredSysctrlValue(aTargLabel)
try
set aRes to do shell script "sysctl -a | grep " & aTargLabel
on error
return ""
end try
set aLen to length of aTargLabel
set bRes to text (aLen + 2) thru -1 of aRes
return bRes
end retFilteredSysctrlValue
1 Like
Hi, Piyomaru.
Your code works well. My gratitude.
Here is the code that I am using:
set computername to computer name of (system info)
set hostname to host name of (system info)
set shortusername to short user name of (system info)
set longusername to long user name of (system info)
set userid to user ID of (system info)
set userlocale to user locale of (system info)
set bootvolume to boot volume of (system info)
set homedirectory to home directory of (system info)
set cputype to CPU type of (system info)
set cpuspeed to CPU speed of (system info)
set physicalmemory to physical memory of (system info)
set systemversion to system version of (system info)
set primaryethernetaddress to primary Ethernet address of (system info)
set ipv4address to IPv4 address of (system info)
set applescriptversion to AppleScript version of (system info)
set applescriptstudioversion to AppleScript Studio version of (system info)
set macmodelnumber to (do shell script "/usr/sbin/system_profiler SPHardwareDataType | sed -En '/Model Identifier:/ s/^[^:]+: *//p'")
set macserialnumber to (do shell script "ioreg -l | grep IOPlatformSerialNumber | cut -d '\"' -f4")
set aTargLabel to "machdep.cpu.brand_string:"
set aRes to retFilteredSysctrlValue(aTargLabel) of me
display dialog "Computer Model Number: " & macmodelnumber & return & "Computer Serial Number: " & macserialnumber & return & return & "Computer Name: " & computername & return & "Host Name: " & hostname & return & "Short User Name: " & shortusername & return & "Long User Name: " & longusername & return & "User ID: " & userid & return & "User Locale: " & userlocale & return & return & "Boot Volume: " & bootvolume & return & "Home Directory: " & homedirectory & return & "CPU Type: " & cputype & return & "CPU Model: " & " " & aRes & return & "CPU Speed: " & cpuspeed & " GHz." & return & "Physical Memory: " & physicalmemory / 1000 & " GB." & return & "Operating System Version: " & systemversion & return & return & "Primary Ethernet MAC Address: " & primaryethernetaddress & return & "IPv4 Address: " & ipv4address & return & return & "AppleScript Version: " & applescriptversion & return & "AppleScript Studio Version: " & applescriptstudioversion & " (deprecated in OS X v10.6)"
on retFilteredSysctrlValue(aTargLabel)
try
set aRes to do shell script "sysctl -a | grep " & aTargLabel
on error
return ""
end try
set aLen to length of aTargLabel
set bRes to text (aLen + 2) thru -1 of aRes
return bRes
end retFilteredSysctrlValue
If you thank for me, I want to know the result of retFilteredSysctrlValue handler with Mac Studio.