読者です 読者をやめる 読者になる 読者になる

もやしさん家のもやもやな生活

育児とキャンプとキャンピングトレーラーのブログ♪

ActiveDirectoryで一定期間ログオンの無いコンピューターアカウントを抽出する方法

最近、セキュリティ意識に芽生えたユーザーから引き受けたオシゴトの備忘録です。

f:id:moyashinet:20160330201052j:plain

 

 

コンピューターオブジェクトのメンテナンスの必要性

そもそもオブジェクトをメンテナンスしてる?

会社環境などでActiveDirectoryを使う場合、最近のセキュリティ事情から、ユーザーオブジェクトのメンテナンスはマメに行うユーザーが多くなったように思います。

ユーザーはネットワーク越しの認証でも使うので、当然の傾向かと思います。


その反面、ドメインに参加したコンピューターオブジェクトは放置されがちです。
ドメインから去ったコンピューターオブジェクトを使った悪用が、直感的には思い浮かばないのがその理由かな?と推測します。

 

その結果・・・

f:id:moyashinet:20160330201148j:plain

何年も経過すると、Computersフォルダは手に負えない状態になります(=◇=;)

 

コンピューターオブジェクトをメンテする必要ってある?

日々の運用だけに目を向けていると、メンテの必要はないと思います。

が、セキュリティのためと言われると話は別です。

 

Computersフォルダ(またはOU)は、本来ドメインに参加しているコンピューターのみが登録されます。
日々、ここをメンテしておくことで、得体のしれないコンピューターが参加した際に気づきを得ることができます。
だからセキュリティを考慮するのであれば、日ごろからメンテしておくべき、と考えます。

 

まぁ、実際はそんなヒマあるわけがないのですが(´・ω・`)

 

そんなわけで、運悪くコンピューターをまるで分からない管理者に現状を見つかった運用担当さんが、駆け込んでくるわけですね(^▽^;)

 

一定期間ログオン実績のないコンピューターオブジェクトの抽出方法

Windows ServerのPowerShellで、次のコマンドを実行します。

Search-ADAccount -AccountInactive -DateTime "2015/05/01" -ComputersOnly | Format-Table Name | Out-File Export.txt

 

今回は備忘録なので、項目1こずつ残しておきます。

Windows PowerShell逆引きハンドブック

Windows PowerShell逆引きハンドブック

 

 

 

事前準備

ActiveDirectory用のモジュールを読み込みます。

Import-Module ActiveDirectory

 

○月○日以降、ログオンしていないコンピューターオブジェクトの抽出

Search-ADAccountを使用します。

-DateTimeで○月○日以降を指定します。

Search-ADAccount -AccountInactive -DateTime "2016/01/01" -ComputersOnly

 

テーブル形式で出力する

Search-ADAccountはリスト形式で出力されます。
その後の加工などを考えると、表形式の出力が望まれます。

Format-Table 項目

上記例ではNameだけでしたが、DNや最終ログオン日、SIDなども出力可能です。
項目名は、Search-ADAccountを実行した結果を確認し、必要に応じて追加すればよいかな?と思います。
今回は、ただ報告したいという要望だったので、NameとLastLogonDate、Enabledの3つの出力結果で満足してもらえました。

 

ファイルに書き出し

出力するファイルを指定します。

Out-File Filepass

 

終わりに

何事も、日ごろからコツコツとメンテすることが大事ですね(;^_^A

 

 

 

Windows PowerShell逆引きハンドブック

Windows PowerShell逆引きハンドブック

 

  

Windows PowerShell実践システム管理ガイド 第2版

Windows PowerShell実践システム管理ガイド 第2版