macOS で構成プロファイルを CLI / Terminal で確認する方法を調べた
profiles コマンド
profiles list コマンドを使うといいらしい。 UUID のリストを取り出せた
$ sudo profiles list -all
_computerlevel[1] attribute: profileIdentifier: 7652B8FE-93F6-427E-A132-4F0032BC2E25
_computerlevel[2] attribute: profileIdentifier: CE05F367-D6B1-44F5-BE4E-75092CC92CCF
_computerlevel[3] attribute: profileIdentifier: 00000000-0000-0000-A000-4A414D460003
_computerlevel[4] attribute: profileIdentifier: b6410f7f-7e37-48aa-b4ba-3b0532670ded
hito[5] attribute: profileIdentifier: F6FDEB75-31CB-48E1-849A-4A63DB0E310C
_computerlevel[6] attribute: profileIdentifier: 9BB724A3-3C4C-4678-B94A-7BD131E3533C
_computerlevel[7] attribute: profileIdentifier: 95307970-9F31-49A3-929E-38DD7FFE6798
_computerlevel[8] attribute: profileIdentifier: 4832ABA3-49D0-41EE-A154-740AABB187CB
_computerlevel[9] attribute: profileIdentifier: B6CA5188-4CE3-4E0E-A7FD-926D691F6ECA
_computerlevel[10] attribute: profileIdentifier: 5FEA911C-C63C-4568-A567-9D3AFF96FA84
_computerlevel[11] attribute: profileIdentifier: AD23B302-7FA9-40A8-ABEE-6BE1E75B7252
_computerlevel[12] attribute: profileIdentifier: BB3C1710-A7FB-4465-9433-B05AF0F62F98
_computerlevel[13] attribute: profileIdentifier: 2E9C4A81-5839-4DFA-A03F-3CF389DE927F
_computerlevel[14] attribute: profileIdentifier: C70479F3-F6FB-4839-8347-C1C8C10F5648
_computerlevel[15] attribute: profileIdentifier: B04EAFC1-48DA-461D-9DA2-4A2593BEFB5C
_computerlevel[16] attribute: profileIdentifier: com.jamf.notifications.settings
_computerlevel[17] attribute: profileIdentifier: 4a90db4f-aa61-4909-8f45-d72e204733f9
_computerlevel[18] attribute: profileIdentifier: com.jamfsoftware.tcc.management
There are 18 configuration profiles installed
profiles show を実行すると構成プロファイルの詳細が取り出せる。下記は Jamf で配布した構成プロファイルです。
$ sudo profiles show
...
_computerlevel[2] attribute: name: Falcon Notifactions
_computerlevel[2] attribute: installationDate: 2022-10-07 02:24:49 +0000
_computerlevel[2] attribute: organization: ***
_computerlevel[2] attribute: profileIdentifier: BB3C1710-A7FB-4465-9433-B05AF0F62F98
_computerlevel[2] attribute: profileUUID: BB3C1710-A7FB-4465-9433-B05AF0F62F98
_computerlevel[2] attribute: profileType: Configuration
_computerlevel[2] attribute: removalDisallowed: TRUE
_computerlevel[2] attribute: version: 1
_computerlevel[2] attribute: containsComputerItems: TRUE
_computerlevel[2] attribute: installedByMDM: TRUE
_computerlevel[2] attribute: internaldata: TRUE
_computerlevel[2] payload count = 1
_computerlevel[2] payload[1] name = Notifications Payload
_computerlevel[2] payload[1] description = (null)
_computerlevel[2] payload[1] type = com.apple.notificationsettings
_computerlevel[2] payload[1] organization = JAMF Software
_computerlevel[2] payload[1] identifier = C462E5FD-60CC-43D9-B91F-423C330C3513
_computerlevel[2] payload[1] uuid = 382A2208-A159-46EC-96F2-76FC2C00CAF3
man はこんな感じ ( man profiles | col -b | pbcopy
で出した )
色々サブコマンドがついているが、細かくは調べていない
profiles(1) General Commands Manual profiles(1)
NAME
profiles - Profiles Tool for macOS.
SYNOPSIS
profiles verb [options]
DESCRIPTION
profiles is used to handle various profile types on macOS. Starting with
macOS 11.0 (profiles tool 8.0 or later), this tool cannot be
used to install configuration profiles. You should add your profiles
using the System Preferences Profiles
preference pane. Additionally, startup profiles are no longer
supported.
VERBS
Each command verb is listed with its description and optional individual
arguments. Most commands use the -type option to determine which kind of
profile should be used in the command. For those commands, if no type is
specified, the default will be to use the configuration profile type.
help
Shows abbreviated help
list -type profile_type -user user_name -output output_path
List profiles for a user or when running as root, the device.
show -type profile_type -user user_name -output output_path
Show expanded information for profiles. For an enrollment,
this will show the current DEP configuration, and the call may
be rate limited to once every 23 hours.
remove -type profile_type -user user_name -identifier identifier -uuid
uuid -path file_path -forced -all
Remove profiles. Attempting to remove a configuration profile
requring a removal password without the correct password will
fail.
status -type profile_type
Display status of the profiles installed on this client. When
displaying the enrollment type status, if the MDM enrollment was
user approved, the status output will show "(User Approved)".
sync -type configuration
For configuration profiles, synchronize current installed set of
profiles with the local users and remove any configuration
profiles that belong to users that no longer exist on this
computer.
renew -type profile_type -identifier identifier -output output_path
For configuration profiles, renews any certificates for the
specified profile. For Device Enrollment Program (DEP)
enrollments, retry to obtain the device enrollment
configuration, and re-enable the user notification if enrollment
wasn't completed.
validate -type profile_type -path file_path
For provisioning profiles, validate the provisioning profile
located at the file_path. For enrollments, re-validate the
installed DEP server information and update any local
information, displaying any major changes. If this information
is different from the current enrolled server, this will not
unenroll the client from the current server. This call may be
rate limited to once every 23 hours.
version
Displays current tool version.
OPTIONS
-type profile_type
The profile_type can be one of either: "configuration",
"provisioning", "bootstraptoken", or "enrollment" (DEP). If a
command requires a profile type and none is specified,
"configuration" will be used.
-path file_path
A file path or "-" to represent stdout. When used by the remove
command for startup profiles, this should only contain the file
name of the profile.
-user user_name
An OD short user name. In most cases if no user was specified,
then the current user will be used. If no user option was
specified and the process runs as root, the computer/device
profiles will be used in the command.
-uuid profile_uuid
A canonical form UUID to specify a profile's PayloadUUID, such as
5A15247B-899C-474D-B1D7-DBD82BDE5684. Only used by the remove
provisioning profile command.
-identifier profile_identifier
A profile identifier (PayloadIdentifier) to specify a profile.
-output output_path
The output path location. The output_path argument must be
specified to use this option, Use 'stdout' to send this informaton
to the console. File output will be written as an XML plist file,
or you can use 'stdout-xml' to write XML to the console. The
toplevel key of the dictionary will contain either the user name,
or _computerLevel for device or provisioning profile information.
-password password
An optional password used when removing a configuration profile
which requires the password removal option.
-forced
This will prevent confirmation requests, and when trying to remove
all configuration profles for a user, it will ignore any errors
during removal.
-all For configuration profiles, when running as root, the use of this
option with the list or show commands will display all profiles
installed on the system. When removing profiles, using this
option will remove all profiles for that user (or device).
-verbose
Display additional information.
PROFILE TYPES
configuration
A configuration profile.
provisioning
A provisioning profile.
enrollment
A device enrollment program (DEP) or mobile device management (MDM)
enrollment profile or feature.
bootstraptoken
Bootstrap Token options. Requires MDM supervised client.
EXAMPLES
profiles remove -path /profiles/testfile2.mobileconfig
Removes the configuration profile file
'/profiles/testfile2.mobileconfig' into the current user.
profiles list -type provisioning
Displays a list of installed provisioning profiles.
profiles list -all
When running as root, this will list all configuration profiles on
the system.
profiles show
Displays extended information for installed configuration profiles
for the current user.
profiles status -type startup
Displays information on whether or not startup profiles are set
up.
profiles remove -identifier com.example.profile1 -password pass
Removes any installed profiles with the identifier
com.example.profile1 in the current user and using a removal
password of 'pass'.
profiles show -type enrollment
Displays the current DEP configuration information.
profiles renew -type enrollment
Re-enables the DEP user notification enrollment messages.
profiles install -type bootstraptoken
Creates or updates the Bootstrap Token APFS record and escrows the
information to the server.
SEE ALSO
profiles.old(1)
macOS November 30, 2021 macOS
参考
krypted.com
構成プロファイルのペイロードの仕様は以下のドキュメントを読むといいのだろうか
https://developer.apple.com/business/documentation/Configuration-Profile-Reference.pdf
krypted.com
www.micss.biz
おまけ
man profiles | pbcopy
だと余計な文字が入り困ったのだが、下記のエントリを参考にして解決しました
orebibou.com