4 votos

¿Desencadenar la creación de una lista de preferencias específica?

Tengo la siguiente función:

hardware_model () {

  local hardware_mod
  hardware_mod=$(defaults read ~/Library/Preferences/com.apple.SystemProfiler.plist 'CPU Names' \
  | cut -sd '"' -f 4 \
  | uniq)

  write_header "Hardware Model" "$hardware_mod"
}

que devuelve, por ejemplo MacBook Air (13-inch, Early 2014) .

Sin embargo, en algunas máquinas -que ejecutan la misma versión de OS X- obtengo:

2018-08-20 11:59:30.331 defaults[25029:3478859] 
The domain/default pair of 
(/var/root/Library/Preferences/com.apple.SystemProfiler.plist, CPU 
Names) does not exist . 

Mi pregunta es: ¿qué específico acción(es) desencadenan la creación de: com.apple.SystemProfiler.plist ? Me gustaría poder crear este archivo de forma fiable en OS X 10.10-10.13 (inclusive), desde un terminal, si es posible.

Gracias.

0 votos

Iba a responder "primera ejecución de /Applications/Utilities/System Information.app", pero acabo de comprobarlo en una cuenta de usuario creada recientemente en la que no he ejecutado esa aplicación, y ~/Library/Preferences/com.apple.SystemProfiler.plist existe. Así que no sé, pero es una posibilidad eliminada.

0 votos

Olvidé mencionarlo: System Information.app antes se llamaba System Profiler - por eso lo estaba considerando.

0 votos

Gracias. Estoy pensando en crear un script de comprobación, basado en el UID, que buscaría esta información en la ruta adecuada. Sólo que no estoy seguro de que siempre estará donde preveo que estará.

1voto

moodforaday Puntos 2633

En caso de que aún estés intentando hacerlo, acabo de descubrir cómo generar el archivo en mi Mac con Mac OS X 10.13.6 (17G65).

Es muy sencillo. El archivo parece generarse una vez que selecciona "Acerca de este Mac" en el menú , como se muestra aquí:

Apple Menu

Antes de eso, "$HOME/Library/Preferences/com.apple.SystemProfiler.plist" no existía.

Después de eso, podría ejecutar

defaults read "$HOME/Library/Preferences/com.apple.SystemProfiler.plist" 'CPU Names'

y obtener el resultado que buscaba.

0voto

siva Puntos 23

Parece que estás ejecutando tu script como Root de tal forma que ~ se amplía a /var/root en lugar de un directorio personal en /Users . A menos que hayas iniciado sesión en la cuenta Root utilizando la GUI, no esperaría que ese archivo existiera en la carpeta de inicio de Root. Usted debe ser capaz de encontrar el archivo en una cuenta de usuario que se ha iniciado sesión en.

0 votos

En algunas máquinas, puedo ejecutar el script sin escalar privilegios Y obtener la salida deseada. En otras máquinas, puedo ejecutar ese script con sudo y no obtener el resultado deseado. No siempre tengo claro cuándo ocurrirá esto. ¿Qué acción crea realmente este .plist?

0 votos

Supongo que podría hacerlo: hardware_mod=$(defaults read /Users/$LOGNAME/Library/Preferences/com.apple.SystemProfiler‌​.plist y obtener la salida deseada, excepto si estoy conectado como Root?

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X