Genera un informe de lliurament de Mac amb AppleScript

Recull dades essencials abans que un Mac surti de l’oficina

Genera un informe de lliurament de Mac amb AppleScript

En un lliurament de Mac, la informació acostuma a existir. El problema és que viu repartida: una pantalla de Sobre aquest Mac, una consulta al MDM, una comprovació de FileVault i una nota escrita de pressa. Quan cal reconstruir què es va revisar, la memòria humana té massa forats.

Aquest truc crea un informe local, datat i reutilitzable, a partir de dades que macOS ja exposa. AppleScript coordina l’operació i invoca eines del sistema amb do shell script. És una decisió de disseny deliberada: per obtenir dades tècniques estables, és preferible consultar les ordres del sistema que intentar llegir pantalles amb automatització d’interfície. Els scripts GUI depenen de botons, idiomes i jerarquies visuals; les ordres locals acostumen a resistir millor els canvis. AppleScript pot executar eines de línia d’ordres, i quoted form protegeix els textos que entren en una comanda. (developer.apple.com)

Cal macOS amb Script Editor, permisos d’escriptura a l’Escriptori i una sessió d’usuari oberta. En macOS 13 o posterior, reviseu Configuració del Sistema > Privadesa i seguretat si Script Editor no pot crear l’arxiu: macOS protegeix l’accés a Escriptori, Documents, Baixades, iCloud Drive i volums de xarxa. L’accés complet al disc no és necessari per a aquest cas. (support.apple.com)

Obriu Editor de Scripts, creeu un document nou, enganxeu-hi això i executeu-lo:

on netejaCamp(valor)
    set valor to valor as text
    set AppleScript's text item delimiters to {return, linefeed, tab}
    set peces to text items of valor
    set AppleScript's text item delimiters to " "
    set valor to pieces of peces as text
    set AppleScript's text item delimiters to ""
    return valor
end netejaCamp

set marcaTemps to do shell script "/bin/date '+%Y%m%d-%H%M%S'"
set escriptori to POSIX path of (path to desktop folder)
set carpetaInformes to escriptori & "Informes de lliurament"
do shell script "/bin/mkdir -p " & quoted form of carpetaInformes

set serieMac to do shell script "/usr/sbin/ioreg -rd1 -c IOPlatformExpertDevice | /usr/bin/awk -F'\"' '/IOPlatformSerialNumber/{print $(NF-1)}'"
set modelMac to do shell script "/usr/sbin/sysctl -n hw.model"
set versioMacOS to do shell script "/usr/bin/sw_vers -productVersion"
set usuariConsola to do shell script "/usr/bin/stat -f%Su /dev/console"
set estatFileVault to do shell script "/usr/bin/fdesetup status 2>&1"

set informe to "data" & tab & "serie" & tab & "model" & tab & "macOS" & tab & "usuari_actiu" & tab & "filevault" & linefeed
set informe to informe & marcaTemps & tab & netejaCamp(serieMac) & tab & netejaCamp(modelMac) & tab & netejaCamp(versioMacOS) & tab & netejaCamp(usuariConsola) & tab & netejaCamp(estatFileVault) & linefeed

set camiInforme to carpetaInformes & "/lliurament-" & serieMac & "-" & marcaTemps & ".tsv"
do shell script "/usr/bin/printf %s " & quoted form of informe & " > " & quoted form of camiInforme

display dialog "Informe creat:" & return & camiInforme buttons {"D'acord"} default button "D'acord"

L’arxiu TSV s’obre bé amb Numbers, Excel o un editor de text. La primera línia fixa els noms de columna i la segona conserva una fotografia concreta del Mac: data, sèrie, model, versió de macOS, usuari de consola i estat de xifratge.

Hi ha una limitació important: fdesetup status informa sobre FileVault, però no certifica que la clau de recuperació hagi quedat custodiada correctament al MDM. Aquesta validació ha de continuar formant part del procés d’administració. L’informe evita confondre una observació local amb una evidència de gestió centralitzada.

Petit repte final: afegiu una columna tecnic amb un diàleg que demani qui ha preparat l’equip, i una altra columna destinatari. Quan l’informe reculli també responsabilitat i destinació, deixa de ser una captura tècnica i es converteix en una peça útil del procés de lliurament.

Per saber-ne més

  • https://developer.apple.com/library/archive/documentation/LanguagesUtilities/Conceptual/MacAutomationScriptingGuide/CallCommandLineUtilities.html
  • https://support.apple.com/guide/mac-help/change-privacy-security-settings-mchl211c911f/mac

Automatitza un informe local amb la versió de macOS, el model, el número de sèrie, l’usuari actiu i l’estat de FileVault.

🔝

Apple AppleScript

Altres:

Escaneja el material que surt de l’oficina amb Power Apps

2023

2024

2026