Wo werden Datums- und Uhrzeiteinstellungen auf dem Mac gespeichert?


5

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

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


1
Ich vermute, dass es eine bessere programmiererorientierte Antwort auf diese Frage gibt. Kann ich Ihnen empfehlen, diesen Beitrag zu kennzeichnen und die Migration zu StackOverflow zu beantragen?
Jason Salaz

@ JasonSalaz Dies wäre bei Stack Overflow ein Thema.
Lri

Programmier- / API- / SDK-Fragen sind bei Stack Overflow kein Thema. "Ich muss das überprüfen programmatisch "sagt das OP.
Jason Salaz

Ich denke, die Frage, die ich zuerst stellen würde, lautet: Welche Methode möchten Sie verwenden, 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 Datei- und Plist-Lesefunktionen und die zweite mit der AppleScript-Oberfläche der Systemeinstellungen. 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 Fensterbereich aktiviert ist. Es sollte auch nicht lange dauern, um ein Skript zu erstellen.
Stu Wilson

Ich bin sehr versucht, dies zu bearbeiten, um es mehr in den Geltungsbereich zu bringen, aber ein Großteil der Kommentare würde dann als fehl am Platz erscheinen. Vielleicht kann ich darauf antworten, um zu klären, was hier thematisiert ist und was nicht.
bmike

Antworten:


1

Das Endergebnis des Kontrollkästchens "Datum und Uhrzeit automatisch einstellen" besteht darin, dass der ntpd-Daemon von launchd gestartet wird.

Sie können also prüfen, ob die Datei /var/run/ntpd.pid vorhanden ist oder ob ntpd als Prozess ausgeführt wird. Das ist alles gut und gut für die Site, aber der zweite Teil der Frage, wie dieser Status programmgesteuert abgerufen werden kann, ist hier grundsätzlich nicht relevant.

Wir erlauben eingeschränkte Programmierfragen für AppleScript, Automator und Shell-Scripting. Der volle Umfang der Entwicklerfragen (insbesondere bei neuen OSX-Einschränkungen wie Sandboxing) oder Code-Level-Fragen und Antworten zum Programmieren wird am besten gestellt https://stackoverflow.com/ eher als hier.


Abgesehen davon - hier ist die Hintergrundgeschichte darüber, warum dies eigentlich eine ziemlich komplizierte Frage ist. Launchd ist für das Starten und Stoppen des ntpd-Zeitdämpfungsdämons verantwortlich, wenn Sie diesen Schalter umschalten. Statt die Konfigurationsdatei für diesen "Job" zu laden oder zu entladen, verfügt das Tool stattdessen über eine interne Überschreibungsplist-Datei, die für bestimmte Jobs den Status "true / false" hat deaktiviert sein, obwohl sie normalerweise ausgeführt werden sollten. Wenn Sie das Kontrollkästchen Systemeinstellungen in Datum & amp; Uhrzeit, Diese Datei ändert den Wert des deaktivierten Schlüssels am Ende der Datei in oder, wenn die automatische Zeitmessung deaktiviert ist (jeweils):

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

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

1

Ich kenne keinen rein programmatischen Weg, um ihn zu bekommen, aber den systemsetup Befehl kann es tun:

$ systemsetup -getusingnetworktime
Network Time: On

Dadurch wird der NTP-Server für Ihren Mac "systemsetup -setnetworktimeserver & lt; ntpserver & gt;" festgelegt. und "systemsetup -getnetworktimeserver", um den aktuellen Zeitserver abzurufen.
grantc

0

ich fand diese Diskussion über die Diskussionsrunden von Apple. Es beschreibt, wie Sie die Uhrzeit in der Menüleiste erhalten, aber damit auch, wie Sie programmgesteuert zur Plist gelangen.


Können Sie bitte weitere Informationen zu Ihrer Antwort hinzufügen? Und fügen Sie die Website als Quelle hinzu?
Loïc Wolff

sicher kein Problem.
Michiel

Vielen Dank für Ihre Antwort, aber com.apple.GlobalPreferences.plist ist auf meiner Box in keinen Bibliotheks- / Voreinstellungspositionen vorhanden
Akbar

1
Das liegt wahrscheinlich daran, dass die Datei aufgerufen wird /Library/Preferences/.GlobalPreferences.plist
nohillside
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.