web-dev-qa-db-ja.com

ログオフして再度ログオンし、ユーザーにグループを追加する必要がある場合がある理由

Windowsシステム(特に、私が使用しているWindows Server 2008R2)では、ローカルユーザーをローカルグループに追加するとき、この新しいグループがローカルグループに登録される前に、ユーザーがログオフして再度ログオンする必要があります。

ただし、グループの登録はすぐに行われることもあります。ユーザーがログオフして再度ログオンする必要はありません。

これはなぜですか?

5
user1034912

ローカルユーザーとローカルグループについて言及しているため、Active Directoryは脇に置いておきます。

ユーザーのセキュリティトークンに新しいグループメンバーシップを含めるには、常にを再認証する必要があります。これは通常、再ログインする必要があることを意味します。 LSASSは、ユーザーが認証するときにのみこのトークンを渡します。これは、ログオン時にのみ通常ですが、C:\> runas /user:Yourself cmd.exeのようなことができ、プロンプトが表示されますパスワードを入力すると、認証が再度行われ、新しいグループメンバーシップが取得されます。 (ただし、グループメンバーシップを照会した可能性のある他の実行中のアプリケーションが、それらのアプリケーションを再起動せずにデータを更新することなどは保証できません。)

klist.exeについては言及していません。これは、ローカルユーザーとグループについてのみ話しているためです。)

この記事はほとんど問題の権威です。

ユーザーが認証されると、ローカルセキュリティ機関(LSA)がそのユーザーのアクセストークン(この場合はプライマリアクセストークン)を作成します。アクセストークンには、ユーザーのセキュリティ識別子(SID)、ユーザーが属するグループのすべてのSID、およびユーザーの特権が含まれています。ユーザーのアクセストークンが発行された後にユーザーをグループに追加した場合、またはユーザーアカウントに割り当てられた権限を変更した場合、ユーザーはログオフしてから再度ログオンしてからアクセストークンを更新する必要があります。

スレッドまたはプロセスがセキュリティ保護可能なオブジェクトとやり取りしたり、特権を必要とするシステムタスクを実行しようとすると、オペレーティングシステムは有効なアクセストークンをチェックして、承認のレベルを決定します。スレッドが偽装している場合、通常、有効なトークンがスレッド上のトークンと見なされます。セキュリティ保護可能なオブジェクトと対話するスレッドが偽装されていない場合は、プロセスのトークンでアクセス決定が検査されます。

したがって、アクセストークンには、プライマリと偽装の2種類があります。すべてのプロセスには、プロセスに関連付けられたユーザーアカウントのセキュリティコンテキストを説明するプライマリトークンがあります。通常、プライマリアクセストークンはプロセスに割り当てられ、そのプロセスのデフォルトのセキュリティ情報を表します。一方、偽装アクセストークンは、通常、クライアント/サーバーシナリオで使用されます。偽装トークンを使用すると、スレッドは、そのスレッドを所有するプロセスのセキュリティコンテキストとは異なるセキュリティコンテキストで実行できます。

9
Ryan Ries

このビデオはある意味で質問に答えます https://vimeo.com/73500318

このビデオは、ユーザーがログオフして再度ログインする必要なく、グループメンバーシップが追加されたばかりのリソースにユーザーがアクセスするという問題も解決します。

ログインログオフの煩わしさを回避するソリューションの概要を次に示します。

  • オープンコマンドプロンプトの強制終了

  • Explorer.exeプロセスを強制終了します(Windowsエクスプローラのみを強制終了します。他のすべてのアプリケーションは安全です)。

  • コマンドプロンプトで次のコマンドを入力します。runas/user:DOMAIN\Explorer.exe

    • パスワードの入力を求められます。パスワードを入力してください。

上記の例では、使用するユーザー名は、すでにログオンしているユーザー名と同じです。

0
Moiz Tankiwala