パスワードを必要とせずに、現在ログインしている別のユーザーとしてアプリケーションを実行する方法はありますか?

パスワードを必要とせずに、現在ログインしている別のユーザーとしてアプリケーションを実行する方法はありますか?

LAN 経由で「psexec」を使用して、同時にシステムにログオンしている別のユーザーとしてコマンドを実行したいと思います。

言い換えると、私は組み込みの管理者アカウント資格情報で「psexec」を使用して、Bob のデスクトップでプログラムを実行したいと考えています。このプログラムは、Bob が自分の資格情報を使用して起動したと認識する必要があります。私は管理者アカウントを使用しているので、これを行うために Bob のパスワードを必要とせずに済むようにしたいと思います (おそらく「runas」を使用)。

編集1

説明:

私は管理者アカウントを所有しているので、すでにシステムにアクセスできます。

エージェント/サービス/exe をバックグラウンドで常に実行しておくのは気が進みません。

これはホームセットアップです。

私は次のようなことを考えていました:http://reboot.pro/files/file/237-runassystem-and-runfromtoken/ただし、他のユーザーには適用されません。

ユーザーごとのパスにファイルを保存するゲームやメール クライアントなどのプログラムを起動できるようにしたいと考えています。** そのため、管理者として実行しても、プログラムは Bob (ログオンしているユーザー) のデータ プロファイルではなく管理者のデータ プロファイルを読み込むため、効果がありません。

私の最終的な目標は、「whoami」コマンドを起動して、自分がログインしたユーザーであることを示すことです。

アップデート

RunFromToken を使用して、SYSTEM として 'cmd.exe' を取得し、自分のアカウント (パスワードで保護) として 1 つのインスタンスを取得することができました。これをさらにテストします。

答え1

いいえ。これは個人のセキュリティという点を完全に無視することになります。

ただし、SCCM などの展開システムにアクセスできる場合は、ユーザーがログオンしているときにのみパッケージを実行し、ユーザーのコンテキストで実行することができます。また、パッケージをログオン スクリプトの一部として実行することもできます。このスクリプトもユーザーのコンテキストで実行されます。

答え2

ネットワーク経由でユーザーになりすますことに関しては、これらの回答はすべて正しいです。ただし、特定の条件下では、パスワードを必要とせずにローカル ユーザーになりすますことができます。

  1. ローカル管理者グループのメンバーである必要があります。
  2. 現在システムにログインしている他のユーザーになりすますことのみ可能です
  3. ユーザーの偽装はローカル システムに限定されます。ローカル管理者グループのメンバーとしてリモート システムにログインしない限り、リモート システム上のユーザーを偽装することはできません。

これは、Windows がローカルにログインしたユーザーを偽装する権限をシステムおよびローカル管理者に委任する方法によって許可されます。この権限に関する情報は、ローカル グループ ポリシー > ローカル ポリシー > ユーザー権利の割り当て > 認証後にクライアントを偽装するで確認できます。

私が知っている限り、これを可能にするツールの 1 つは Process Hacker 2 です。管理者としてツールを実行し、偽装したいユーザーとして実行されているプロセスを見つけます。それを右クリックし、[その他] > [このユーザーとして実行...] を選択して、そのユーザーとして実行するバイナリ パス (例: cmd) を入力します。すると、CMD はそのユーザーのパスワードを要求せずにそのユーザーとして開きます。

答え3

そんなことはできない、それにはちゃんとした理由がある。

これが可能であれば、あらゆるウイルスにとって聖杯となるでしょう。Windows
コンピューターでは、複数の管理者アカウント (LocalSystem アカウントや NetworkSystem アカウントなど) で常に多数のプロセスが実行されています
。要求が実現可能であれば、任意のプロセスがそれらのアカウントに新しいプロセスを挿入できます。システムをウイルスから保護することは絶対に不可能です。(任意のプロセスとは、文字通りその通りで、ウイルスも含まれます!)

その他の問題はプライバシーと説明責任です。
別のユーザーが実行したかのように操作を偽装できれば、他のユーザーのデータにアクセスできます。プライバシーは無視されます。
また、実際にそのユーザーが何かを行ったのか、その人になりすました誰かが行ったのかを判断する方法はありません。つまり、誰が何をしたかを確実に追跡できなくなります。説明責任は失われますが、これは医療システムのようにコンプライアンス規制に準拠する必要があるシステムでは大きな問題です。

したがって、これらはアカウントの環境を互いに分離する非常に良い理由です。(他にもたくさんありますが、それはこの質問の範囲を超えています。)

答え4

他の回答で指摘されているように、おそらくあなたは本当にこれをしたくないでしょう。これが簡単であれば、たとえば、ユーザーに違法な Web サイトを強制的にロードさせて、解雇され逮捕されるようにすることができます。管理者でさえ、そのような神のような力を持つべきではありません。

実際にやりたいことが、現在コンピュータ (ローカルまたはリモート) にログインしているユーザーを確認することだけであれば、MS TechNet (旧 SysInternals) の「psloggedon」ユーティリティを検討してください。https://technet.microsoft.com/ja-jp/sysinternals/bb897545.aspx

それでもユーザーとしてタスクを実行する必要がある場合は、ログイン時にタスクを実行することを検討してください。もちろん、セキュリティ上の理由から、ユーザーを追跡することはできますが、Windowsは走る問題のユーザーであるかのようにタスクを実行します。

関連情報