Fischer-Bayern.de
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Benutzeranmeldung automatisieren

 
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript X
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
WGreiner
•->
•->


Anmeldedatum: 03.04.2006
Beiträge: 5
Wohnort: Karlsruhe

BeitragVerfasst am: 03.04.2006 - 13:42    Titel: Benutzeranmeldung automatisieren Antworten mit Zitat

Hallo an alle Applescript-Gurus,
Ich würde gerne unter Panther/Tiger eine automatische Benutzeranmeldung (ca. 7 User) vornehmen. Die ca. 7 Benutzer sind auf einer Maschine (kein Server) angelegt. In den Systemeinstellungen unter Benutzer -> Anmelde-Opt. ist der Haken bei "Schnellen Benutzerwechsel ermöglichen" gesetzt, damit erscheint oben rechts in der Menüleiste alle Benutzer. Die mit einem Haken davor sind angemeldet. Somit kann ich mehrere Benutzer an einer Maschine anmelden und Scripts starten.
Der Ablauf soll folgendermaßen aussehen:
- Der erste Benutzeraccount wird manuell angemeldet, direkt nach der Anmeldung wird aus dem Startobjekt dieses Accounts automatisch ein Skript aufgerufen, welches den nächsten Benutzer am System anmeldet. Dort ist wieder ein Skript hinterlegt, was wieder den nächsten Benutzer anmeldet, usw. bis alle 6-7 Benutzer am System angemeldet sind.
- Bei allen Benutzer ist kein Passwort hinterlegt.

Gibt es eine Möglichkeit so eine Anmeldung über Applescript (vielleicht auch mit Unix-Befehlen kombiniert) zu automatisieren ?
Habe dazu noch keine Informationen finden können.
Über:
tell application "System Events"
set user_names to name of every user
end tell
bekomme ich alle Benutzer, nur wie melde ich einen davon an ???

Gruß
Wolfgang
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ShooTerKo
•--->
•--->


Anmeldedatum: 21.03.2006
Beiträge: 221
Wohnort: Hamburg

BeitragVerfasst am: 03.04.2006 - 15:05    Titel: Antworten mit Zitat

Ich habe mal ein bisschen gegoogelt und folgendes gefunden:
http://www.macosxhints.com/article.php?story=20031102031045417
Daraus kann man ein niedliches kleines Script basteln Ach du Schreck! :
Code:
on switchToUser(strNewUser)
   set newUser to do shell script "id -u " & (quoted form of strNewUser)
   do shell script "/System/Library/CoreServices/Menu\\ Extras/User.menu/Contents/Resources/CGSession -switchToUserID " & newUser
end switchToUser


In dieser Form erscheint zwar die Passwortabfrage, aber ich vermute, dass es bei leerem Passwort nicht erscheint Cool

Hoffe, dass ich helfen konnte,

CU
ShooTerKo
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
WGreiner
•->
•->


Anmeldedatum: 03.04.2006
Beiträge: 5
Wohnort: Karlsruhe

BeitragVerfasst am: 03.04.2006 - 17:29    Titel: Antworten mit Zitat

Vielen herzlichen Dank für Deine Lösung, genau die Stelle habe ich auch bei macosxhints gefunden und mir ein ähnliches Script zusammengebastelt. Funktioniert wunderbar und es kommt keine Passwortabfrage (da ja keine Passwörter bei den Usern hinterlegt sind).
That's it !
Weißt Du zufällig aus dem stehgreif ein Unix-Befehl mit dem ich alle Namen mit ID der angemeldeten Benutzer herausfinde ?!

Gruß
Wolfgang
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
WGreiner
•->
•->


Anmeldedatum: 03.04.2006
Beiträge: 5
Wohnort: Karlsruhe

BeitragVerfasst am: 03.04.2006 - 18:04    Titel: Antworten mit Zitat

Ergänzung:
# who oder
# users
zeigen nur den angemeldeten User an, nicht die weiteren über "fast switching" eingeloggten User.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
hweber
•--->
•--->


Anmeldedatum: 01.02.2004
Beiträge: 397

BeitragVerfasst am: 03.04.2006 - 19:10    Titel: Antworten mit Zitat

das sieht nur root
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
till
•--->
•--->


Anmeldedatum: 21.04.2005
Beiträge: 187
Wohnort: q-town (R-P)

BeitragVerfasst am: 03.04.2006 - 23:57    Titel: Antworten mit Zitat

da hast du allerdings recht!
_________________
ein berühmter Philosoph (<-Ich) sagte einmal:
" es ist nicht das Problem was uns Kopfzerbrechen macht,
es ist der Kopf selbst, der sich erdrückt"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ShooTerKo
•--->
•--->


Anmeldedatum: 21.03.2006
Beiträge: 221
Wohnort: Hamburg

BeitragVerfasst am: 04.04.2006 - 15:36    Titel: Antworten mit Zitat

Hm, habe mich dumm und dusselig gesucht, aber keine Möglichkeit gefunden, um herauszufinden, ob ein OS X User angemeldet ist oder nicht Sad
Was man aber herausfinden kann sind alle IDs der OS X User. Bei jedem User lässt man folgendes Script beim Einloggen starten, es wird dann jeweils zur nächsthöheren UserID geswitcht, bis keine mehr kommt Razz

