How do I re-activate greyed out System Preferences?

gspiese
New Contributor III

Used Enabled System Preference Panes template to grey out the Security & Privacy and Desktop & Screen Saver Preference Panes. I removed <string>com.apple.preference.desktopscreeneffect</string> and <string>com.apple.preference.security</string> from the list to accomplish this. It worked fine, but also greyed out iCloud and Flash Player preference panes in Lion, since they are not included in the template. I was able to reactive the security and Screen Saver prefs pane by using the original template again, but iCloud and Flash Player are still greyed out. Can anyone tell me how to reactivate those two pref panes?

1 ACCEPTED SOLUTION

mm2270
Legendary Contributor III

Yes, that's "InternetAccounts.prefPane", also located at /System/Library/PreferencePanes.

$ defaults read /System/Library/PreferencePanes/InternetAccounts.prefPane/Contents/Info

    BuildMachineOSBuild = 11E29;
    CFBundleDevelopmentRegion = English;
    CFBundleExecutable = InternetAccounts;
    CFBundleIdentifier = "com.apple.preferences.internetaccounts";
    CFBundleInfoDictionaryVersion = "6.0";
    CFBundleName = "Mail, Contacts & Calendars";
    CFBundlePackageType = BNDL;
    CFBundleShortVersionString = "1.1";
    CFBundleSignature = "????";
    CFBundleVersion = 2;
    DTCompiler = "";
    DTPlatformBuild = 11E29;
    DTPlatformVersion = GM;
    DTSDKBuild = 11E29;
    DTSDKName = "";
    DTXcode = 0410;
    DTXcodeBuild = 11E29;
    NSMainNibFile = InternetAccountsPref;
    NSPrefPaneIconFile = "InternetAccounts.icns";
    NSPrefPaneSearchParameters = InternetAccounts;
    NSPrincipalClass = InternetAccountsPref;

Note the CFBundleName = "Mail, Contacts & Calendars"; line. You still need to use the CFBundleIdentifier to add it back in to the enabled prefPanes though.

View solution in original post

7 REPLIES 7

mm2270
Legendary Contributor III

Enabling System Preference Panes requires getting the CFBundleIdentifer for the PrefPane and adding it into the array.
For example, for the FlashPlayer plug-in it will be something like this:

<string>com.adobe.flashplayerpreferences</string>

Regarding iCloud, you need to be sure if you added it back in that you entered the exact Bundle Identifier string. You can get that easily at the command line using the following:

defaults read /System/Library/PreferencePanes/iCloudPref.prefPane/Contents/Info CFBundleIdentifier

On my Mac that returns "com.apple.preferences.icloud"

Do the same for any 3rd party Pref Panes, but of course use the correct path (usually /Library/PreferencePanes/)

donmontalvo
Esteemed Contributor III

@mm2270 Yet another nugget, awesome!

I got the same result on 10.6 and 10.7...

$ defaults read /System/Library/PreferencePanes/iCloudPref.prefPane/Contents/Info CFBundleIdentifier
com.apple.preferences.icloud

and

$ defaults read /Library/PreferencePanes/Flash Player.prefPane/Contents/Info CFBundleIdentifier
com.adobe.flashplayerpreferences

Sounds like you'll need to add these:

<string>com.apple.preferences.icloud</string>
<string>com.adobe.flashplayerpreferences</string>

NOTE: The Flash Player pref pane is in /Library since it's 3rd party.

Don

--
https://donmontalvo.com

gspiese
New Contributor III

Yes that works, I found that too after READING the instruction in the template after posting... sorry! Now I can't seem to find the Identifier for Mail, Contacts & Calendars. I've looked in Library and System/CoreServices but didn't see them. Anyone have an idea where they are stored?

mm2270
Legendary Contributor III

Yes, that's "InternetAccounts.prefPane", also located at /System/Library/PreferencePanes.

$ defaults read /System/Library/PreferencePanes/InternetAccounts.prefPane/Contents/Info

    BuildMachineOSBuild = 11E29;
    CFBundleDevelopmentRegion = English;
    CFBundleExecutable = InternetAccounts;
    CFBundleIdentifier = "com.apple.preferences.internetaccounts";
    CFBundleInfoDictionaryVersion = "6.0";
    CFBundleName = "Mail, Contacts & Calendars";
    CFBundlePackageType = BNDL;
    CFBundleShortVersionString = "1.1";
    CFBundleSignature = "????";
    CFBundleVersion = 2;
    DTCompiler = "";
    DTPlatformBuild = 11E29;
    DTPlatformVersion = GM;
    DTSDKBuild = 11E29;
    DTSDKName = "";
    DTXcode = 0410;
    DTXcodeBuild = 11E29;
    NSMainNibFile = InternetAccountsPref;
    NSPrefPaneIconFile = "InternetAccounts.icns";
    NSPrefPaneSearchParameters = InternetAccounts;
    NSPrincipalClass = InternetAccountsPref;

Note the CFBundleName = "Mail, Contacts & Calendars"; line. You still need to use the CFBundleIdentifier to add it back in to the enabled prefPanes though.

gspiese
New Contributor III

I have been able to create a Managed Profile using a collection of Managed Preferences that grey-out Preference Panes I don't want users to have access to. I set each Managed Preference to User Level Enforced. I was hoping that this setting would not grey-out the Preference Pane for Administrators, but grey it out for standard, non-admins, but it apparently doesn't work that way. Is there any way to get this affect just using JSS or is it only possible using OS X Server Workgroup Manager?

Toggling between System Level enforcement and User Level enforcement didn't change the greyed-out state of the Preference Panes I want greyed-out. I'm not sure I understand the difference although I did rtfm, but it looks like these are just hooks to 3rd party control like OS X Server. Can anyone clarify this setting?

rob_potvin
Contributor III
Contributor III

There is now way around this, your local admins will have the same greyed out preferences.

What I did is create a technician only Self Service policy that really was a script that deleted the /Library/Managed Preferences/ folder

So my techs would login as an admin, run that Self Service Policy and then they would have all access again to those panels.

To re-enable you can restart or just open terminal and run the

sudo jamf mcx

cheers

djianp
New Contributor

Thanks guys! @mm2270, how can I find the array I need to add the Bundle identifier string to? Currently my preference pane has icloud and a few others greyed out and I'm trying to re enable them

Thanks a lot for your help!

Pierre