LoginSignup
5
6

More than 5 years have passed since last update.

WindowsPowerShell入門 - 日付毎に最後のイベントログを表示する

Last updated at Posted at 2013-06-29

Windows PowerShell は、Windowsの次世代コマンドラインです。
コマンドプロンプトではできなかったあんなことやこんなことがコマンドラインでできるようになります。

参考

GUIユーザーのためのPowerShell入門 | コラム | エンタープライズ | マイナビニュース

特徴

  • オブジェクト指向
  • いまどきの制御構造が使える
  • .NET Frameworkの全機能が使える

起動方法

A. 「ファイル名を指定して実行」で「powershell」と入力してEnter

「ファイル名を指定して実行」ダイアログは、「Windowsキー + r」同時押しで出てきます。

B. エクスプローラーのアドレスバーに「powershell」と入力してEnter

エクスプローラーで開いている場所がカレントディレクトリになります。

基本コマンド

Windowsは大文字小文字を区別しないので、全て小文字でもOKです。

イベントログの一覧を表示

> Get-EventLog -List

Get-EventLogのヘルプを表示

> Get-Help Get-EventLog 

イベントログ(Systemログ)を表示

※すごいでるので、満足したら「Ctrlキー + c」同時押しで終了させる。

> Get-EventLog System

最新のイベントログ5件を表示

> Get-EventLog System -Newest 5

Errorログを抽出(grep)

PowerShellにもgrep用コマンドはありますが、
慣れ親しんだコマンドプロンプトのコマンドも使えます。

> Get-EventLog System -Newest 500 | findstr "Error"

日時を表示

> Get-Date

一日前の日時を表示

> (Get-Date).AddDays(-1)

一日と一時間前の日時を表示

> (Get-Date).AddDays(-1).AddHours(-1)

一日と一時間前以降のイベントログを表示

> Get-EventLog System -After (Get-Date).AddDays(-1).AddHours(-1)

好きな日時を表示

> New-Object System.DateTime 2013,11,29,11,29,29,29

変数に格納

> $fav_date = New-Object System.DateTime 2013,11,29,11,29,29,29

変数の値を表示

> echo $fav_date

または

> $fav_date

1から10まで表示

比較演算子はUnixシェルと似ています。

> for ($i = 1; $i -le 10; $i++) {
>     echo $i
> }
> # いっこ余計にEnterで実行

応用

日付毎に最後のイベントログを表示

> for ($day = 1; $day -le 30; $day++) {
>     $start_time = New-Object System.DateTime 2013,6,$day,0,0,0,0
>     $end_time   = New-Object System.DateTime 2013,6,$day,23,59,59,999
>     Get-EventLog System -After $start_time -Before $end_time -Newest 1
> }
>

スクリプトに書いて実行することもできますが、権限を変更する必要があります。

アプリケーションとサービスログを表示

印刷ログを表示するコマンド

> Get-WinEvent -ProviderName "Microsoft-Windows-PrintService"
5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6