秀丸エディタと管理者権限No.26997
ソフト屋 巣 さん 09/08/30 16:40
 
現在、Vistaで秀丸エディタ7.11を利用させていただいております。
問題点なのですが、秀丸エディタのウィンドウが通常権限と管理者権限で起動したも
のが混じっている場合にマクロ実行でエラーが出て困っております(すいません。エ
ラー番号はメモし忘れております)。エラー発生自体はまれなのですが、発生すると
「他の秀丸がマクロ実行中です」のままとなり秀丸エディタを全て強制終了しないと
直りません。
setactivehidemaruでエラーになっているものと推測されるのですが、秀丸エディタ
側でせめてエラーにならないようにガードできないものでしょうか?

実験してみたところでは、filename[1]でファイル名を管理者ウィンドウ→通常ウィ
ンドウの場合得られるのですが、逆の場合は空白が返る場合があります(特定条件で
は必ず返ります)。これも同様の原因があるのでしょうか?

[ ]
RE:26997 秀丸エディタと管理者権限No.26998
アルビレオ さん 09/08/30 17:28
 
ユーザーのアルビレオです。

>秀丸エディタのウィンドウが通常権限と管理者権限で起動したも
>のが混じっている場合にマクロ実行でエラーが出て困っております

これが問題なく動いてしまうと、「通常権限のプログラムが管理者権限で動いて
いるプログラムを操作することで、実質的に管理者権限を持っているのと同じ状
態になってしまう」ということになって非常にまずいです。
OSとしてはセキュリティモデルが無意味になってしまうような動作をアプリケー
ションに許すわけにはいかないため、秀丸エディタの側で回避することはできな
いんじゃないかと思います。

でも強制終了しかできない状態で固まってしまうのはまずいですね。

>せめてエラーにならないようにガードできないものでしょうか?

エラーにならないようにというのは無理があると思います。
マクロはsetactivehidemaruで切り替えたつもりだけど、実際には切り替わって
ないために意図しないファイルを破壊してしまうことが十分ありえますから。
むしろ「エラーのときは確実に中断できるように」というのが現実的ではないで
しょうか。

[ ]
RE:26998 秀丸エディタと管理者権限No.26999
ソフト屋 巣 さん 09/08/30 18:56
 
>>アルビレオ さん
ご意見ありがとうございます。

>これが問題なく動いてしまうと、「通常権限のプログラムが管理者権限で動いて
>いるプログラムを操作することで、実質的に管理者権限を持っているのと同じ状
>態になってしまう」ということになって非常にまずいです。
>OSとしてはセキュリティモデルが無意味になってしまうような動作をアプリケー
>ションに許すわけにはいかないため、秀丸エディタの側で回避することはできな
>いんじゃないかと思います。

VC++2005からアドインで秀丸を呼び出すとどうしても管理者権限になってしまうみた
いなんですよ。気を付けてるつもりですが、たまに忘れて開いちゃうことがあるんで
す。
管理者権限にならない様にワンクッション設けてもらえれば回避できるかなと思いま
して。

>でも強制終了しかできない状態で固まってしまうのはまずいですね。
かなり、困るんですよね。

>むしろ「エラーのときは確実に中断できるように」というのが現実的ではないでし
>ょうか。
はい、それで十分なんです。あるいはsetactivehidemaruの切り替え自体エラー警告
だけして無かった事にしてもらえれば助かるんですけど。

[ ]
RE:26999 秀丸エディタと管理者権限No.27001
秀丸担当 さん 09/08/31 11:24
 

正しく動いているとすれば、V7.11では通常権限と管理者権限を同時に起動する
ことはできないようになっています。

1.通常権限でV7.11を起動
2.管理者権限でV7.11を起動
3.警告が出る
 「秀丸エディタを管理者として実行しようとしていますが、既に非管理者
  として実行されている秀丸エディタがあります。」(略)

警告では、「非管理者として実行」「再試行」「キャンセル」が選べます。
1.と2.を逆にした場合も同じような警告が出ます。
こうならないとしたら、何か通常とは違うことがあるのかもしれません。


試しに違うバージョンでやってみたら、似たような状態を再現させることができ
ました。

1.管理者権限でV7.11を起動
2.通常権限で、別のフォルダにある V6.14 を起動
3.何も警告は出ず、混在する
4.マクロ実行で、エラーが出る
5.もう一度マクロ実行すると「他の秀丸エディタがマクロ実行中です」となっ
てしまう

もしVC2005のアドインからの起動というのが、別のフォルダや別のバージョンの
秀丸エディタを指しているとしたら、同じ場所のV7.11に合わせると回避できる
かもしれません。

[ ]
RE:27001 秀丸エディタと管理者権限No.27002
ソフト屋 巣 さん 09/08/31 12:26
 
>正しく動いているとすれば、V7.11では通常権限と管理者権限を同時に起動すること
>はできないようになっています。

調査ありがとうございます。

起動方法ですが、アドインと言うのは私の勘違いです申し訳ありません。再度確認し
たところ外部ツールとして起動していました。
ここの過去ログにある情報を参考にしたものと思われます。
http://maruo.dyndns.org:81/hidesoft/hidesoft_2/x23173.html

今確かめたところ、テキストファイルをダブルクリックで起動したものとVC++20
05から外部ツールとして起動したエディタの両方ともV7.11で起動していました。
どうやら、runas.exeがまずいみたいなので外す方法が無いか探って見ます。

[ ]
RE:27002 秀丸エディタと管理者権限No.27004
ソフト屋 巣 さん 09/08/31 13:03
 
>今確かめたところ、テキストファイルをダブルクリックで起動したものとVC++2
>005から外部ツールとして起動したエディタの両方ともV7.11で起動していました。
>どうやら、runas.exeがまずいみたいなので外す方法が無いか探って見ます。

追加の報告です。
ユーザー権限に降格するプログラムが自作ソフトの中にあったのでそちらに切り替え
てみました。今のところ問題なく動作している様です。
長く使ってみないと問題が出ませんのでしばらく様子を見たいと思います。

で、秀丸エディタに対するお願いとしてエラーになるのはこちらの使い方の問題です
ので申し訳ないのですが、エラー時にマクロ実行中のままになる問題だけは何か対策
をご検討いただけないでしょうか?

[ ]
RE:27004 秀丸エディタと管理者権限No.27005
秀丸担当 さん 09/08/31 15:02
 

過去ログにあったrunasを使う方法で問題を再現させることができました。
ありがとうございます。
いろいろ調べてみたところ、runas /trustlevel:0x20000 で起動した場合は本当
に降格するわけではなく、中途半端な状態になっているようです。
管理者でも非管理者でもない、両者の挙動が混ざった特殊なプロセスが生まれて
しまうようです。
過去ログでは runas /trustlevel:0x20000 を使う方法をよくわからずコメント
してしまいましたが、これは使わないほうがいいようです。

V7.11では、特に何も指定しなくても、先のコメントにあるとおり警告がでて、
権限を切り替えることができるようになっています。
他のツールでもできるとのことで、それでも回避できたということでよかったで
す。

マクロ実行中のエラーが出てしまう件も確認できたので、こちらは現在開発中の
V8.00β版で対策させていただきます。

[ ]
RE:27005 秀丸エディタと管理者権限No.27006
ソフト屋 巣 さん 09/08/31 16:04
 
>マクロ実行中のエラーが出てしまう件も確認できたので、こちらは現在開発中の
>V8.00β版で対策させていただきます。

よろしくお願いします。

[ ]