Wo werden die Datums- und Zeiteinstellungsdaten auf dem Mac gespeichert?

Ich muss programmgesteuert prüfen, ob Set Date and Time automaticallyin den Systemeinstellungen eines Mac aktiviert ist oder nicht.

Ich habe keine .plist-Datei gefunden, die diese Informationen enthielt. Kann mir jemand sagen, wo ich diese Informationen finden kann?

Ich vermute, dass es eine bessere programmiererorientierte Antwort auf diese Frage geben könnte. Könnte ich Ihnen empfehlen, diesen Beitrag zu markieren und zu beantragen, dass er zu StackOverflow migriert wird?
@JasonSalaz Dies wäre bei Stack Overflow kein Thema.
Programmier-/API-/SDK-Fragen sind bei Stack Overflow kein Thema. "Ich muss programmgesteuert überprüfen ", sagt das OP.
Ich nehme an, die Frage, die ich zuerst stellen würde, ist ... Welche Methode Sie verwenden möchten, um die Informationen zu speichern, und in welchem ​​​​Format. Ich kann mir mindestens zwei Möglichkeiten vorstellen, die Informationen mit AppleScript abzurufen, eine mit den Lesefunktionen für Dateien und plist und die zweite mit der AppleScript-Schnittstelle der Systemeinstellungen selbst. Die zweite Methode könnte auch eine Methode zum Festlegen der Option bereitstellen, wenn sie nicht festgelegt ist. Ich glaube jedoch nicht, dass dies möglich ist, wenn die Sicherheit im Bereich aktiviert ist. Es sollte auch nicht lange dauern, ein Skript dafür zu erstellen.
Ich bin sehr versucht, dies zu bearbeiten, um es sachgerechter zu machen, aber viele der Kommentare würden dann fehl am Platz erscheinen. Vielleicht kann ich es beantworten, um zu klären, was hier zum Thema gehört und was nicht.

Antworten (3)

Das Endergebnis des Kontrollkästchens „Datum und Uhrzeit automatisch festlegen“ ist, dass der ntpd-Daemon von launchd gestartet wird.

Sie könnten also prüfen, ob die Datei /var/run/ntpd.pid vorhanden ist, oder vermutlich prüfen, ob ntpd als Prozess ausgeführt wird. Das ist alles gut und schön für die Site, aber Ihr zweiter Teil zur Frage, wie dieser Status programmgesteuert abgerufen werden kann, ist hier im Grunde nicht zum Thema.

Wir erlauben eingeschränkte AppleScript-, Automator- und Shell-Scripting-Programmierfragen. Der volle Umfang der Entwicklerfragen (insbesondere mit neuen OSX-Einschränkungen wie Sandboxing) oder Fragen und Antworten auf Codeebene zum Programmieren werden am besten auf https://stackoverflow.com/ und nicht hier gestellt.


Damit aus dem Weg geräumt - hier ist die Hintergrundgeschichte darüber, warum dies eigentlich eine ziemlich komplizierte Frage ist. Launchd ist verantwortlich für das Starten und Stoppen des ntpd-Zeiterfassungs-Daemons, wenn Sie diesen Schalter umschalten, und anstatt die Konfigurationsdatei für diesen „Job“ zu laden oder zu entladen, verfügt das Tool stattdessen über eine interne Überschreibungs-PLIST-Datei, die für bestimmte Jobs einen True/False-Status hat deaktiviert werden, obwohl sie normalerweise laufen sollten. Wenn Sie das Kontrollkästchen „Systemeinstellungen“ in „Datum und Uhrzeit“ aktivieren, ändert diese Datei den Wert des deaktivierten Schlüssels am Ende der Datei, um zu sein, oder wenn die automatische Zeitmessung aus- oder eingeschaltet ist (jeweils).:

Von /private/var/db/launchd.db/com.apple.launchd/overrides.plist

    <key>org.ntp.ntpd</key>
    <dict>
            <key>Disabled</key>
            <false/>
    </dict>

Ich kenne keinen rein programmgesteuerten Weg, um es zu bekommen, aber der systemsetupBefehl kann es tun:

$ systemsetup -getusingnetworktime
Network Time: On
Dadurch wird der NTP-Server für Ihren Mac „systemsetup -setnetworktimeserver <ntpserver>“ und „systemsetup -getnetworktimeserver“ so eingestellt, dass er den aktuellen Zeitserver erhält.

Ich habe diese Diskussion in den Diskussionsforen von Apple gefunden. Es beschreibt, wie man die Uhrzeit in die Menüleiste bekommt, aber damit auch, wie man programmatisch zur plist kommt.

Können Sie Ihrer Antwort bitte weitere Informationen hinzufügen? Und die Website als Quelle hinzufügen?
sicher kein Problem.
Vielen Dank für Ihre Antwort, aber com.apple.GlobalPreferences.plist ist auf meiner Box an keinem Bibliotheks-/Preferences-Speicherort vorhanden
Das liegt wahrscheinlich daran, dass die Datei aufgerufen wird/Library/Preferences/.GlobalPreferences.plist