Categories: OS

PowerShellのSet-Dateコマンド完全解説|システム日付と時刻を簡単に変更する方法

PowerShellはWindowsの管理作業を効率化する強力なツールですが、その中でも Set-Date コマンドを使うことで、システムの日付や時刻を簡単に変更できます。システムの時間を調整することで、ログのテストや特定のシナリオをシミュレーションする際に役立ちます。
本記事では、Set-Dateコマンドの基本的な使い方から応用例まで詳しく解説 します。PowerShell初心者の方にもわかりやすく説明しますので、ぜひ最後までご覧ください。


Set-Dateコマンドとは?

Set-Date は、PowerShellを使用してシステムの日付や時刻を変更するためのコマンドです。
このコマンドを使うことで、特定の日付に設定したり、時刻を微調整したりすることが可能です。

例えば、次のように使います。

Set-Date -Date "2025-03-03 12:00:00"

このコマンドを実行すると、システムの日付と時刻が「2025年3月3日 12:00:00」に変更 されます。


Set-Dateの基本的な使い方

1. 指定した日付と時刻に変更する

最も基本的な使い方は、-Date パラメータを使用して 任意の日付と時刻を設定する方法 です。

Set-Date -Date "2025-01-01 00:00:00"

このコマンドを実行すると、システムの時刻が「2025年1月1日 00:00:00」に変更されます。


2. 現在の日付に特定の時間を加算・減算する

PowerShellでは、日付や時刻を現在のものから増減することも可能です。
Get-Date コマンドと AddDaysAddHours メソッドを組み合わせることで、現在の時間を調整できます。

例1:現在の日付に1日追加

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

これにより、現在の日付の 翌日 に設定されます。

例2:現在の時刻に3時間追加

Set-Date -Date (Get-Date).AddHours(3)

3時間後の時刻に変更 できます。

例3:現在の時刻から5分引く

Set-Date -Date (Get-Date).AddMinutes(-5)

現在の時刻から5分引いた時刻 に変更できます。


特定の部分のみ変更する方法

時刻全体ではなく、特定の部分だけ変更することも可能です。

1. 時間だけ変更

Set-Date -Hour 15

現在の時刻の時間を「15時」に変更 します。分や秒は変わりません。

2. 分だけ変更

Set-Date -Minute 45

現在の時刻の 分だけ「45分」に変更 します。

3. 秒だけ変更

Set-Date -Second 30

現在の時刻の秒を「30秒」に設定 します。


UTC時間との変換

Set-Date は ローカル時間 (日本時間など) で設定されますが、場合によっては UTC (協定世界時) に変換 する必要があります。

1. UTC時間を設定

Set-Date -Date (Get-Date).ToUniversalTime()

現在の時刻を UTCに変換して設定 します。

2. UTC時間をローカル時間に変換

Set-Date -Date (Get-Date).ToLocalTime()

UTC時間を ローカル時間に変換 して設定します。


Set-Dateを使う際の注意点

Set-Dateコマンドは システム全体の日付と時刻を変更するため、注意が必要 です。特に以下の点に気をつけてください。

  1. 管理者権限が必要
    Set-Dateを実行するには、PowerShellを 「管理者として実行」 する必要があります。
    通常のユーザー権限ではエラーが発生する可能性があります。
  2. 時間の変更が影響を与えるシステムがある
    一部のアプリケーションやシステムでは、時間の変更が影響を与えることがあります。特に ログ記録やネットワーク同期に注意 してください。
  3. NTP(ネットワーク時刻同期)により自動的に戻ることがある
    WindowsはデフォルトでNTP(ネットワーク時刻同期)を使用しており、手動で設定しても 一定時間後に元の時刻に戻る場合があります
    NTPを無効にする場合は以下のコマンドを使用 してください。
  4. w32tm /config /manualpeerlist:"",0x8 /syncfromflags:manual /reliable:YES /update net stop w32time net start w32time

Set-Dateの応用例

Set-Dateはさまざまな用途で活用できます。

1. バッチ処理のテスト

システムの日付を未来や過去に変更して、特定の日付での動作をシミュレーション できます。

2. システムログの確認

ログのタイムスタンプを操作して、特定の時間帯に記録されるログの動作を確認 できます。

3. 自動スクリプトでの活用

PowerShellスクリプトに組み込んで、定期的に時間を調整することも可能です。


まとめ

PowerShellの Set-Dateコマンド は、システムの日付と時刻を変更するための便利なツール です。
特定の時間に設定するだけでなく、現在の時間から加算・減算したり、一部の要素だけ変更したりすることも可能 です。
しかし、管理者権限が必要 であり、NTPの影響を受ける可能性があるため、適切に設定する必要があります。

今回紹介した使い方を活用すれば、PowerShellでの時間操作を自在にコントロールできるようになります。ぜひ試してみてください!

upandup

Web制作の記事を中心に、暮らし、ビジネスに役立つ情報を発信します。 アフィリエイトにも参加しています。よろしくお願いいたします。

Recent Posts