異なるユーザーでの同時実行についてNo.01665
ldr さん 08/01/26 21:15
 
Ver7.00β7から異なるユーザーでの同時実行を出来ないように
修正されているようですが、同時実行できるようにならないでしょうか?

今の仕様になっている理由は
・共有メモリへのアクセスがあとから起動する方が拒否される
・ウィンドウ間のメッセージのやり取りが出来ない
・全ウィンドウにまたがるマクロが実行できない
といったことではないかと思いますが、共有メモリの名前を
ユーザーユニークにしてユーザー権限ごとに別空間で実行する
ようにはできないでしょうか?
(例えばプロセストークンのユーザーSIDを利用する)

Vistaについてはいくつかの過去ログで権限を降格しようと
されているようですが、個人的には降格させることは以下の理由から
反対です。
・管理者権限がないと編集出来ないファイルが扱えなくなる
・意図的に昇格させることが出来ない

また、UAC絡みの場合には昇格した側から降格した側へのメッセージの
やり取りには制限がないはずなのでうまくやれば混在して動く気が
しなくもないです。
ちゃんと確認したわけではないですが、v5.18で常駐秀丸を昇格させて
起動すると、制限された秀丸があってもとりあえず動いているように
見えます。

普段はXPを制限ユーザーで使っているので管理者権限と同時実行
出来るようになるとうれしいです。よろしければご検討ください。
よろしくお願いします。(無理難題だったらごめんなさい)


※Vistaで降格させる方法も一応調べてみました。
起動中のプロセスの権限を変えるのは無理みたいで
プロセスを再起動させるしかないみたいですが。

・runasを使う
過去ログにありましたがrunas /trustlevel:0x20000を使えば
降格して起動するみたいです。

・CreateProcessWithTokenWを使う
制限された状態のトークンを作るか、取得して起動させます。
デスクトップウィンドウのプロセス(explorer.exe)のトークンを
使うと簡単に試せます。

・タスクスケジューラを使う
・デスクトップをフックして起動する
codeprojectのサンプルではこんなことしてました。

[ ]
RE:01665 異なるユーザーでの同時実行につNo.01666
秀丸担当 さん 08/01/28 10:50
 

>Ver7.00β7から異なるユーザーでの同時実行を出来ないように
>修正されているようですが、同時実行できるようにならないでしょうか?
>
>今の仕様になっている理由は
>・共有メモリへのアクセスがあとから起動する方が拒否される
>・ウィンドウ間のメッセージのやり取りが出来ない
>・全ウィンドウにまたがるマクロが実行できない
>といったことではないかと思いますが、共有メモリの名前を
>ユーザーユニークにしてユーザー権限ごとに別空間で実行する
>ようにはできないでしょうか?
>(例えばプロセストークンのユーザーSIDを利用する)

理由は概ねその通りです。
秀丸エディタ間でのやりとりを全くしないようにするか、同じユーザー間でのみ
やりとりをするようにすればできると思いますが、そこまではやっていないです。


>Vistaについてはいくつかの過去ログで権限を降格しようと
>されているようですが、個人的には降格させることは以下の理由から
>反対です。
>・管理者権限がないと編集出来ないファイルが扱えなくなる
>・意図的に昇格させることが出来ない
>
>また、UAC絡みの場合には昇格した側から降格した側へのメッセージの
>やり取りには制限がないはずなのでうまくやれば混在して動く気が
>しなくもないです。
>ちゃんと確認したわけではないですが、v5.18で常駐秀丸を昇格させて
>起動すると、制限された秀丸があってもとりあえず動いているように
>見えます。

単体としてはとりあえず動いたかのように見えますが、秀丸間のやりとりで問題
があるので、できないようにしました。

Vistaでは、V7.08β7では、UACによる権限が異なるとき、メッセージを表示して、
昇格または降格できるようにしてあります。
昇格/降格したくないときは、既に起動中のものを終わらせて再試行できるよう
にもしてあります。

降格には手間取りましたが、なんとかできました。
過去ログに書いたtrustlevelでは、なぜか完全に降格はできなかったです。
既に制限の秀丸が起動していて、次に管理者の秀丸を起動しようとしているとき
は、管理者の秀丸が制限の秀丸にメッセージを送って起動するようにしました。

