¿Dónde se guardan los datos de preferencia de fecha y hora en Mac?

Necesito verificar mediante programación si Set Date and Time automaticallyestá marcado o no en las Preferencias del sistema Mac.

No encontré ningún archivo .plist que contenga esta información, ¿alguien puede decirme dónde puedo encontrar esta información?

Sospecho que puede haber una mejor respuesta orientada al programador a esta pregunta. ¿Podría recomendarle que marque esta publicación y solicite que se migre a StackOverflow?
@JasonSalaz Esto estaría fuera de tema en Stack Overflow.
Las preguntas sobre programación/API/SDK no están fuera de tema en Stack Overflow. "Necesito verificar mediante programación ", dice el OP.
Supongo que la pregunta que haría primero es... qué método desea usar para almacenar la información y en qué formato. Puedo pensar en al menos dos formas de obtener la información usando AppleScript, una usando las funciones de lectura de archivos y plist, y la segunda usando la interfaz AppleScript de Preferencias del sistema. El segundo método también podría proporcionar un método para configurar la opción si no está configurada, sin embargo, no creo que sea posible si la seguridad en el panel está activada. No debería tomar mucho tiempo armar un script para hacerlo tampoco.
Estoy muy tentado a editar esto para que esté más dentro del alcance, pero muchos de los comentarios parecerían fuera de lugar. Tal vez pueda responderlo para ayudar a aclarar qué está relacionado con el tema aquí y qué no.

Respuestas (3)

El resultado final de la casilla de verificación "Establecer fecha y hora automáticamente" es que el demonio ntpd se inicia con launchd.

Por lo tanto, podría verificar la presencia del archivo /var/run/ntpd.pid o, presumiblemente, verificar si ntpd se está ejecutando como un proceso. Todo esto está bien para el sitio, pero la segunda parte de la pregunta sobre cómo recuperar este estado mediante programación está básicamente fuera de tema aquí.

Permitimos preguntas de programación limitadas de AppleScript, Automator y shell scripting. El alcance completo de las preguntas de los desarrolladores (especialmente con las nuevas restricciones de OSX, como el sandboxing) o las preguntas y respuestas a nivel de código sobre cómo programar se hacen mejor en https://stackoverflow.com/ en lugar de aquí.


Con eso fuera del camino, aquí está la historia de fondo sobre por qué esta es una pregunta bastante complicada. Launchd es responsable de iniciar y detener el demonio de mantenimiento de tiempo de ntpd cuando activa ese interruptor y, en lugar de cargar o descargar el archivo de configuración para ese "trabajo", la herramienta tiene un archivo plist de anulación interno que tiene un estado verdadero/falso para ciertos trabajos deshabilitarse a pesar de que normalmente deberían ejecutarse. Cuando activa la casilla de verificación Preferencias del sistema en Fecha y hora, este archivo cambia el valor de la clave Deshabilitada al final del archivo para que sea o cuando la hora normal automática esté desactivada o activada (respectivamente):

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

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

No conozco una forma puramente programática de obtenerlo, pero el systemsetupcomando puede hacerlo:

$ systemsetup -getusingnetworktime
Network Time: On
Esto configurará el servidor NTP para su Mac "systemsetup -setnetworktimeserver <ntpserver>" y "systemsetup -getnetworktimeserver" para obtener el servidor de hora actual.

Encontré esta discusión en los foros de discusión de Apple. Describe cómo obtener la hora en la barra de menú, pero también cómo llegar al plist mediante programación.

¿Puedes agregar más información sobre tu respuesta? ¿Y agregar el sitio web como fuente?
claro, no hay problema.
Gracias por su respuesta, pero com.apple.GlobalPreferences.plist no existe en mi caja en ninguna ubicación de Biblioteca/Preferencias
Eso es probablemente porque el archivo se llama/Library/Preferences/.GlobalPreferences.plist