質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Q&A

解決済

1回答

2062閲覧

Windows のイベントログ(イベントビューアー)のRetentionDaysの設定について

sasaki0628

総合スコア106

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

0グッド

1クリップ

投稿2020/06/22 17:40

Limit-EventLog -LogName "Application" -MaximumSize 4MB -RetentionDays 30 -OverflowAction OverwriteOlder

上記コマンドをPwerShellの管理者権限で実行し、Get-EventLog -List
で設定値を確認すると確かに上記コマンドの通りに設定されているのですが、
イベントビューアーのApplicationのプロパティを確認すると

必要に応じてイベントを上書きをする

にチェックが入っています。どのサイトで確認しても OverwriteOlder は

イベントを上書きしないでログをアーカイブする

のことだと記されています。上記コマンドを実行してイベントビューアで確認したとき
イベントを上書きしないでログをアーカイブする
の箇所にチェックが入らなければおかしいように思うのですが、
これはどういった理由なのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

必要に応じてイベントを上書きをする
にチェックが入っています。どのサイトで確認しても
OverwriteOlder はイベントを上書きしないでログをアーカイブする
のことだと記されています。

例えばどのサイトにそのように解説されていたでしょうか。Limit-EventLogコマンドレットについてPowerShellの公式のリファレンス、特に翻訳の間違いを避ける為に英語のものにあたってみると、

Limit-EventLog - Microsoft Docs

オプション-OverflowActionへのOverwriteOlderの解説としては

OverwriteOlder: New events overwrite events older than the value specified by the MinimumRetentionDays property.
If there are no events older than specified by the MinimumRetentionDays property value, new events are discarded.

(意訳)イベントログの保存領域がいっぱいになったとき:

  • 新しいイベントは、MinimumRetentionDaysプロパティで指定された値より古いイベントを上書きします。
  • もしMinimumRetentionDaysプロパティで指定された値より古いイベントが無ければ、新しいイベントは破棄します。

とあります。アーカイブについては触れられていません。この解説内容は、.NET FrameworkのOverflowAction 列挙型のものと一致します。

結果として、質問者さんが疑問に思う「必要に応じてイベントを上書きをする」項目にチェックが入っていることは適切なことになります。イベントログのアーカイブ操作に関しては、別の話でしょう。以下に、イベントログがいっぱいになったときのアーカイブについて記載があります。アーカイブについてはユーザーが自分で行うことを示唆しています。

EventLog.ModifyOverflowPolicy(OverflowAction, Int32) メソッド - Microsoft Docs

注意事項
オーバーフローポリシーを DoNotOverwrite に設定すると、イベントログがいっぱいになったときに新しいエントリが破棄されることを指定します。 この設定を使用す> る場合は、最大サイズの制限に達しないように、定期的にイベントログをアーカイブしてクリアするようにしてください。

投稿2020/06/22 18:36

dodox86

総合スコア9256

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sasaki0628

2020/06/22 19:19

回答ありがとうございます。 https://www.itc109.com/knowledge/powershell/ps-get-eventlog OverwriteAsNeeded が必要に応じてイベントを上書きする DoNotOverWrite がイベントは上書きしない OverWriteOlder がイベントを上書きしないでログをアーカイブする に1対1に対応していると思っていましたが、誤りということでしょうか。 しかし確かにOverWriteOlderは和訳すれば「古いものを上書きする」なので「イベントを上書きしないでログをアーカイブする」に対応すると考えるのはおかしいとも言えます。 GUI上で「必要に応じてログをアーカイブする」にチェックを入れたとき Get-EventLog -List では OverwriteAsNeeded になっていました。 「イベントを上書きしないでログをアーカイブする」にチェックを入れたとき Get-EventLog -List では DoNotOverWrite になっていました。 「イベントを上書きしない」にチェックを入れたとき Get-EventLog -List では同様に DoNotOverWrite になっていました。 「イベントを上書きしない」にチェックを入れた状態で Limit-EventLog -LogName "Application" -MaximumSize 4MB -RetentionDays 30 -OverflowAction OverwriteOlder を実行すると「必要に応じてログをアーカイブする」にチェックが入っていました。 しかし、「イベントを上書きしないでログをアーカイブする」にチェックが入った状態で Limit-EventLog -LogName "Application" -MaximumSize 4MB -RetentionDays 30 -OverflowAction OverwriteOlder を実行しても、「イベントを上書きしないでログをアーカイブする」にチェックが入ったままでした。 仕組みが理解できていないため納得ができず、何かのバグのように思えてしまいます。
dodox86

2020/06/23 02:55

> https://www.itc109.com/knowledge/powershell/ps-get-eventlog > OverwriteAsNeeded が必要に応じてイベントを上書きする > DoNotOverWrite がイベントは上書きしない > OverWriteOlder がイベントを上書きしないでログをアーカイブする > に1対1に対応していると思っていましたが、誤りということでしょうか。 そちらの記事のそれらのオプションの説明の取り上げ方の意図は分かりませんが、あくまで非公式の説明記事です。”Get-EventLog -List” の実行結果で得られる"OverflowAction"の値は、公式の以下のドキュメントを見ると https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/get-eventlog?view=powershell-5.1 ですので、そちらの挙げた記事が(間違いとまでは言えませんが)誤解の受けやすい記述と言えるのかもしれません。できうる限り、公式の(マイクロソフトの)情報でウラを取らないといけないと思います。 > を実行しても、「イベントを上書きしないでログをアーカイブする」にチェックが入ったままでした。 > 仕組みが理解できていないため納得ができず、何かのバグのように思えてしまいます。 こちらは、単に表示の更新ができていないだけなのかもしれません。 Windowsのイベントログは、Windowsに常駐して稼働する"Windows EventLog" Widowsサービスと言うプログラムが管理しています。Limit-EventLogとはこの常駐しているサービス動作に関して、どのような保存方法をするかを指定するコマンドレットです。 (<一部私の推測が入りますが、大きく間違ってはいないはずです) Limit-EventLogで設定を変えたとき、即反映されずに以前の値が出力されるようなケースは、これに限らずよくあるバグまたは問題です。確認した上、あきらかに動きがおかしいと思える場合はPowerShellのイシュー(issue)として報告するという手もあります。(それで改修されるとも限りませんが) https://github.com/PowerShell/powershell/issues あるいは既知の問題として報告済みかもしれません。(私は確認していません)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問