Code:
on run
   set myId to myUserId()
   set allIds to userIdList()
   set nextId to getNextId(allIds, myId)
   if nextId ? "9999" then
      fastUserSwitchTo(nextId)
   end if
end run

----------------------------------------------------------
------------ HANDLER -------------------------------------
----------------------------------------------------------

on userIdList()
   -- liefert alle OSX-User-IDs
   
   set localUserIds to {}
   tell application "System Events"
      set allUsers to name of every user
   end tell
   repeat with thisUser in allUsers
      set end of localUserIds to (do shell script "id -u " & quoted form of thisUser)
   end repeat
   return localUserIds
end userIdList

on myUserId()
   -- liefert die UserIDs des derzeitigen Users
   
   return do shell script "id -u"
end myUserId

on getNextId(alleIds, meineId)
   -- liefert die nächsthöhere UserID von meineId, sonst 9999
   
   set nextVal to 9999
   repeat with anId in alleIds
      if anId > meineId and anId < nextVal then
         set nextVal to anId
      end if
   end repeat
   return nextVal as string
end getNextId

on fastUserSwitchTo(idToSwitchTo)
   -- führt den Fast User Switch zum User "idToSwitchTo" durch
   
   do shell script "/System/Library/CoreServices/Menu\\ Extras/User.menu/Contents/Resources/CGSession -switchToUserID " & idToSwitchTo
end fastUserSwitchTo


Habe zwar keine User ohne Passwort, aber soweit funzt es (nur dass ich ein Passwort eingeben muss), wenn der Standarduser der admin ist (501)

CU
ShooTerKo

PS: Vielleicht gibt es da etwas in UNIX, aber ich kenne mich in UNIX nur seehr wenig aus und bin noch am nachlesen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
ShooTerKo
•--->
•--->


Anmeldedatum: 21.03.2006
Beiträge: 221
Wohnort: Hamburg

BeitragVerfasst am: 04.04.2006 - 15:39    Titel: Antworten mit Zitat

Im run-Handler:
? soll natürlich "ungleich" heißen Cool

CU
ShooTerKo
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
WGreiner
•->
•->


Anmeldedatum: 03.04.2006
Beiträge: 5
Wohnort: Karlsruhe

BeitragVerfasst am: 04.04.2006 - 17:07    Titel: Antworten mit Zitat

Hallo ShooTerKo,
vielen Dank für Deinen Lösungsvorschlag, in der Zwischenzeit habe ich eine Möglichkeit unter Unix gefunden, die angemeldeten User zu ermitteln. Das Script stelle ich heute Abend allen zur Verfügung.
Das Script muss als ausführbares Programm übersetzt werden, dann legt man es in ein Verzeichnis, wo alle User eine Zugriffsberechtigung haben. Anschließend hinterlegt man das Script in dem Startobjekt des Users (und bei allen anderen, auch Administrator). Jetzt startet man den Rechner neu, der Administrator (einzige mit Passwort) wird manuell angemeldet, dann startet das Script aus dem Startobjekt und meldet den nächsten Benutzer an, dort startet wieder das Script aus seinem Startobjekt und meldet wieder den nächsten an, usw...
Bis heute Abend...

Gruß
Wolfgang
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
WGreiner
•->
•->


Anmeldedatum: 03.04.2006
Beiträge: 5
Wohnort: Karlsruhe

BeitragVerfasst am: 04.04.2006 - 20:39    Titel: Antworten mit Zitat

So wie versprochen das Script Laughing

tell application "System Events"
-- 3 sec warten
delay 3
-- User der gerade angemeldet ist
set current_user to name of current user

-- Alle angelegten Benutzernamen auslesen
set all_accounts to name of every user
set count_all_accounts to count items in all_accounts

-- Auslesen aller bereits angemeldeten Benutzer
set unix_cmd to "ps -auxl | awk '{print $11}' | sort -u"
set user_online to do shell script unix_cmd
-- User in eine Liste eintragen
set user_list to every paragraph of user_online
-- Anzahl der bereits angemeldeten User
set count_user_list to count items in user_list

set unix_id to "id -u "


-- Durchlaufe die Liste der User solange bis ein nicht
-- angemeldeter gefunden wird
-- Kein User gefunden => alle User sind angemeldet
set found_user to false
-- Setze Zähler auf 1
set user_idx to 1
-- Suche solange bis einer gefunden wird
repeat until found_user or (user_idx > count_all_accounts)
-- Lese die User der Reihe nach aus
set user_name to item user_idx of all_accounts

-- Die ID des Users ermitteln
set user_id to do shell script unix_id & user_name

-- Handelt es sich um den angemeldeten User ?
if (user_name ≠ current_user) then
-- nein, prüfe, ob der Benutzer bereits angemeldet ist
if (user_id is not in user_list) then
-- Der Benutzer wurde nicht gefunden => nicht angemeldet
set found_user to true
end if

end if

-- erhöhe Zähler
set user_idx to user_idx + 1
end repeat

if found_user then
-- Melde den gefundenen User am System an
set switch_user to "/System/Library/CoreServices/Menu\\ Extras/User.menu/Contents/Resources/CGSession -switchToUserID "
do shell script switch_user & user_id
end if

end tell
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript X Alle Zeiten sind GMT + 2 Stunden
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2002 phpBB Group
Deutsche Übersetzung von phpBB.de


AppleScript für absolute Starter