私はWindows Server 2008 R2を使用しており、コンピューターComputerAの「ネットワークサービス」アカウントでWindowsサービスを実行しています。このWindowsサービスは、グループGroupAに読み取り権限を付与する(別のコンピューターComputerB上の)共有フォルダーにアクセスする必要があります。したがって、ComputerAのコンピューターアカウントをGroupAに追加して、ComputerAを再起動する必要があります。
私の質問は、ComputerAを再起動せずにグループメンバーシップをすぐに有効にする方法はありますか?
For Windows 2008 and higher:
psexec -s -i -d cmd.exe
C:\Windows\system32>whoami
nt authority\system
-- List the session 0 tickets (0x3e7 is the machine session 0)
klist -lh 0 -li 0x3e7
-- Purge the session 0 tickets
klist -lh 0 -li 0x3e7 purge
Should display:
Current LogonId is 0:0x3e7
Deleting all tickets:
Ticket(s) purged!
PSExecはMicrosoftからの無料のSysInternalsダウンロードです。
混乱を解消するために、このプロセスはコンピューターのグループメンバーシップを完全に更新し、セキュリティグループに適用されるグループポリシーがコンピューターを再起動せずにコンピューターに適用できるようにします。これは、Windows Server 2012 R2、Windows Server 2008 R2、およびユニバーサルセキュリティグループでテストおよび検証されています。短いバージョンは次のようになります:
psexec -s -i -d cmd.exe
klist tgt
(現在のチケットを表示し、サイズを書き留めます。また、システムとして実行しているため、現在のログオンIDは0x3e7であることに注意してください)klist purge
nltest /dsgetdc:domain.com
(ネットワークリソースに接続してTGTリクエストを強制するこのコマンドまたはその他のコマンドを実行します)klist tgt
(現在のチケットを表示し、サイズを書き留めます。サイズは少し大きくする必要があります。whoami/ groupsは新しいメンバーシップを反映しないことに注意してください)この時点で、システムコマンドプロンプトが終了する場合があります。
gpupdate /force
gpresult /h gpresult.html
Gpreportを表示すると、グループポリシーが適用されていることが表示されます。
Netlogonサービスを再起動しても同じことができると思いますが、全体的な影響がどうなるかはわかりません。ただし、ユーザーが一時的にユーザーを切断することは確かです。