Administrator-Kennwort prüfen?

S

Series 60

Aktives Mitglied
Thread Starter
Dabei seit
31.12.2005
Beiträge
328
Reaktionspunkte
7
Hallo

Ich habe ein Script geschrieben, dass bei der Ausführung nach dem Administrator-Kennwort verlangt. Wenn das eingegebene Kennwort falsch ist, gibt es im Script natürlich Fehler. Diese möchte ich mit einer Prüfung des Kennworts verhindern. Wie mach ich das am einfachsten? Ich hätte da zwar schon ein paar Ideen, aber ich bin mir ziemlich sicher, dass es auch wesentlich einfacher geht. Am liebsten wäre mir die originale Kennwort-Abrage des Betriebssystems.

Vielen Dank
Philipp
 
Hallo Philipp,

ganz hab ich Dich nicht verstanden: Wenn Du ein z.B. ein »do shell script "ls" with administrator privileges« machst (das ls ist nur beliebiges Beispiel), dann kommt der AppleScript-Dialog hoch. Wird das richtige Admin-Kennwort eingegeben ist es laut Handbuch für fünf Minuten im Script-Ablauf gültig (AppleScript Language Guide Seite 133). Der Dialog kümmert sich auch um die Meldung, wenn ein Kennwort falsch ist. Oder der User bricht ab. Dass könntest Du in einem try behandeln, der Fehler ist dann -128.

Hab ich irgend etwas an Deinem Ziel völlig falsch verstanden?

Gruß, Jürgen
 
Hallo Jürgen

Ich muss das Kennwort dann aber als Variable speichern können, da ich es sonst mehrere hundert Mal manuell eingeben muss. Genau hier liegt mein Problem. Mit der selbst erstellten Kennwort-Abfrage ist das kein Problem, nur wird das Kennwort dann eben nicht geprüft. Gibt es eine Möglichkeit das Kennwort dieser Standard-Abfrage auszulesen und als Variable zu speichern?
 
OK, hatte aus Deiner Beschreibung gedacht, dass die Zeit reicht, die sich ein Script das Kennwort in einem do shell script with administrator privileges merkt.

Folgendes Script funktioniert anscheinend, um ein Kennwort zu prüfen:

Code:
set greeting to "Bitte Administrator-Kennwort eingeben"
set c_b to "Abbrechen"
set ok_b to "OK"
set un to do shell script "whoami"
repeat
	try
		
		set pw to text returned of (display dialog greeting default answer "" buttons {c_b, ok_b} default button ok_b with hidden answer)
		do shell script "ls" password pw user name un with administrator privileges
		exit repeat
		
	on error error_string number the_num
		if the_num = -128 then
			exit repeat
		end if
		display dialog error_string buttons {ok_b} default button 1
	end try
end repeat

Die Abfrage von dem aktuellen Benutzer ist nötig, weil in einem try das do shell script nur den Mund hält, wenn Benutzername und Kennwort übergeben werden.

Gruß, Jürgen
 
Vielen Dank, das ist schon mal sehr hilfreich.
 
Zurück
Oben Unten