Applescript, shellscript och inloggning

Tråden skapades och har fått 6 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Höganäs
  • 2005-12-14 10:47

Förustättning: Lab-sal med ett gäng Mac.
Elever loggar in via ActiveDirectory, men vi vill att elevens Desktop ligger lokalt, därför finns en lokal användare "elev" på volymen "Users".

Hur skapar jag ett Applescript som kör följande shellscript OM mappen Desktop INTE är en symbolisk länk?

Här är grunden för de shellscript jag tänkte ska köras, men jag vet inte hur OM och INTE ovan implementeras:

do shell script "mv ~/Desktop ~/Desktop.old"
do shell script "ln -f -h -s /Users/elev/Desktop/ ~/Desktop"
do shell script "rm -rf Desktop.old"

Applescriptet ska köras vid inloggning. Finns någon mapp, typ "Startupitems" i OS 7-9, eller ?
Det måste alltså köras för användare som loggar in första gången.

(Det vore förståss bra om det går att köra som "rent" shell script vid inloggning, men det får jag inte att funka... )

Tacksam för hjälp!

/M

  • Medlem
  • Kiruna
  • 2005-12-14 12:12

Varför inte som shellscript? Du kan trigga det från loginwindows LoginHook istället för Login Items (som jag antar att du gör nu...)

#!/bin/sh

if [ ! -L ~/Desktop ]
then
	mv ~/Desktop ~/Desktop.old
	ln -f -h -s /Users/elev/Desktop/ ~/Desktop
	rm -rf Desktop.old
fi

För att skapa inloggningskroken, se exempelvis http://www.bombich.com/mactips/loginhooks.html

(Om inte annat kan du ju anropa hela ovanstående script från ett AppleScript, som sen körs från Login Items.)

  • Medlem
  • Höganäs
  • 2005-12-14 12:16

Guld.

Får som sagt inte Loginhooks att fungera. Kanske för att användaren inte finns på maskinen och heller inte får sin hemma-mapp där?? ("Tack vare" Active Directory)

Kanske är launchd ett alternativ?
http://www.macosxhints.com/comment.php?mode=display&sid=20050517210406483&title=RE%3A+launchd&type=article&order=&pid=58225

  • Medlem
  • Kiruna
  • 2005-12-14 12:30

Vad får du för felmeddelande från loginwindow?

Har du testat att köra scriptet manuellt? Kör

sudo /sökväg/till/script username

där username är utbytt mot aktuellt användarnamn, och se om du får önskat resultat.

Annars går det säkert bra med launchd också, men om felet har att göra med att det är problem att "hitta" hemmamappen ( ~/ ) när just AD-användare loggar in kan det nog dessvärre kvarstå även med launchd.

  • Medlem
  • Höganäs
  • 2005-12-14 16:15
Ursprungligen av spot:

Vad får du för felmeddelande från loginwindow?

Har du testat att köra scriptet manuellt? Kör

sudo /sökväg/till/script username

där username är utbytt mot aktuellt användarnamn, och se om du får önskat resultat.

Annars går det säkert bra med launchd också, men om felet har att göra med att det är problem att "hitta" hemmamappen ( ~/ ) när just AD-användare loggar in kan det nog dessvärre kvarstå även med launchd.

Lägger scriptet loginTest.sh i hemmamappen, kör chmod u+x loginTest.sh men får följande varning när jag kör
sudo /sökväg/till/script username

%sudo: loginTest.sh: command not found

  • Medlem
  • Kiruna
  • 2005-12-14 16:28

Du måste ange en fullständig sökväg till scriptet, ex: /Users/poppe/loginTest.sh

Samma sak gäller i LoginHook eller launchd...

  • Medlem
  • Höganäs
  • 2005-12-14 21:58

OK. Tror för övrigt att det är ett problem att användarens hemmamapp ligger på servern.
Vet någon vart mallen som används för att skapa den mappen finns? (Den som används när någon loggar in mot AD.). Det är _inte_ /System/Library/User\ Template/sv.lproj/ och verkar heller inte vara root-hemmet som ligger till grund.

Skulle vilja sätta in bland annat en prefs. som kör ett login-item (Applescriptet).

/M

1
Bevaka tråden