Windows 10 Version 1511 でリモート コンピューターへのイベント作成がされない

こんにちは。Windows プラットフォーム サポートの宮崎です。

今回は Windows 10 Version 1511 にてリモート コンピューターに対しイベントが作成されない問題についてご紹介いたします。

Windows OS ではユーザーが任意のイベントを出力できる方法を提供しており、例として eventcreate コマンドがございます。また、eventcreate コマンドでは /S オプションを用いることで、リモート コンピューター上のイベントログにイベントを作成することが可能です。

しかし、Windows 10 Version 1511 をご利用いただいている環境で eventcreate を利用し、他の OS 上にイベントを作成しようとすると、下記のエラーが表示されます。

> eventcreate /S ...
エラー: プロシージャ番号が正しい範囲にありません。

この問題は Windows 10 Version 1511 から以前の OS (Version 1511 以前の Windows 10 や、Windows 8.1, Windows Server 2012 R2 等) に対してイベントの作成を行おうとすると発生します。これは、Windows 10 Version 1511 で追加されたイベント記録のための関数が過去の OS に存在せず、この関数の有無を考慮していない実装のためとなります。なお、上記の理由のため、Windows 10 Version 1511 同士でのリモート コンピューターに対するイベントの作成では正常に動作します。

この動作は、8 月 2 日 (米国時間) 公開予定の Windows 10 Anniversary Update にて修正され、以前の OS に対しても正しくイベントの作成を行えるようになります。

Microsoft announces Windows 10 anniversary update available Aug. 2
https://news.microsoft.com/2016/06/28/microsoft-announces-windows-10-anniversary-update-available-aug-2/#sm.000norvcb16sre4zzif1vk70zcqcd

動作の修正まで今しばらくお待ちいただきますようお願い申し上げます。

- 影響範囲:
eventcreate コマンドならびに WshShell.LogEvent メソッド , Write-EventLog コマンドレット, System.Diagnostics.Eventlog.WriteEntry メソッド についても該当します。

- 回避方法:
リモート処理セッションの作成を通じて、任意のコンピューター上にイベントを作成することは可能です。(この場合、資格情報の入力が必要となります)

[WinRM を利用した Write-EventLog の実行例]
$session = New-PSSession -ComputerName コンピューター名 -Credential アカウント名
Invoke-Command -Session $session -ScriptBlock { Write-EventLog -LogName Application -EntryType Information -Source "TestSource" -EventId 1 -Message "TestMessage" }

- 参考情報:
Eventcreate
https://technet.microsoft.com/ja-jp/library/cc755240.aspx
/S オプションを用いることで、リモート コンピューターを指定できます。