Applescript per l'eliminazione di file desktop al logout


2

Sono completamente nuovo su Applescript e attualmente molto impegnato al lavoro. Non ho tempo di impararlo, una volta troverò del tempo libero, quindi ho deciso di chiedere aiuto a voi, esperti.

Ho bisogno di un Applescript che eliminerà tutti i file del desktop all'uscita. Attualmente sto gestendo un Mac Lab con 40 iMac e i nostri studenti salvano costantemente archiviati su Desktop, il che crea molto disordine.


1
Ok, il mio amico l'ha risolto e funziona (le righe di comando sono separate da virgole): echo '#! / Bin / bash, rm -rf ~ / Desktop / *'> ~ / .clean_desktop.sh, chmod + x ~ / .clean_desktop.sh, sudo defaults scrivi com.apple.loginwindow LogoutHook ~ / .clean_desktop.sh, per disinstallare: rm ~ / .clean_desktop.sh, sudo defaults elimina com.apple.loginwindow LogoutHook
Greg

Risposte:


1

C'è un motivo specifico per cui non vorresti che i tuoi studenti usassero un account ospite sul sistema? Ciò consentirebbe di fornire loro un accesso limitato al sistema eliminando automaticamente tutti i loro file al logout.

Per abilitare un utente guest:

  • Vai a Preferenze di Sistema> Utenti e gruppi
  • Fare clic sull'icona del lucchetto per sbloccarlo se necessario e digitare un nome e una password di amministratore
  • Seleziona l' utente ospite nell'elenco degli account dalla barra laterale di sinistra
  • Seleziona l'opzione Consenti agli ospiti di accedere a questo computer
  • Puoi anche impostare le restrizioni tramite Controllo genitori selezionando l'opzione Abilita controllo genitori e quindi facendo clic su Apri Controllo genitori ...

Vedere:
Utilizzo dell'account ospite in OS X
OS X Mountain Lion: configurare gli utenti guest
OS X Lion: impostare un account guest


Grazie mille ma ci sono diversi motivi per cui non voglio usare l'account ospite. Innanzitutto, puoi utilizzare solo un account ospite e ho bisogno di creare diversi account per diversi gruppi di studenti (so che sembra strano ma questi sono i requisiti della scuola), ognuno dei quali consente l'accesso a diverse applicazioni. In secondo luogo, sto riscontrando problemi con il dock. Ogni volta che lo cambio nell'account Ospite (lasciando solo le app che voglio che i miei studenti utilizzino) cambia quando mi disconnetto. Gli account standard, d'altra parte, salvano le preferenze del dock in modo che appaiano uguali ogni volta che accedi.
Greg

Vedo che hai adottato un approccio diverso, ma lascio questa risposta qui per altri che potrebbero avere una domanda simile.
MK,

Ho anche aggiunto un'altra soluzione che è più facile da gestire come risposta separata.
MK,

1

È possibile utilizzare invece uno script di shell come questo:

#!/bin/bash

rm -r ~/Desktop/*

O se vuoi spostare i file nel cestino:

#!/usr/bin/osascript

tell app "Finder" to move items of desktop to trash

Quindi eseguire:

chmod +x /path/to/script
sudo defaults write com.apple.loginwindow LogoutHook /path/to/script

Gli hook di logout sono stati deprecati in 10.4, ma non ho trovato alcun modo per eseguire in modo affidabile un programma al logout usando launchd.

Il hook di logout può essere solo uno script eseguibile e non un comando shell.

Il comando predefinito modifica /var/root/Library/Preferences/com.apple.loginwindow.plist. Esegui sudo defaults delete com.apple.loginwindow LogoutHookper eliminare la chiave LogoutHook.


1

Il requisito di base è cancellare i file tra le sessioni di accesso. Se non è possibile utilizzare gli account ospite, poiché si eseguono comunque alcune impostazioni personalizzate per gli account utente, una soluzione semplice e facile da gestire consiste nell'utilizzare uno script elemento di avvio che viene eseguito all'accesso anziché un hook di disconnessione (che è obsoleto e potrebbe non rimanere una soluzione a lungo termine).

Ogni volta che un altro utente accede, i file creati dall'utente precedente sul desktop vengono cancellati.

  • Crea uno script con il nome cleardesktop.command (l' .commandestensione lo esegue Terminaldi default) contenente la riga

    rm -rf ~/Desktop/*
  • Renderlo eseguibile utilizzando il comando

    chmod +x cleardesktop.command
  • Aggiungilo all'elenco Elementi di avvio dell'account utente

    • vai su Preferenze di Sistema> Utenti e gruppi
    • seleziona l'account utente e vai su Elementi di accesso
    • fai clic sul (+) sotto l'elenco a destra.
    • seleziona lo script cleardesktop.command e fai clic su Aggiungi
    • seleziona la casella di controllo Nascondi accanto in modo che la Terminalfinestra non venga visualizzata al momento dell'accesso.
  • Inoltre, è possibile impedire agli utenti di rimuovere questo elemento di avvio con i seguenti passaggi

    • vai su Preferenze di Sistema> Controllo genitori
    • quindi nella scheda App
    • selezionando la casella di controllo Limita applicazioni
    • nell'elenco App consentite: deseleziona Preferenze di Sistema - Applicazioni

Se desideri rendere questa soluzione un po 'più solida, puoi inserire il file cleardesktop.command/usr/bin/ e impostare autorizzazioni limitate con chmod 755 cleardesktop.commanddall'account amministratore.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.