2016-07-09 16 views
0

Gibt es eine Möglichkeit, ein "to do script" mit Administratorrechten zu schreiben, wie mit einem "do shell script"? Ich habe ein Skript, das ich schreibe, das ein Terminalfenster öffnet und die Größe eines anderen Benutzerkontos erhält, aber ich erhalte Erlaubnis verweigert Fehler. Ich kann dies leicht lösen, indem ich sudo vor dem Befehl eingebe, aber ich möchte kein Passwort im Terminalfenster eingeben. Ich möchte mit einem Dialog aufgefordert werden, damit ich ein Passwort eingeben, so wie ich würde, wenn ich ein „do shell script“ verwendetApplescript - Skript mit Administratorrechten mit Anzeigedialog ausführen

Dieser Teil meines Skript, das ich habe:

tell application „Terminal "

aktivieren tun Skript "sudo du -sh/Users/example"

Ende sagen

ich weiß, dass Sie dies wie dies auch lösen kann:

Shell-Skript "du -sh/Users/example" mit Administratorrechten

, aber wenn Sie so vorgehen, wird ein Terminalfenster geöffnet, aber der Befehl wird nicht gestartet.

Antwort

0

Sie können es tun, ohne Terminal.app Beteiligung an allen

set userSize to do shell script "du -sh /Users/example | awk '{print $1}'" with administrator privileges 

Die awk Befehl Streifen aus dem Ergebnis die Größe Teil.

+0

der Dialog ist super danke. Ich brauche das Terminalfenster, um das Ergebnis auszugeben. Mein Ziel ist es, die Ordnergröße in einer While-Schleife zu überwachen. So: während:; klar machen; du -sh/Benutzer/Beispiel; Schlaf 2; done " Also brauche ich das Terminal, um ein Fenster zu öffnen und das auszuführen. Ist das mit Administratorrechten möglich? Wieder möchte ich das Passwort nicht im Terminalfenster eingeben, also möchte ich vermeiden, sudo vor dem Befehl du einzugeben – Costa

+0

Sie können diesen Kontrollfluss auch in AppleScript ohne Terminal.app durchführen Nachdem Sie das Admin-Passwort eingegeben haben, haben Sie ein Zeitintervall von 5 Minuten, in dem der Zugriff gewährt wird. – vadian

0

Ihre zweite Option ist korrekt, aber sie sollte nicht mit einem "Terminal" Block verwendet werden.

Mit dem folgenden Skript (nur die 2 Zeilen), Terminal ist nicht geöffnet und das einzige Fenster wird diejenige sein, die Ihr Admin-Passwort fragt.

set UserSize to do shell script "du -sh /Users/test" with administrator privileges 
display dialog UserSize 
Verwandte Themen