Windows 7でユーザーのグループメンバーシップを強制的に更新するにはどうすればよいですか?


27

私は、.NET Windows認証を使用し、ユーザーのグループメンバーシップに依存してWebサイトのさまざまな領域にユーザーを承認するWebアプリケーションを作成しています。現在、私はドメインの一部ではなく、ADを使用していない開発マシンにいます。代わりに、ローカルユーザーグループを使用しています。一般に、これはそのままで正常に機能しています。

ただし、アプリケーションをテストするときに、ユーザーアカウントでロールを追加および削除して、機能していることを確認する必要があります。役割を追加しても、Windowsからログアウトして再度ログインするまで伝達されないようです。

ログオフせずにグループメンバーシップを強制的に更新することはできますか?


3
ステーションからログオフするのですか、それともウェブサイトですか?
ダン

良い点は、明確にするために質問を更新したことです。Windowsユーザーアカウントからログオフし(Windowsからログアウト)、再度ログインする必要があります。
kingdango

グループメンバーシップへのシステム更新を強制します。コマンドtask killエクスプローラーを再度実行した後、エクスプローラーを通常どおり実行します。新しいエクスプローラインスタンスにも新しいセキュリティトークンがあります。

回答:


25
taskkill.exe /F /IM explorer.exe
runas /user:%USERDOMAIN%\%USERNAME% explorer.exe

これにより、エクスプローラーが強制終了され、ユーザーアカウントで再度開きます...パスワードの入力を求められ、新しいトークンが取得され、メンバーシップが更新されます。


1
これは機能しているように見えますが、マップされたドライブ接続が壊れていることがわかりました。
SomeGuy

2
Windows 10 Proで動作しない
デイブクシノー

woshub.com/…も参照してください。コンピューター用klist -lh 0 -li 0x3e7 purge、ユーザー用klist purge。NB:これらのコマンドを自分で試したことはありません。リンクされた記事からの情報を繰り返します。
JohnLBevan

10

これはシステム全体の規模で実行することは困難ですが、個々の実行可能ファイルでは、プロセスを強制終了してユーザーの資格情報で再起動することで可能です。

ログオンすると、グループメンバーシップなどを反映したトークンを受け取ります。このトークンを更新する唯一の方法はログインすることです。


これが残念な場合は、テストが少し妨げられます。洞察力に感謝します...私は別のユーザーがより良い答えを持っていることを望んでいますが、あなたが何を話しているか知っているあなたの15k +の担当者によって推測しています。
キングダンゴ

2
@kingdangoを常に使用runasして、自分とは異なるユーザーとしてプロセスを実行し、そのテストユーザーのグループメンバーシップを操作できます。プロセスを閉じて再起動するたびにrunas、新しいセッションが作成され、変更されたグループメンバーシップ反映されます。私はこれをテストしていませんが、理論的にはこの方法で動作するはずです。
MDマーラ

私の開発環境のためにそれは難しいですが、探索する価値があります。マークが迅速かつ思慮深い対応をしてくれてありがとう。
キングダンゴ

4

Webサイトへのログインを許可するためにADのユーザーのメンバーシップに依存するWebサイトの同様の状況がありました。考慮すべきことの1つは、Webサーバーに、提供された資格情報を使用してADサーバーへの認証/クエリを実行させることです。WebサーバーがADにアクセスし、ユーザーがグループXYZに属しているかどうかだけをサーバーに照会する場合、ユーザーは、新しい取得にログオン/ログオフを必要とするユーザーのログイントークンからではなく、ADから直接リストを取得します適切な特権を持つトークン。

現時点では、開発マシンにはそのアクセス権がないという説明からわかりますが、展開するときにこの機能が必要なように思えます。

トークンに依存している場合は、ログオフして再度ログインする必要があります。


思慮深い対応をありがとう。それが問題を解決する良い方法です。通常の状況では、ユーザーがログオフしてマシンに再度ログインする必要がある場合であっても、ユーザーが更新されたアクセス制御を受け取るまで待つのはうれしいです。これが負担になるのはテストシナリオだけですが、それほど大したことではありません。正直なところ、ショートカットを調べるのに時間がかかりました。:-)
キングダンゴ

1
シナリオにもよりますが、便利な場合もあります。サーバーがDCに直接クエリを実行している場合、ほとんどの場合「移行」が変更されるため、アクセスが切断または追加された場合、クライアントのログオン/ログアウトサイクルは発生しません。ITスタッフが少し簡単になります。
バートシルバーストリム

3

コマンドラインを介してこれを完全に行うスクリプト化された方法があります。klistを使用できます。

klist purge

Purging tickets destroys all tickets that you have cached, so use this attribute with caution. It might stop you from being able to authenticate to resources. If this happens, you will have to log off and log on again.DOESは[Purge](https://technet.microsoft.com/en-us/library/hh134826.aspx?f=255&MSPPError=-2147217396)かかわらず、トークンをregrab?または、既存のものを捨てて、何も残さないのですか?トークンがない場合、エクスプローラー(またはトークンを必要とするプロセス)を自動的に再起動しますか?
ブラッド

新しいリソースをリクエストすると、トークンが再生成されます。ADオブジェクトにグループメンバーシップを追加するときに、リモートユーザーとワークステーションのセキュリティグループを更新するときに、これを頻繁に使用しました。
Nixphoe

ああいいです(そして、そのコメントの書式設定を台無しにしました。...あなたはアイデアを得る)
ブラッド

-2
  • タスクマネージャーを開く
  • Explorer.exeを強制終了(それぞれ1つ)
  • [ファイル]> [新しいタスク(実行...)]をクリックします。
  • CMDを入力
  • コマンドプロンプトで「RunAs / user:\ explorer.exe」と入力します

できた


2
何も間違っていません。質問を読んでください。
HopelessN00b

4
@ HopelessN00bこれは基本的に受け入れられた答えになるもののようです。
ブラッド

1
@Bradそれは正しいか間違っているかに関係ありません。MDMarraの権利(Bartと同様)、これ(および受け入れられた答え)は間違っています。このプロセスは、システムにグループメンバーシップの更新を強制しません。
HopelessN00b

1
@ HopelessN00bあなたは正しいです。メンバーシップを更新するには、再起動するしかありませんでした。悲しいことに、両方の答えは間違っています。
ブラッド

1
ログオフしてからログインし直すと、再起動する必要はありません。グループメンバーシップはログイン時に適用されます。
チャーリーウィルソン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.