SecurityAgentの入力が存在する場合はそれを入力しますか?


1

キーチェーン(システムとユーザー)のエクスポートを自動化しようとしています。設定値を削除してもスクリプトは機能しますが、追加しても機能しません。

私が受けているエラーは

System Events got an error: Can’t get text field 1 of group 1 of window 1 of process "SecurityAgent". Invalid index.

存在しないものを求めているようです。これがモーダルです

System Events

そしてこれがコードです。

tell application "System Events"
    repeat while exists (processes where name is "SecurityAgent")
        tell process "SecurityAgent"
            set value of text field 1 of group 1 of window 1 to "adminuser"
            set value of text field 2 of group 1 of window 1 to "adminpass"
            click button "Allow" of group 1 of window 1
        end tell
        delay 0.2
    end repeat
end tell

可能であれば、設定を試みる前にフィールドがあるかどうかを検出したいので、パスワードの入力を求められても行わなくても動作します。

回答:


4

これは働いた

set appName to "username"
set appPass to "password"

tell application "System Events"
    repeat while exists (processes where name is "SecurityAgent")
        tell process "SecurityAgent"
            if exists (text field 1 of window 1) then
                set value of text field 1 of window 1 to appName
                set value of text field 2 of window 1 to appPass
            end if
            click button "Allow" of group 1 of window 1
        end tell
        delay 0.2
    end repeat
end tell

興味があるので、あなたはそれを何のために使いますか?その画面がめったに表示されないので。
Buscar웃

システムキーチェーンを次のようにダンプしていました security dump-keychain -d /Library/Keychains/System.keychain > keychain-system.txt
ehime

@Buscar웃これが要旨です。 gist.github.com/ehime/9c518f405315dc3087c3
ehime
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.