[ 新規に投稿する ]

権限が違う場合の秀丸の追加起動時にエラーとなります。No.40701
COBOLER さん 23/07/07 14:57 [ コメントを投稿する ]
仕事用貸与PCの変更に伴い今まで管理者権限のユーザから一般権限のユーザに変更となりました。
管理者として実行用のIDは与えられています。
一般ユーザでサインインしたPCで一般ユーザで秀丸を起動した後管理者権限で秀丸を起動すると
「共有メモリの確立に失敗しました。(03)別アカウント制御で実行されている…
となり続行不可となります。逆の順番で起動しても同様です。
管理者ユーザでサインインしたPCで実施した場合、いずれの順番でも
「権限を変更して起動しますが?」と聞いてきて、続行は可能でした。

なぜこのような手番が必要かというと、強力なファイル検索ソフト「MasterSeeker」を使用していて
検索結果のソースを秀丸で表示する場合、既に他のテキストを開けている時があるためです。

「権限を変更して起動しますが?」のように回避するようにできませんでしょうか。
[ ]
RE:40701 権限が違う場合の秀丸の追加起動時にエラーとなりますNo.40703
秀丸担当 さん 23/07/07 18:07 [ コメントを投稿する ]
  「共有メモリの確立に失敗しました。(03)」のエラーは、別のユーザー名の秀丸エディタが同じデスクトップ空間にあるときに出るエラーになっています。
Windowsとしてのサインインが別のユーザーで、複数のデスクトップが存在して切り替えるような状況だと使えますが、
Windowsとしてのサインインは1つで、デスクトップは1つだと、別のユーザー名で同時には使えないです。
その場合、既に起動していた秀丸エディタをいったん終了し、タスクバーの隅の常駐秀丸エディタも全部終了させてからでないと起動できないです。

似たケースとして、Windowsとして管理者ユーザーのサインインで、昇格の秀丸エディタが既にある場合や、非昇格の秀丸エディタが既にある場合は、相互に権限を変えて起動し直す選択をするダイアログがあります。
今回のケースでも同じようにできないか試してみたところ、標準ユーザーから管理者ユーザーへの切り替えは可能でした。
しかし管理者ユーザーから標準ユーザーへの指示は難しそうでした。
やはりいったん全部終了してからでないとできなさそうです。
[ ]
RE:40703 権限が違う場合の秀丸の追加起動時にエラーNo.40705
でるもんたいいじま さん 23/07/08 08:46 [ コメントを投稿する ]
  秀丸愛用者の「でるもんた・いいじま」です。

> 「共有メモリの確立に失敗しました。(03)」のエラーは、
> 別のユーザー名の秀丸エディタが同じデスクトップ空間に
> あるときに出るエラーになっています。

追試してみました。

> Windowsとしてのサインインが別のユーザーで、
> 複数のデスクトップが存在して切り替えるような状況だと使えますが、

これは例えば、最初のユーザーの画面で Win+L を押して画面をロックし、そこから別のユーザーでサインインするような場合のことですね。

一方で、

> Windowsとしてのサインインは1つで、デスクトップは1つだと、
> 別のユーザー名で同時には使えないです。

というのはたとえば

C:\Users\Taro\Desktop> runas /user:Ichiro c:\progra~2\hidemaru\hidemaru.exe

といった操作をするケースのことで、確かに私のところでも同じエラーが出ました。

☆ ☆ ☆

さて、元のご相談には

> なぜこのような手番が必要かというと、
> 強力なファイル検索ソフト「MasterSeeker」を使用していて
> 検索結果のソースを秀丸で表示する場合、
> 既に他のテキストを開けている時があるためです。

とありますが、この「MasterSeeker」を管理者ユーザーで走らせて、そこから(同じユーザーで)テキストビューワを起動する、という流れだと思いますので、2つほど選択肢が考えられると思います。

@もし、MasterSeekerでヒットしたファイルを閲覧する際に管理者権限が不要なら、次のようなバッチファイルを用意して、MasterSeekerからはそれを呼び出す。

