ヘッダー画像

【Windows】リモート接続だとパスワード有効期限が通知されない

投稿 2026年5月23日 最終更新 2026年5月23日 専門用語多め

事象

前提や起きている環境・事象をまとめると下記の通りです。

  • Windowsのパスワードは有効期限が設定されていて、定期的にパスワードを変更しないといけない
  • 物理的なPCを直接操作している分には、パスワード有効期限がそろそろ切れる通知が表示される
  • リモートデスクトップ接続していると、パスワード有効期限がそろそろ切れる通知が表示されない
  • パスワード有効期限が切れると、リモートでパスワードが変更できなくなる
  • もちろんながら有効期限を無制限にはできない

対策

環境や設定は変更できないという前提で、無理やり気付けるようにします。

見た目とかは完全無視で簡単にサクッとスクリプトを作ります。
※スケジュール管理しろよという声が聞こえる気がしますが、面倒くさいのと仕組み化したいので…

PowerShellファイル

任意のフォルダに下記ファイルを保存します。
※例としてC:\tools\パスワード有効期限チェック.ps1に保存
※文字コードはShift-JIS(SJIS)で保存

Add-Type -AssemblyName System.Windows.Forms

$user = net user /domain $env:USERNAME | Select-String "パスワード有効期間"
$expiryDate = [datetime]($user -split " +")[1]
$daysRemaining = ($expiryDate - (Get-Date)).Days

if ($daysRemaining -le 14) {
  [System.Windows.Forms.MessageBox]::Show("パスワードの期限まであと $daysRemaining 日です。")
}

if ($daysRemaining -le 14) {で14日以内になったら通知が出るようにしています。

日数はお好きに調整ください。

バッチファイル

Windowsボタン+R を押して、shell:startupと入力して、スタートアップフォルダを開き、下記ファイルを保存します。
※例として%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\パスワード有効期限チェック.batに保存
※文字コードはShift-JIS(SJIS)で保存

@echo off
powershell -ExecutionPolicy Unrestricted -File "C:\tools\パスワード有効期限チェック.ps1"

-Fileの後ろのパスは上記PowerShellのパスを入力してください。

結果

表示結果実際にパスワード有効期限が2週間を切ってPCを起動するとこんな感じの画面が表示されれば成功です。

備考

自分が気付けばいいので、エラーハンドリングのくそもないです。

プライベートで有効期限を設定している人は…超レア中のレアだと思うので、一応セキュリティ意識高い会社のPCだろうなと思いドメインアカウント前提のスクリプトです。

もし「指定されたドメインがないか、またはアクセスできません」等、ドメインなんちゃらとエラーが出ているならnet user /domain $env:USERNAMEnet user $env:USERNAMEに変更してみてください。

まとめ

パスワード有効期限が切れた後、リモート接続できないあの絶望はもう味わいたくないです。

他の人に迷惑かかってしまいますからね…。

以上、ここまで見ていただきありがとうございます。

皆さまの快適な開発ライフに、ほんの少しでもお役に立てれば幸いです。

コメント

この記事のコメントはありません。

TOP