PowerShell を使用して日付設定を調整する方法
PowerShellは、毎回手動で操作せずにシステム日付を調整したい時に便利です。なぜ使えるのかはよく分かりませんが、特定の日付に設定したり、時間や日数で前後に移動させたりしたい時があります。日付に敏感なアプリのテストや、仮想環境でちょっといじってみたい時などです。使い方は慣れてしまえば簡単ですが、急いでいる時はコマンドを忘れたり、間違えたりしやすいです。
もちろん、Windowsではコントロールパネルを詳しく調べない限り、このことがはっきりとは分かりませんが、PowerShellならこれらすべてを瞬時に実行できます。ただし、システム時刻をいじると様々な問題が発生する可能性があるので、変更後は必ずリセットしてください。また、権限によっては、PowerShellを管理者として実行する必要があるかもしれません。そうしないと、これらのコマンドがアクセス拒否で失敗する可能性があります。最悪の場合、「アクセスが拒否されました」というエラーが表示されるので、管理者として実行することをお勧めします。
PowerShellを使用してWindowsの日付を変更する方法
固定値で日付を素早く変更する
これは最も基本的な方法です。日付を特定の日付に設定します。テスト中や、単に日付を偽装したい場合に便利です。PowerShellを管理者として開き(Win + X「Windows PowerShell (管理者)」を選択)、次のように入力します。
Set-Date -date "14.11.2017 18:00"
日付と時刻の文字列を必要なものに置き換えてください。簡単ですよね?設定によっては、すぐに失敗しても再起動後に機能する場合もあります。これは、権限がない場合やセキュリティポリシーが適用されている場合、Windowsが時々かんしゃくを起こすためです。
日数、時間、分数を加算または減算する
この機能は、現在の日付を今日を基準にして調整できるので便利です。日付を1週間前に戻したい場合(過去のシナリオのテストでよく使っていました)、次のようにします。
Set-Date (Get-Date).AddDays(-7)
これは現在の日付を読み取り、7日を減算して設定します。また、メソッドを連鎖させることで、分、秒、さらには時間を加算することもできます。
Set-Date (Get-Date).AddDays(-7).AddMinutes(10).AddSeconds(20)
こうすると日付が 7 日前に戻り、10 分 20 秒が追加されます。非常に柔軟だと言えます。
-adjustで時間を直接調整します
ちょっと奇妙ですが、時間を正確に調整したい場合は、-adjustパラメータを使用できます。例えば、1時間半ずらしたい場合は次のようにします。
Set-Date -adjust -1:30:0
秒数や日数を計算するよりも簡単で、特に一度きりの調整であれば便利です。ただし、システム時刻を変更すると時計がずれる可能性があるので、特に理解がない限り、一時的な使用にとどめてください。
PowerShellを管理者権限で実行していない場合、または何らかのポリシーによってシステム時刻の変更がブロックされている場合、これらのコマンドが機能しない可能性があることにご注意ください。また、日付文字列のフォーマットも重要です。多くの場合、想定されたフォーマットと一致しないためにエラーが発生します。場合によっては、ロケール設定を微調整したり、システムの言語設定に応じて異なる日付形式を使用したりする必要があるかもしれません。
もう一つ注意すべき点があります。一部の機種では、Windowsの設定で「時刻を自動的に設定する」オプションがオンになっている場合があり、手動で行った変更が上書きされる可能性があります。そのため、手動で行った変更が反映されない場合は、「設定」>「時刻と言語」で自動更新が有効になっていないかご確認ください。
全体として、PowerShell は日付をすばやく操作するための強力なツールです。ただし、特に時間の変更に関しては、小さなミスでシステムが異常な動作をする可能性があるので注意が必要です。
まとめ
- PowerShell コマンドを使用すると、特定の日付を設定したり、現在の時刻を変更したりできます。
Set-Date -date "DD. MM. YYYY HH:MM"固定の日付に使用します。- 今日を基準として日付をシフトするには、次のようなメソッドを使用します
(Get-Date).AddDays(-n)。 - 権限を取得するには、必ず PowerShell を管理者として実行してください。
- 手動での変更が反映されない場合は、Windows の設定を確認してください。
まとめ
PCの日付をいじるのは決して軽々しくできるものではありませんが、一時的に必要であればPowerShellを使えば驚くほど簡単にできます。権限の問題には注意し、テストが終わったら時計をリセットするのを忘れないようにしてください。ほとんどの環境では問題なく動作するようですが、Windowsは時々この辺りがおかしくなることがあります。この情報が誰かの時間を節約したり、おかしなテスト環境を修正したりするのに役立つことを願っています。頑張ってください!
この記事は役に立ちましたか?