PowerShell を使用してユーザーを一時的に有効にする方法



ユーザーアカウントは、外部監査人や臨時契約業者にセットアップ中にアクセス権を付与する場合など、頻繁に発生します。しかし、業務終了後もアカウントがアクティブなまま放置されることが多々あります。これはセキュリティの観点から理想的とは言えません。誰かがアカウントの存在を忘れると、バックドアが開いてしまう可能性があります。だからこそ、アカウントのアクティブ期間を制限することは、非常に有効です。簡単な方法の一つは、必要な期間だけアカウントを有効にし、その後は自動的に期限切れになるように設定することです。少し奇妙ですが、効果はあります。

PowerShell でユーザーアカウントのアクティベーション時間を制限する方法

この方法は、ユーザーアカウントに一時的なアクセス期間を設定したい場合に便利です。特に、インターンや監査役など、短期間だけアクセスが必要な外部関係者や臨時職員を扱う場合に便利です。アカウントを有効化し、ログイン可能な期間(日付または期間)を指定します。期間が過ぎると、アカウントは自動的に無効になります。設定によっては、この方法を使うことで、放置されセキュリティリスクとなる、忘れ去られたまま放置されたアカウントを削減できます。

多くの場合、GUIであれこれいじくり回すよりも速く、柔軟性が高いため、PowerShellを使ってこれを行うのがよいでしょう。以下のコマンドは、アカウントを有効化し、有効期限または有効期間を設定するのに役立ちます。

<!-- To activate an account and set it to expire in 7 days --> enable-ADAccount -Identity <UserName> Get-ADUser -Identity <UserName> | Set-ADAccountExpiration -TimeSpan 7.0:0

形式TimeSpanは非常にシンプルで、「日.時間:分」です。つまり、1週間の場合は7.0:0となります。もし特定の有効期限(例えば2018年12月31日)を設定したい場合は、以下のように記述します。

<!-- To set an exact expiry date --> Get-ADUser -Identity <UserName> | Set-ADAccountExpiration -DateTime 31.12.2018

一時的なアクティベーションに PowerShell を使う必要があるのはなぜですか?

これは主に、ユーザーが散発的または短期的なアクセスしか必要としない場合に有効です。PowerShellスクリプトを少し記述するだけで、ユーザーを有効化した後は、無効化またはアクセス期間の延長が必要になるまで、そのアカウントをそのままにしておけます。外部契約社員やインターンシップ生、あるいは役割が急に変更される可能性のある人など、多数のユーザーを管理する際に非常に便利です。さらに、未使用のアカウントがディレクトリに大量に蓄積されるのを防ぐことができるため、セキュリティ対策としても有効です。

なぜ動作するのかは分かりませんが、設定によっては有効期限がすぐに適用される場合もあれば、設定日までアカウントがアクティブなままで、その後自動的に無効になる場合もあります。おそらくADの設定に関係しているのでしょうが、一般的にはかなり信頼性が高いです。ただし、アカウントの有効期限設定は慎重に変更しないと混乱を招く可能性があるため、まずは重要でないアカウントでテストすることをお勧めします。

まとめ

  • PowerShellコマンドを使用してアカウントを一時的にアクティブ化しますenable-ADAccountSet-ADAccountExpiration
  • TimeSpanまたは正確な日付を使用して有効期限を設定します
  • セキュリティギャップを残さずに外部ユーザーや一時ユーザーのアクセスを管理するのに適しています

まとめ

一定期間後にアカウントを自動的に失効させるだけでも、かなりの時間節約になります。後々の面倒な作業も減るはずです。100%完璧ではありませんが、多くの場合、手動でアカウントを無効化することを覚えておくよりも効果的です。これで1つのアップデートがスムーズに進むようになれば、目標達成です。



この記事は役に立ちましたか?