Active Directory ドメインで、ユーザのログオン/ログオフの状況を監査したい

監査ポリシーでは、ログオン画面からの対話的なユーザのログオン、ログオフの監査を行うことができないのです。

対話的なログオンログオフを確実に記録したいという場合は、ログオンスクリプトやログオフスクリプトを活用すると良いでしょう。


ログオンスクリプトのサンプル

Const AUDIT_SUCCESS = 8

REM Create Objects
Set objShell = WScript.CreateObject("WScript.Shell")
Set objNetwork = WScript.CreateObject("WScript.Network")
Set objADSys = CreateObject("ADSystemInfo")

REM Build a message string
strMsg = "ユーザ " + objNetwork.UserName + " が、ドメイン " + _
    objNetwork.UserDomain + " (サーバ " + objADSys.GetAnyDCName + _
    ") にログオンしました。" 

REM Write to Eventlog
objShell.LogEvent AUDIT_SUCCESS, strMsg, objADSys.GetAnyDCName


ログオフスクリプトのサンプル

Const AUDIT_SUCCESS = 8

REM Create Objects
Set objShell = WScript.CreateObject("WScript.Shell")
Set objNetwork = WScript.CreateObject("WScript.Network")
Set objADSys = CreateObject("ADSystemInfo")

REM Build a message string
strMsg = "ユーザ " + objNetwork.UserName + " が、ドメイン " + _
    objNetwork.UserDomain + " (サーバ " + objADSys.GetAnyDCName + _
    ") からログオフしました。" 

REM Write to Eventlog
objShell.LogEvent AUDIT_SUCCESS, strMsg, objADSys.GetAnyDCName

こうしたスクリプトを、適切なGPOの「ユーザの構成」中にあるログオンスクリプトやログオフスクリプトとして構成することで、ログオンやログオフの情報をイベントログに出力することが可能です。


WSUS の [今すぐ同期] ボタンをコマンドラインから実行したい - Blog -マイクロソフトに一喜一憂する日常-

どうやら標準機能としてはコマンドラインから [今すぐ同期] / [Synchronize Now] ボタンを実行する方法はないようで、WSUS API の StartSynchronization を使う方法が紹介されています。
リンク先の記事では単純に StartSynchronization を紹介しているだけではなく、記事どおり作業すると StartSynchronization.exe というモジュールを生成してくれます。とりあえずこのモジュールを使えば、表題の件である“コマンドラインから[今すぐ同期] の処理を行う”という要件を満たせます。

Synchronize WSUS Replica (slave) Server from the Command Line - PatchAholic...The WSUS Blog!
訳してみた*1
1) 次のコードをコピーしてメモ帳等へ貼り付け"StartSynchronization.vb"という名前で保存します。

Imports Microsoft.UpdateServices.Administration
Module StartSynchronization
     Sub Main()
         Dim server As IUpdateServer
         Dim subscription As ISubscription
         'connect to the local server
         server = AdminProxy.GetUpdateServer
         subscription = server.GetSubscription()
         subscription.StartSynchronization()
     End Sub
End Module

2) コマンドプロンプトを開き、1)で保存した"StartSynchronization.vb"が含まれたフォルダをカレントにします。

3) 次のコマンドを実行します(コマンドは1行で入力する必要があります)

%WINDIR%\Microsoft.NET\Framework\v1.1.4322\vbc.exe  StartSynchronization.vb /r:"%PROGRAMFILES%\Update Services\service\bin\Microsoft.UpdateServices.Administration.dll"  /out:StartSynchronization.exe

以上で"StartSynchronization.exe"が作成されます。
これを実行するとWSUSの同期がすぐ実行されます

Windows Server Insider 運用 − @IT

WSUSサーバーにクライアントPCが報告を上げてこない場合の対処 - 暫定日記 / 日々の泡

アップデートサービスを停止
   net stop wuauserv

regedit にて以下のレジストリ値を削除。
   [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate]
   AccountDomainSid
   SusClientId
   PingId

xmlを関連づけるため?以下のコマンドを実行
   %windir%\system32\regsvr32.exe %windir%\system32\MSXML3.dll

そして、SoftwareDistributionフォルダを削除、windowsupdate.log を名前変更。
   rmdir C:\WINDOWS\SoftwareDistribution /S /Q
   ren C:\WINDOWS\windowsupdate.log windowsupdate.old

アップデートサービスを開始
   net start wuauserv

同期
   wuauclt /resetauthorization /detectnow

*1:つもりです。自信はありませんorz