(ひょっとして、こちらの方法は既にご存じですかね?)

@echo off
setlocal
set hm="c:\progam files (x86)\hidemaru\hidemaru.exe"

@echo on
runas /user:ippanjin %hm% /bb %*
@echo off

「一般ユーザでサインイン→管理者ユーザでプロセスを起動→元の一般ユーザに出戻り」という流れなので恐らくパスワードの再入力は求められないと思いますが、もし実際に試してみて再入力が必要だった場合は、/user:ippanjin の前に /savecred オプションをつけることで、パスワードの入力は初回のみで済みます。
なお、その際にシステムに保存されたパスワード情報は、必要に応じてコントロールパネルから削除できるとのことです。
参考) https://atmarkit.itmedia.co.jp/ait/articles/0606/17/news015.html


Aもう一つの選択肢としては、「編集機能のない、テキストビューワ機能だけのアプリ」を何か別途インストールする、という方法も考えられます。こちらの方法なら、検索結果のファイルをうっかり書き換えてしまうリスクも下げられます。

☆ ☆ ☆

以上、ご参考までに。
[ ]
RE:40705 権限が違う場合の秀丸の追加起動時にエラーNo.40706
でるもんたいいじま さん 23/07/08 09:15 [ コメントを投稿する ]
  でるもんた・いいじまです。スミマセン訂正と新規情報。

> @もし、MasterSeekerでヒットしたファイルを閲覧する際に
> 管理者権限が不要なら、次のようなバッチファイルを用意して、
> MasterSeekerからはそれを呼び出す。

> @echo off
> setlocal
> set hm="c:\progam files (x86)\hidemaru\hidemaru.exe"

> @echo on
> runas /user:ippanjin %hm% /bb %*
> @echo off

このコマンドライン、落とし穴がありました。runasで起動するアプリに引数をつける時は、全体をダブルクォートでくくる必要があります。
つまりこの例だと、

(前略)
set hm=c:\proga~2\hidemaru\hidemaru.exe

@echo on
runas /user:ippanjin "%hm% /bb %*"
@echo off

とする必要があります。%* の中に ダブルクォートが含まれないという保証はどこにもないので、バッチファイルではダメです。

というわけて、WSHなりPowerShellなりを使ってもいいのですが(特にPowerShellなら、わざわざrunas.exeを呼び出さなくても組み込みコマンドでユーザー変更ができるかもしれません)、もうひとつ、別の方法がありました。

すばり、「hidemaru.exe の最初の引数として /@private をつける」です(V9.19以降の秀丸が必要)。そうすると、既に稼働中の秀丸のプロセスとは無関係に秀丸が起動してくれます。
他のデフォルト設定も自動では一切読み込まないので、もしかしたら少々難があるかもしれませんが、一時しのぎとしてはこういう方法もある、ということで。
[ ]
RE:40706 権限が違う場合の秀丸の追加起動時にエラーNo.40707
秀丸担当 さん 23/07/10 11:39 [ コメントを投稿する ]
  情報ありがとうございます。
runasコマンドでユーザーを指定する方法があるのですね。
コンソール画面でパスワードを入れるのがあれかと思いましたが、/savecredを使うといい感じでした。
テストも含めて何かと使えそうです。

/@privateは分離して動くのでどこでも起動はできますが、言われている通り設定が素のままなので一時しのぎにしかならないかもしれません。
[ ]
RE:40707 権限が違う場合の秀丸の追加起動時にエラーNo.40708
(-L-) さん 23/07/10 15:15 [ コメントを投稿する ]
runasは最初に思いつくものですね。
runasで秀丸を管理者モードで常駐させておけば、すべてが管理者モードで統一されるのでユーザー問題がそもそも起きないかなと思いついていたのですが、管理者モードで秀丸を常駐させたあとに、管理者権限ではないユーザーで新しいファイルを編集しようとする毎に秀丸エディタが管理者で開くけどいい?的なメッセージを出してくる仕様のようだったので傍観していました。
(そもそもの使い方が限定的っぽいので、そのために現仕様の修正を提案するほどの動機は私にはなかったので)

