Вызов appleScript из сценария оболочки с использованием админских привилегий - PullRequest
0 голосов
/ 12 января 2011

Я запускаю сценарий оболочки, который запускает программу установки (от ViseX) и выбирает различные элементы в программе установки через список.Для правильной работы установщику нужны права администратора, но я не хочу использовать sudo.В настоящее время приложение установки не работает должным образом, потому что оно не запускается с правами администратора.

Как мне вызвать appleScript с правами администратора или сказать приложению установки внутри appleScript, что оно запускается от имени администратора?

Вот сценарий, который я использую:

osascript <<-END
  tell application "$1"
    with timeout of 8 * 3600 seconds
     activate
     Select "$2"
     DoInstall
   end timeout
 end tell
END

Ответы [ 3 ]

0 голосов
/ 12 января 2011

Вот яблочный скрипт, который делает это. Я оставлю вас, чтобы превратить его в команду оболочки. Следующий скрипт открывает файл хоста на вашем компьютере с помощью TextEdit. Вы заметите, что для открытия этого файла требуются права администратора, поэтому это хороший пример. Обратите внимание, что я мог бы выполнить эту конкретную задачу проще, но я делаю это таким образом, чтобы показать вам, как запустить приложение с правами администратора, а затем настроить таргетинг на это приложение, чтобы вы могли выполнять другие команды applecript ...

set theFile to "/private/etc/hosts"

-- launch the application with admin privileges and get the pid of it
set thePID to (do shell script "/Applications/TextEdit.app/Contents/MacOS/TextEdit > /dev/null 2>&1 & echo $!" with administrator privileges) as integer

-- get the bundle identifier of that pid so we can do something with the application
delay 0.2
tell application "System Events"
    set theProcess to first process whose unix id is thePID
    set bi to bundle identifier of theProcess
end tell

-- do something with it eg. open the hosts file
set theFileAlias to (POSIX file theFile) as alias
tell application id bi
    activate
    open theFileAlias
end tell
0 голосов
/ 01 марта 2012
do shell script "[path/to/app] [param]" user name "[admin name]" password "[password]" with administrator privileges
0 голосов
/ 12 января 2011

Вы можете запускать сценарии оболочки из Applescript от имени администратора: см. этот технот .Так что, если вы создадите этот appleScript как отдельный скрипт, вы можете использовать его.Ужасно, но должно работать.

...