降格が必要な理由は、普段、UACで秀丸エディタを起動(または常駐秀丸エディ
タ)しているままの状態で、何かソフトをインストールし、管理者であるインス
トーラがReadMe.txtを開くような場合、ReadMe.txtは管理者で起動しようとしま
す。管理者で秀丸エディタが起動すると、そこから「開く」で開いた秀丸エディ
タ、または「プログラム実行」で起動したプロセスはみんな管理者になって、ど
んどん管理者が増殖していってしまいます。
そのため選択するようにしてみました。

もっといい方法があれば、今後改善していくかもしれません。
ご意見も参考にさせていただきます。

[ ]
RE:01666 異なるユーザーでの同時実行につNo.01667
ldr さん 08/01/28 18:58
 
お返事ありがとうございます。

>単体としてはとりあえず動いたかのように見えますが、秀丸間のやりとりで問題
>があるので、できないようにしました。

よく考えてみればそうでした。
現在の仕様についての理由を列挙しておきながら...間抜けですね(汗


>Vistaでは、V7.08β7では、UACによる権限が異なるとき、メッセージを表示して、
>昇格または降格できるようにしてあります。

変更履歴にUAC対策と書いてあったのはこれのことでしょうか。
私の環境(UAC有効)では「共有メモリの確立に失敗しました。(02)」という
エラーが出て終了してしまいます。(V7.08β7)
制限→管理者、管理者→制限のどちらの順でやっても変わりません。
サブPCでほとんど何もインストールしていない環境です。
VC2008Expをインストールしてますがこれのせいでしょうか。


>既に制限の秀丸が起動していて、次に管理者の秀丸を起動しようとしているとき
>は、管理者の秀丸が制限の秀丸にメッセージを送って起動するようにしました。

この対策だと、起動してなかったときは管理者権限で起動するので
管理者を増殖させないという目的は達成できない気がします。


>降格が必要な理由は、普段、UACで秀丸エディタを起動(または常駐秀丸エディ
>タ)しているままの状態で、何かソフトをインストールし、管理者であるインス
>トーラがReadMe.txtを開くような場合、ReadMe.txtは管理者で起動しようとしま
>す。管理者で秀丸エディタが起動すると、そこから「開く」で開いた秀丸エディ
>タ、または「プログラム実行」で起動したプロセスはみんな管理者になって、ど
>んどん管理者が増殖していってしまいます。
>そのため選択するようにしてみました。

てっきり現状で共存できないから降格しようとしているのだと思っていました。
ところで管理者権限の秀丸エディタが増えると何か問題あるのでしょうか?

・Program FilesやWindows以下のファイルが編集できる
・ファイルを開くのダイアログから管理者権限で他のプログラムが実行できる

上記の操作はもともと管理者には認められています。
UACによって特権等制限されますが、この機能を利用できるのは管理者だけです。
UACの役割は不正なプログラムによる書き換えを防ぐのが主だと思っています。
なので秀丸エディタを通して上記の操作を行っても問題ないと言えるでしょう。
実際、必要になった場合に昇格して作業するわけですし。
制限したいならば最初から制限ユーザーとしてログインすればいいだけの話で
秀丸エディタがそこまで配慮しなくてもいいんじゃないかと思います。


こんなこというと怒られるかもしれませんが、今まで管理者権限で常に作業していた
人にとっては権限とかどうでもいいんじゃないかという気がします。
気にする人は制限ユーザーで作業します(^^)

長々と失礼しました。

[ ]
RE:01667 異なるユーザーでの同時実行につNo.01668
秀丸担当 さん 08/01/29 11:10
 

>変更履歴にUAC対策と書いてあったのはこれのことでしょうか。
>私の環境(UAC有効)では「共有メモリの確立に失敗しました。(02)」という
>エラーが出て終了してしまいます。(V7.08β7)
>制限→管理者、管理者→制限のどちらの順でやっても変わりません。
>サブPCでほとんど何もインストールしていない環境です。
>VC2008Expをインストールしてますがこれのせいでしょうか。

確認してみたら、そうでした。
β1で一時修正したのですが、その後またメッセージが表示されないようになっ
ていました。表示されるように修正します。

>この対策だと、起動してなかったときは管理者権限で起動するので
>管理者を増殖させないという目的は達成できない気がします。

そうですね。起動していなかったときはその目的ではあまり意味が無いです。
秀丸エディタの昔の設定を引き継いで、Program Filesにマクロを置くような場
合、マクロファイルの編集で差異が出るので、違いがわからないまま管理者と
UACで混乱しないようにという意味も見いだせるかと。
Program Files下のファイル仮想化は、現状でたぶん混乱していて、管理者とUAC
でわけがわからないことになっていると思います。
上記メッセージは出てませんでしたが、メッセージが出ていれば、デスクトップ
から秀丸エディタを起動したときなどで、管理者が増殖していたということを知
ることもできるかと。
と、なんだか言い訳がましいですが、一番の理由は、やっぱり共存できないから
というところが強いですが。


[ ]
RE:01668 異なるユーザーでの同時実行につNo.01671
ldr さん 08/01/29 22:28
 
>確認してみたら、そうでした。
>β1で一時修正したのですが、その後またメッセージが表示されないようになっ
>ていました。表示されるように修正します。

秀丸担当さんのコメントを読む限りだと昇格or降格を行った場合に
作業中のウィンドウが消えることがあるみたいなので、
notepadで開くみたいな選択もあると嬉しいです。別にファイルの
パスだけでもいいですが。現状だとどのファイルを開こうとしていた
のかさっぱりわからないので。

>と、なんだか言い訳がましいですが、一番の理由は、やっぱり共存できないから
>というところが強いですが。

了解しました。共存するような状況自体、しょっちゅうあるわけでもないので
今まで通り対処することにします。


話が変わりますが新規インストールの場合、Vistaではユーザー
ディレクトリがデフォルトになるようですが、Win2k/XPでも
同様にしておけば後々のVerUpの時に楽できそうですがどうでしょう?

[ ]
RE:01671 異なるユーザーでの同時実行につNo.01672
秀丸担当 さん 08/01/30 17:32
 

>秀丸担当さんのコメントを読む限りだと昇格or降格を行った場合に
>作業中のウィンドウが消えることがあるみたいなので、
>notepadで開くみたいな選択もあると嬉しいです。別にファイルの
>パスだけでもいいですが。現状だとどのファイルを開こうとしていた
>のかさっぱりわからないので。

では秀丸エディタに渡されたコマンドラインを表示して、コピーなど自由にでき
るようにしておこうと思います。


>話が変わりますが新規インストールの場合、Vistaではユーザー
>ディレクトリがデフォルトになるようですが、Win2k/XPでも
>同様にしておけば後々のVerUpの時に楽できそうですがどうでしょう?

そのあたりもどうしようか考えていましたが、社内で相談してxp以下では従来通
りがいいということで、このまましました。
どのみちユーザーディレクトリの場合は移行のときに違う絶対パスになるので、
手作業が必要になってくるかもしれません。

[ ]
RE:01672 異なるユーザーでの同時実行につNo.01673
ldr さん 08/01/30 18:09
 
>では秀丸エディタに渡されたコマンドラインを表示して、コピーなど自由にでき
>るようにしておこうと思います。

よろしくお願いします。

>そのあたりもどうしようか考えていましたが、社内で相談してxp以下では従来通
>りがいいということで、このまましました。
>どのみちユーザーディレクトリの場合は移行のときに違う絶対パスになるので、
>手作業が必要になってくるかもしれません。

了解しました。
いろいろありがとうございました。

[ ]
RE:01673 異なるユーザーでの同時実行につNo.01675
ldr さん 08/01/31 20:16
 
>>では秀丸エディタに渡されたコマンドラインを表示して、コピーなど自由にでき
>>るようにしておこうと思います。
>
>よろしくお願いします。
>

XP/Vista上の7.08b8で確認できました。
試してみて想像以上にありがたい機能でした。
ありがとうございました。

[ ]