ということで、runasの話題がでてきたのでちょっとコメント汚しさせていただきました。(ご参考まで)
[ ]
RE:40705 権限が違う場合の秀丸の追加起動時にエラーNo.40709
COBOLER さん 23/07/11 09:15 [ コメントを投稿する ]
でるもんたいいじま様

遅くなって申し訳ありません。

>@もし、MasterSeekerでヒットしたファイルを閲覧する際に管理者権限が不要なら
管理者権必要なのです。MFT(Master File Table)内のデータを直接参照して検索を行う、というためではないかと思います。
管理者権限無しで起動すると、ファイル検索ができなくなってしまいます。
[ ]
RE:40703 権限が違う場合の秀丸の追加起動時にエラーとなりますNo.40710
COBOLER さん 23/07/11 10:50 [ コメントを投稿する ]
秀丸担当様

ご回答ありがとうございました。
>一般ユーザで秀丸を起動した後管理者権限で秀丸を起動
というのが、逆の場合と違って昇格ではなく管理者権限の別ユーザでの実行となるということで全然違いますね。
安直に考えておりました。

MasterSeekerは管理者権限で実行しないとファイル情報を取得できず、またビューワなど細かい設定ができないので、一旦ワーク用ディレクトリに
コピーして開けるなどで対応するようにします。または別の検索ツールに変えるか。。。

[ ]
RE:40710 権限が違う場合の秀丸の追加起動時にエラーとなりますNo.40711
秀丸担当 さん 23/07/11 12:02 [ コメントを投稿する ]
  一般ユーザー秀丸が、管理者権起動し直すのは、どちらかというと楽なほうで、ボタンを用意すれば一応できます。
今やっている昇格/非昇格の相互の、昇格と全く同じで、そのときにパスワードを求められるだけになります。

別ユーザーの管理者が、一般ユーザーで起動し直すのが、ちょっと難しいということでした。
今やっている昇格/非昇格の相互では、非昇格側に起動を委託するみたいな感じですが、それだとうまくいかないです。
実は別の方法もあって、普通にWindowsにサインインしているユーザーとして起動する方法もあります。
幾つかのインストーラでもしているのですが、管理者のインストーラが最後にサインインしているユーザーとして普通にアプリ起動するものです。
今現在どっちの状態の判別とか、ストアアプリでできないとか、懸念があるのですが、いろいろ判別せずに2つのボタンを出してどっちかはうまくいくようなようにしてみようと思います。
[ ]
RE:40711 権限が違う場合の秀丸の追加起動時にエラーとなりますNo.40728
COBOLER さん 23/07/18 10:09 [ コメントを投稿する ]
V9.25β3 「Windowsのサインインが標準ユーザーのとき、管理者などの異なるユーザー名が同時に起動するときのエラーで、別ユーザーで起動し直すか通常に起動し直すかのボタンを追加。」

確認しました。
@通常ユーザで秀丸エディタを起動した後、MasterSeeker等管理者から追加でエディタを起動した場合「通常実行」で続行可能。
A逆の場合は「別ユーザで実行」で管理者ID/Passを入力を行うことで続行可能。
いずれの場合も続行可能で要望で書かせていただいた件が解消しました。
Aは少々面倒ですが、基本的に@の場合がほとんどなので問題ありません。

対応ありがとうございました。
[ ]
RE:40728 権限が違う場合の秀丸の追加起動時にエラーとなりますNo.40729
秀丸担当 さん 23/07/18 10:55 [ コメントを投稿する ]
  早速のご確認ありがとうございます。
現在の状態を判別していないので、どちらを選べばいいかということがあるのですが、把握されていれば大丈夫になるかと思います。
できたということでよかったです。
[ ]

[ 新規に投稿する ]