質問: 異なるwindows資格情報を使用する複数のsublimeインスタンス? セキュリティを重視する専門家として、私は自分のコンピューターで非特権アカウントとして日常業務を行っています。特権ドメイン管理者アカウントを使用して、個々のプログラムやシェルなどを起動します。私はほとんどの場合、12個のファイルを開いた状態で、特権のないアカウントで崇高なエディターを開いています。ときどき、昇格された権限で新しい崇高なウィンドウを開きたいことがあります([スタート]-> [崇高]を右クリック-> [別のユーザーとして実行])。残念ながら、これは新しい崇高なインスタンスを開始するのではなく、既存の非特権インスタンスをフラッシュするだけです。[ファイル]-> [新しいウィンドウ]またはショートカットを使用して新しいインスタンスを開く方法について、googleには何十ものヒットがありますが、これはまったく役に立ちません。そのメソッドは、異なる特権のセットで実行されるウィンドウを作成しないためです。では、別のアカウントの権限で実行されているsublimeの2番目のインスタンスを開始するにはどうすればよいですか?私のシステムは現在windows8.1を実行しており、崇高なビルド3083を使用していますが、これはそれほど重要ではないと思います。
回答: windowsには、sublime textが実行していることを直接実行する方法はありません。つまり、この動作をオーバーライドする普遍的な方法はありません。プログラム自体がこの動作をどのように実装するかによって異なります。残念ながら、2番目のセッションが管理者セッションであるという事実により、特権レベル間の通信をブロックする手法を使用することが難しくなります。これは、特権の高いアプリが特権の低いアプリと通信する必要があり、ほとんどの場合許可されているためです。まず、セッションのマージを自動的にオフにすることができます。これの欠点は、現在のウィンドウで開きたいファイルが新しいウィンドウで開くことです。したがって、これは明らかに劣ったオプションですが、存在します。sublimeが単に名前でそれ自体の別のインスタンスを探す場合は、実行可能ファイルのコピーを2つ作成し、一方の名前に「admin」を追加し、「互換性」タブを使用して、そのインスタンスを常に管理者として実行する必要があるものとしてマークします。スタートバーまたはタスクバーに追加すると、管理者専用のエディターを簡単に起動できます。ただし、最初の更新時には更新されないことに注意してください。シンボリックリンクまたはハードリンクの使用は、sublimeがコマンドラインをチェックしている場合は機能しますが、イメージ名をチェックしている場合は機能しません(イメージ名は常に最初の正規パスに解決されます)。動作する可能性のある少し極端なアプローチは、ループバックリモートデスクトップを使用することです。これは、windowsのサーバーskuでのみ機能します。これは、2つの対話型セッションを同時にアクティブにする必要があるためです(windowsのクライアントバージョンでは禁止されています)が、sublimeは、通常はユーザー境界を無視する場合でも、セッション境界で停止する場合があります。ドメインadmincredsを使用してlocalhostにリモートでアクセスし、sublimeを起動します(または、sublimeを自動的に起動するように設定するか、一方のアプリをデスクトップに完全に描画するのではなく、デスクトップに転送するように設定します)。このアプローチは、(グローバルではなく)ユーザーセッションで作成される名前付きミューテックスなどに対して機能します。sublimeの非特権インスタンスが作成できる唯一の場所は、通常、特権バージョンがそれらを検索する場所ではないため、これはおそらくファイルまたはレジストリキーではありません。ただし、例外があります。たとえば、programdataは誰でも書き込み可能です。それがsublimeがそれ自体の他のインスタンスを検出する方法である場合、別のエディターを使用する以外に実行可能な提案はありません。これは、マルチユーザーと互換性のない完全な動作です。上記のアプローチが機能しない場合、唯一のオプション(常に管理者としてsublimeを起動するか、管理者の作業に別のエディターを使用する以外)は、開発者を突いて、マルチユーザーシナリオでより適切に動作するように依頼することです。ほとんどのwindowsプログラムは、複数のユーザーが一度にプログラムを実行したいという概念をよく認識していませんが、完全に互換性のないものもあります。 sublimeの開発者は、たとえば、セッションをマージする前に、既存のインスタンスが実行されている資格情報を確認できます...しかし、開発者がそれ自体を考えていなかった場合は、バグを報告して修正する必要があります。 。