QuickUserSwitch.appの仕様について

QuickUserSwitch.appについて、一旦設定したアカウントを切り替えたいという要望のメールがありました。
ユーザの切り替え、パスワードのリセット機能をお望みのようです。
しかし、この機能を付け加えると、QuickUserSwitch.appのダブルクリックあるいはそれに準じた方法で起動すれば既定のアカウントにスピーディに切り替わるという特徴を損ないそうです。
ダイアログ、キー入力を省くのが主眼のアプリケーションにリセット機能をつけて、そこで判断待ちをするというのは間違っていると思います。
従って、別なアカウントへの切り替えをするのであれば、オリジナルのISOファイルからQuickUserSwitch.appのフレッシュな複製を作って、そのQuickUserSwitch.appに新しいアカウントの設定を行って下さい。既存のQuickUserSwitch.appと同じディレクトリに共存させたいのであれば、それぞれ名前を変えて下さい。
これが一番適当な使用方法だと思います。
※QuickUserSwitch.appは編集可能な形式で公開していますので、御自身でリセット機能を付加することについては、私から申し上げることは何もありません。改変は自由です。

但し、若干の改造計画はあります。

■ファーストユーザスイッチで切り替え可能なユーザ名をリストアップする

  • 2人以上のユーザ数の場合、ユーザアカウントをリストアップする
    (ゲストアカウントと共有はリストアップしない)

という方向で手を加えられないかと考えてきました。

3201c

最初はそれぞれのユーザのホームディレクトリをリストアップするという手があるかなと思っていたのですが、もしかすると、ホームディレクトリの名前とユーザアカウント名が一致しないケースもあるかも知れません。
そこで、ディレクトリサービスから直接ユーザアカウントを拾ってこようかと思い、少し進めてみました。

“dscl . -list /Users”で拾ったアカウントからカレントユーザ(自分)とdaemon、nobody、root、Guest、Sharedを除いたものを改行付きの文字列として返すというサブルーティンです。

to ListupUsers()
	set u to do shell script "echo $USER"
	set L to do shell script "dscl . -list /Users"

	set defDel to AppleScript's text item delimiters
	set UList to {}
	try
		set AppleScript's text item delimiters to "
"
		set n to count text item of L
		repeat with i from 1 to n
			if (text item i of L is not in {"daemon", "nobody", "root", "Guest", "Shared", u}) and {(text item i of L) does not contain "_"} then
				set r to text item i of L
				set UList to UList & r
			end if
		end repeat
		set AppleScript's text item delimiters to defDel
	on error
		set AppleScript's text item delimiters to defDel
	end try
	set UStr to ""
	repeat with i in UList
		set UStr to UStr & i & return
	end repeat
	return UStr
end ListupUsers

慣れないブログで、コードを書式を保ったまま貼付けるすべがよく分からないので、スクリプトファイルもダウンロードできるようにしておきます。
有用であるのかどうかは置いておいて…。

■ダウンロード
http://amstudio.zxq.net/amweb/ListupUsers.iso.zip
http://amstudio.sytes.net/amweb/ListupUsers.iso.zip
※ListupUsers.scptdの著作権は放棄いたしませんが、対価は不要です。自己責任で、自由にお使いください。
インターネット上のリンクは、作者への事前/事後の承諾は不要ですので、自由にリンクして下さい。
基本的に、再配布・転載は認めません。

■保証
動作に関する保証はいたしません。また、使用によって生じたと思われるいかなる損害に対しても、作者は一切責任を負い ません。使用は御自身の責任において行なってください。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中