いまさらながら、ADでは「ログオン可能なワークステーション(userWorkstation属性)」の設定が最大1024文字だと気づき、自分の無知に愕然としています。だって…NTのころは4台固定だったんだもの…。
http://support.microsoft.com/kb/938458
さて、話は変わりますが、VBScript を使用して Active Directory 内のユーザーを検索しようと思った時、面倒だなと感じるのが、以下のような条件です。
上の条件を見て、頭の中に使用する属性名が思い浮かんだ方は、完全にADマニアです。もちろんほめ言葉です。
Windows PowerShell のActive Directory Module には、上記のような特定条件検索専用のコマンドレットが用意されています。その名も、Search-ADAccount です。
上記の条件と、Search-ADAccount のパラメタとの対応を以下に示します。-UsersOnly パラメタを使用すると、ユーザーアカウントのみに限定して結果を表示してくれます。
例えば、ここ1年のあいだログオンしていないユーザーを検索するには、以下のように入力します。
PS C:\> Search-ADAccount -AccountInactive -TimeSpan 365
ただし!注意があります。
上記の検索結果には、1秒前に作ったユーザー(当然、一度もログオンしていない)も含まれてしまいます。よって、以下のように、Search-ADAccount の出力結果をベースに、アカウントの作成日時(WhenCreated)属性をチェックしたほうがよいです。
以下の例では、2009年11月18日 17時以前に作成したアカウントのみを検索結果として出力しています。
Search-ADAccount –AccountInactive –TimeSpan 365 | Foreach-Object {(Get-ADUser $_Name –Properties WhenCreated)} | Where-Object {$_.WhenCreated –lt “2009/11/18 17:00:00”}
(参考)
TechNet Sarch-ADAccount の解説 http://technet.microsoft.com/ja-jp/library/ee617247(en-us).aspx TechNet 最近ログオンしていないユーザーを検索する http://technet.microsoft.com/ja-jp/library/dd391899(WS.10).aspx
TechNet Sarch-ADAccount の解説 http://technet.microsoft.com/ja-jp/library/ee617247(en-us).aspx
TechNet 最近ログオンしていないユーザーを検索する http://technet.microsoft.com/ja-jp/library/dd391899(WS.10).aspx