マイクロソフトのNetwork & AD サポートチームブログに「パスワードに関するガイダンス」が掲載されました

マイクロソフトのNetwork & AD サポートチーム公式ブログに「パスワードに関するガイダンス」が掲載されました。
これは米国MicrosoftのActive Directory Team Blog記事を要約して翻訳した記事になります。
とても参考になります。

https://blogs.technet.microsoft.com/jpntsblog/2016/05/27/%E3%83%9E%E3%82%A4%E3%82%AF%E3%83%AD%E3%82%BD%E3%83%95%E3%83%88%E3%81%AE%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%81%AB%E9%96%A2%E3%81%99%E3%82%8B%E3%82%AC%E3%82%A4%E3%83%80%E3%83%B3%E3%82%B9/
マイクロソフトのパスワードに関するガイダンス | Ask the Network & AD Support Team
http://research.microsoft.com/pubs/265143/Microsoft_Password_Guidance.pdf
Microsoft Password Guidance


以下はブログ記事のガイダンスのタイトル部分だけです。
詳しくは上記のマイクロソフトのブログを読んでください。
1. 8 文字の最低パスワード長を維持する (必ずしも長いほど良いというわけではない)
2. 文字の組み合わせ (複雑さ) に関する要件を廃止する
3. ユーザーアカウントの定期的なパスワード変更を強制しないようにする
4. わかりやすい一般的なパスワード使うことを禁止する
5. 業務アカウントのパスワードを社外他のアカウントに使いまわさないようユーザーを教育する
6. 多要素認証を必ず利用するようにする
7. リスクベース多要素認証の方法を検討する

「最低パスワード長は8文字」や「複雑さの要件を廃止する」は斬新でした。
最低パスワード長を長くし過ぎると、単純な単語の繰り返しになってしまいがち。
複雑さの要件が有効だと、先頭を大文字にしたり最後を数字にしたりになりやすい。
このような傾向を利用してパスワードの解読を試みられるそうです。

「定期的な変更を強制しない」はやっぱりね、です。
私がとあるシステムで使用しているパスワードは、絶対に推測されない文字列を使用しています。
当然ですが、誰にも知らせていません。
それなのに、このパスワードを定期的に「変更しなさい」と強制されるのは苦痛以外の何物でもありません。
また、定期的に変更すると、どうしてもパスワードが安易な文字列になりがちです。
定期的な変更の強制は、本当にやめてほしい。

「パスワードを使いまわさない」は重要です。
万が一パスワードが解読されてしまったら、他のシステムにもログインされてしまうので。

多要素認証はインターネットを利用したコンシューマー向けシステムではぜひ利用して欲しいですね。
オンプレミスな社内システムでは、今後は多要素認証を取り入れる方向に向かうかどうか、わかりませんが。

テーマ : Windows
ジャンル : コンピュータ

2016/03/18(金)マイクロソフトのセミナー「Active Directory & Security Conference 2016」に参加してきました

久しぶりにマイクロソフトのセミナーに申し込みました。
Active Directory & Security Conference 2016」と題した、セミナーとしては大きな規模でした。
2000年にWindows 2000 Serverと共に誕生したActive Directoryですが、昨年15周年を迎えました。
今回はそのAD15th記念セミナーとなっています。

前回は2010年2月にAD10周年のセミナーがありましたが、それから6年の月日を経て、さらにパワーアップしてAD15周年イベントが行われました。
今回はSGT(品川グランドセントラル)のマイクロソフト本社の31Fの3つの部屋に分かれて、同時3チャネルでセミナーが行われ、参加者は自分が好きな部屋でセミナーを聴取するスタイルでした。

また黒い表紙の「クラウド時代の認証基盤 Azure Active Directory 完全解説 ~ IDaaSに対応するためのシステム設計とは ~」の冊子が配布されました。
今年の5月24日から25日にかけてde:code 2016が行われますが、その会場で販売されるAzure Active Directory 解説書のPreview Editionとなっています。
あとで読まなくちゃ。

(写真1)セミナーのプログラム
20160318_AD15周年プログラム

(写真2)Azure ADの解説書プレビュー版
20160318_AD15周年AzureAD冊子

Room A  (Track - 1)Room B  (Track - 2)Room C + D  (Track - 3)
12:00-12:50受付受付受付
12:50-13:00挨拶、会場案内挨拶、会場案内挨拶、会場案内
13:00-14:00Azure ADと外部アプリのID連携/SSO Deep DiveAzure Active Directory の価値とは?【パネルディスカッション】
Active Directoryを核にセキュリティ基盤を再考する
MVP for Enterprise Mobility
富士榮 尚寛 氏
グローバルナレッジネットワーク株式会社
横山哲也 氏
モデレーター:
日本マイクロソフト チーフセキュリティアドバイザー  高橋正和

パネリスト:
日本マイクロソフト Active Directory 有志の会
14:00-14:15休憩休憩休憩
14:15-15:15ここまで進化した ! Azure Active Directory による最新アプリ開発事情
~ App Model v2, Microsoft Graph, B2C, etc
事例から学ぶ:Active Directory 管理の自動化【パネルディスカッション】
Active Directory 重鎮による15年の振り返りとこれからへの期待
日本本マイクロソフト テクニカルエバンジェリスト
松崎 剛
株式会社 サンリオ
大畑 正利 氏
モデレーター:
Increments 株式会社 及川 卓也 氏

パネリスト:
・グローバルナレッジネットワーク株式会社 横山哲也 氏
・NEC マネジメントパートナー株式会社 吉田 薫 氏
・NTT データ先端技術株式会社 小鮒 通成 氏
15:15-15:45休憩、おやつ休憩、おやつ休憩、おやつ
15:45-16:45Javaアプリを Azure AD の力でよりセキュアに!
AAD 対応 Javaアプリ の開発手法
Windows Server 2016 Active Directory 最新情報Azure Active Directory
~ Identity and access management
※同時通訳セッション
日本マイクロソフト テクニカルエバンジェリスト
寺田 佳央
日本マイクロソフト テクニカルエバンジェリスト
高添 修
Microsoft Corporation Program Manager - IAM Engineering
Eran Dvir
16:45-17:00休憩休憩休憩
17:00-18:00Advanced Threat Analytics による社内Active Directory へのサイバーアタック対策
~ みせてやろうか、パッチ未適用の怖さを
ゆりか先生のセキュリティ講座~Windows Server 2016の前に、Kerberos と PassportについてDeepに理解しておきましょう【パネルディスカッション】idcon がマイクロソフトに殴り込み! Idcon 発 AD はこう使え ? 業務系 ID 連携 meets idcon
日本マイクロソフト テクノロジーソリューションプロフェッショナル
蔵本 雄一
日本マイクロソフト セキュリティプログラムマネージャー
村木 由梨香
モデレーター
OpenID Foundation Japan Board Member, Lepidum 代表取締役 林 達也 氏

パネリスト:
・OpenID Foundation Japan Evangelist, グリー株式会社 真武 信和 氏
・Yahoo Japan システム統括本部 情報システム本部 大塩 英輔 氏
・日本マイクロソフト テクニカル エバンジェリスト 安納 順一
18:00-18:15アンケート記入、懇親会場へ移動
18:15-20:00懇親会19F

Room AはDeep で難易度の高い部屋
Room Bは比較的初心者向けの部屋
Room C + Dは笑い、うんちく、リラックス系部屋

私はもちろん永遠の初心者なので、4つすべてRoom Bでした。

横山大先生のセミナーは、Azure上でオンプレミスのActive Directory Domain Serviceと同等の機能がPaaSとして提供されるようになることについての解説。
近い将来、Active Directoryを利用するだけのためにWindows Server OSや、ましてやサーバーハードウェアを維持する必要はなるなるかもしれません。

サンリオの大畑さんのセミナーは、System Center Orchestrator や PowerShellを利用してユーザー情報の管理を自動化する事例の紹介です。
私もActive Directoryでユーザー情報の更新を自動化する事に取り組んでいるお客様もあり、参考になります。

高添さんのセミナーは、今年リリース予定のWindows Server 2016の主にActive Directory Domain Serviceについての説明です。

村木さんのセミナーは、Windows 10やWindows Server 2016におけるPINや、Microsoft Passport、Virtual Secure Modeについての解説です。
新しいOS,新しい仕組みのセキュリティが高いことはわかりましたが、セキュリティの話は難しくてなかなか付いて行けません(笑)

当日の資料は、後日ここで公開されるようです。

ドキュメントは http://aka.ms/ad15thdocs
ビデオは http://aka.ms/ad15thvideo



さて、セミナーの終了後はお待ちかねの懇親会です。
今回は19FのOne Microsoftと呼ばれる広いカフェテリアで行われました。
10周年記念の際にも用意された、大きなActive Directoryケーキは今回もありました。

(写真3)AD15周年記念の大きなケーキ
20160318_AD15周年記念の大きなケーキ

(写真4)私はカットされたケーキのctの部分を食べました
20160318_AD15周年記念のケーキ(カット)

Active Directory 15周年の大きなケーキがお披露目され、みんなで写真を撮りました。
そして何故か横山先生とマイクロソフトのういこさんの2人でケーキ入刀(笑)
その後で小さくカットされたケーキが出てきてみんなで食べました。
私はActive Directoryの「ct」の部分を食べました。


こうしてAD15周年の記念イベントは大盛況で楽しく開催されました。
私もAD20周年、25周年まで現役でSEを続けられているか不安ですが、今後も出来るならActive Directoryに携わっていけたらなと思います。

あ、その後はセミナーでよく会う人達とさらに二次会で飲みました。
さすがに徹夜カラオケは無しと言う事で、終電前に解散しました(^^)
たまにはこんな楽しくてためになるイベントもいいですね。

(参考1)AD15周年記念イベント関連のURL

https://info.microsoft.com/JA-EMS-IPVNT-FY16-03Mar-18-Active-Directory-Security-Coference.html
Active Directory & Security Conference 2016
https://blogs.technet.microsoft.com/junichia/2016/02/26/318-active-directory-15th/
3/18 Active Directory 15th 記念カンファレンス 最終セッションリスト | Junichi Anno's blog
http://blog.livedoor.jp/itdesign/archives/2009677.html
ITdesignのブログ:Active Directory祭りに参加! - livedoor Blog(ブログ)
http://kogelog.com/2016/03/19/20160319-01/
Active Directory & Security Conference 2016 (AD 15th 記念セミナー) に参加してきました | 焦げlog


(参考2)2010年のAD10周年記念セミナーについて私が書いたブログです

http://norimaki2000.blog48.fc2.com/blog-entry-997.html
徒然なるままに Tech Fielders の集い 特別編 - おかげさまで Active Directory 10 周年 (その1)
http://norimaki2000.blog48.fc2.com/blog-entry-998.html
徒然なるままに Tech Fielders の集い 特別編 - おかげさまで Active Directory 10 周年 (その2)

テーマ : Windows
ジャンル : コンピュータ

PowerShellのGet-Dateコマンドレットの日付や時刻のフォーマット

PowerShellで作成したスクリプトでテキストファイルにログを出力するようにしました。
その時、ログファイル名の一部に「年月日-時分秒」を入れるようにしました。

こんな感じで年月日と時分秒を取得しています。
Get-Date -format yyyymmdd-hhmmss
しかし、若干違和感が。
あ、時刻の「時」の部分が12時間表記になっている。

と言うわけで、Get-Dateのフォーマットについて少し調べてみました。

(写真1)Get-Dateコマンドレットのフォーマット例
Get-Dateコマンドレットのフォーマット1

実行したコマンド
表示
結果
Get-Date
年月日-時(24時制)分秒
Get-Date -format yyyymmdd-hhmmss
年分日-時(12時制)分秒
×
Get-Date -format yyyymmdd-HHmmss
年分日-時(24時制)分秒×
Get-Date -format yyyyMMdd-hhmmss
年月日-時(12時制)分秒×
Get-Date -format yyyyMMdd-HHmmss
年月日-時(24時制)分秒
大文字のMは月を表します。
小文字のmは分を表します。
大文字のHは24時制の時を表します。
小文字のhは12時制の時を表します。

そのため今回は「Get-Date -format yyyyMMdd-HHmmss」が適切となりました。


(写真2)Get-Dateコマンドレットのフォーマットいろいろ
Get-Dateコマンドレットのフォーマット2
これを改行無しの1つのコマンドとして打ち込んだ結果が、この画像です。
@("d","D","f","F","g","G","M","O","R","s","t","T","u","U","Y") | %{$date=Get-Date -F $_ ;"$_, $date"}

詳しくはこちらのブログに解説があります。

http://tech.guitarrapc.com/entry/2013/01/23/120129
PowerShellのGet-Date -Formatで出力される標準の書式指定結果一覧 - tech.guitarrapc.cóm
http://tech.guitarrapc.com/entry/2013/02/09/030226
PowerShellで日付書式にカスタム書式パターンを指定する - tech.guitarrapc.cóm


工夫次第でいろいろなカスタム書式が指定できるみたいですね。
このブログを書いてる@guitarrapc_techさん。
PowerShellで難しいことをやろうとすると、よく出てきますね。
神のような人です。(たぶん)

テーマ : Windows
ジャンル : コンピュータ

Active Directoryで配置する場所が違えば同じ名前のOUを作成する事が出来る

ふと気になって試してみました。
Active DirectoryのOUは、配置場所が異なれば同じ名前でも作成できるんですね。

環境はWindows Server 2012 R2ドメインコントローラー
フォレストの機能レベル、ドメインの機能レベル共にWindows Server 2012 R2
まあ、以前のバージョンから同じ仕様だと思いますが。

(写真1)OU_TEST02を複数作成してみた
OUの名前は重複可能
計5個の「OU_TEST02」を作成したところ。
配置するOUが異なれば、同じ名前のOUを作成する事が出来ます。

C:\>dsquery ou
"OU=Domain Controllers,DC=test01,DC=local"
"OU=OU_TEST01,DC=test01,DC=local"
"OU=OU_TEST02,OU=OU_TEST01,DC=test01,DC=local"
"OU=OU_TEST02,OU=OU_TEST02,OU=OU_TEST01,DC=test01,DC=local"
"OU=OU_TEST02,OU=OU_TEST02,OU=OU_TEST02,OU=OU_TEST01,DC=test01,DC=local"
"OU=OU_TEST02,DC=test01,DC=local"
"OU=OU_TEST02,OU=OU_TEST02,DC=test01,DC=local"
"OU=OU_TEST01,OU=OU_TEST02,DC=test01,DC=local"



(写真2)一つのOU内では重複した名前は不可
同じOU内の重複は不可
当然ですが、一つのOUの中に同じ名前のOUを複数存在させることはできません。

オブジェクト OU_TEST02 を作成できません。
理由: 既に使用されている名前でオブジェクトをディレクトリに追加しようとしました。



これって便利かもしれないけど、管理するのは大変ですね。
誰かと話をするとき「じゃあOU_TEST02に配置しましょう」とか言っても、どのOU_TEST02かわかりにくいですから。
個人的には同じ名前のOUを作成しない方がいいかと思います。

テーマ : Windows
ジャンル : コンピュータ

Active Directoryのユーザーのプロパティで「ユーザーはパスワードを変更できない」にしてみる

Active Directoryのユーザーのプロパティで「ユーザーはパスワードを変更できない」のチェックをオンにすると、ユーザーは自分でパスワードが変更できないんだっけ?
変更しようとしたら、どんなメッセージが出るんだっけ?

気になったのでやってみました。

(写真1)「ユーザーはパスワードを変更できない」がオフの状態
11_変更可能_ユーザーのプロパティ

(写真2)クライアントPCでCtrl + Alt + Delを押してパスワードの変更
12_Ctrl+Alt+Delを押す

(写真3)変更前および変更後のパスワードを入力する
13_パスワードを変更してみる

(写真4)パスワードは変更されました
14_パスワードは変更されました

ここまでは普通ですよね。
パスワードが変更出来て当たり前です。
ではここからはパスワードを変更できないようにしてやってみます。

(写真5)「ユーザーはパスワードを変更できない」をオンにする
21_変更不可_ユーザーのプロパティ

(写真6)クライアントPCでCtrl + Alt + Delを押してパスワードの変更
22_Ctrl+Alt+Delを押す

(写真7)変更前および変更後のパスワードを入力する
23_パスワードを変更してみる

(写真8)アクセスが拒否されました
24_アクセスが拒否されました
「アクセスが拒否されました」のメッセージが出て、パスワードの変更に失敗します。


ドメインメンバーであるクライアントPCでは、Ctrl + Alt + Delを押してパスワード変更画面は呼び出せるし、変更前と変更後のパスワードの入力もできる。
しかし変更するためにOKを押すと、「アクセスが拒否されました」になると。
エンドユーザーの操作性としては今一歩な感じもしないでもないですが、ユーザーが自分のパスワードを変更する権限を削除したと考えると、まあこうなるのはしかたないですね。

テーマ : Windows
ジャンル : コンピュータ

知北さんの力作「Windows Server 2003 サポート終了対策」

知北さんの力作「Windows Server 2003 サポート終了対策」の最終版が出ました。
いろいろ参考になる内容が詰まっています。
しかし最後に追加された18項目。
気になるタイトルがいくつかあり、しかも内容無しURL無し。気になる。

http://www.slideshare.net/wintechq/windows-server-2003-eos
Windows Server 2003 サポート終了対策


Windows Server 2003 サポート終了とは関係なく、旧サーバーから新サーバーへの移行についてのヒントが多数盛り込まれているので、新旧サーバーの移行に携わる人にはとても参考になると思います。
あくまでもWindowsサーバーに関して、ですが。

テーマ : Windows
ジャンル : コンピュータ

ntdsutilコマンドのmetadata cleanupでサイト内のドメインコントローラーを一覧表示

自分用のメモです。

ntdsutilコマンドのmetadata cleanupで、サイト内のドメインコントローラーの一覧を表示するまでの画面。Windows Server 2008 R2のActive Directoryの例を掲載。
最近はdsquery serverとか、Get-ADDomainControllerでドメインコントローラーの一覧を参照する事が多いけれど、最終的にActive Directoryに取り残されたごみを削除するときはntdsutilコマンドですからね。

(写真1)ntdsutilのmetadata cleanupでサイト内のドメインコントローラーを一覧表示
metadata cleanupでサイト内のドメインコントローラーを一覧表示

C:\Windows\system32\cmd.exe
C:\>ntdsutil
ntdsutil: metadata cleanup
metadata cleanup: connections
server connections: connect to server WIN2008R2DC
WIN2008R2DC に結合しています...
ローカルでログオンしているユーザーの資格情報を使って WIN2008R2DC に接続しました。
server connections: q
metadata cleanup: select operation target
select operation target: list domains
1 個のドメインを検出しました
0 - DC=test01,DC=local
select operation target: select domain 0
現在のサイトがありません
ドメイン - DC=test01,DC=local
現在のサーバーがありません
現在の名前付けコンテキストがありません
select operation target: list site
1 個のサイトを検出しました
0 - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test01,DC=local
select operation target: select site 0
サイト - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test01,DC=local
ドメイン - DC=test01,DC=local
現在のサーバーがありません
現在の名前付けコンテキストがありません
select operation target: list servers in site
1 個のサーバーを検出しました
0 - CN=WIN2008R2DC,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test01,DC=local
select operation target: q
metadata cleanup: q
ntdsutil: q

C:\>


テーマ : Windows
ジャンル : コンピュータ

Active Directoryでユーザーアカウントを無効化した日時の属性があるか

ひょんなことから、Active Directoryでユーザーを無効化した日時が記録されるかを確認してみる事になりました。
結論としては、やはりActive Directoryのユーザーの属性に、無効化した日時の項目は無く、無効化した日時はわかりませんでした。

確認方法
  1. Windows Server 2012 R2ドメインコントローラーで、PowerShellのGet-ADUserコマンドレットを使ってユーザーアカウントの情報をエクスポート。
  2. 次にユーザーアカウントを無効化して、再度Get-ADUserコマンドレットを使ってユーザーアカウントの情報をエクスポート。
  3. さらに無効化されたユーザーアカウントを配置するOUを移動して、Get-ADUserコマンドレットでユーザーアカウントの情報をエクスポート。
  4. 3つのGet-ADUserの結果をExcelでセルごとに値を比較。
では結果を見てみましょう。
(写真1)Active Directoryのユーザー情報をGet-ADUserで比較
Active Directoryのユーザー情報をGet-ADUserで比較(1/3)
Active Directoryのユーザー情報をGet-ADUserで比較(2/3)
Active Directoryのユーザー情報をGet-ADUserで比較(3/3)
ユーザーアカウントを無効化するとEnabledがTRUEからFALSEに変化します。
これはまあ当然ですね。

Modified、modifyTimeStamp、whenChangedもユーザーアカウントを無効化した日時が記録されるんですが、あくまでも最終更新日時です。
無効化した後にユーザーを配置するOUを移動すると、これらの値もまた更新されます。
結果として、Active Directoryのユーザー情報の属性から、ユーザーアカウントを無効化した日時を後から知る事は出来なかったです。
まあ予想通りですが。

ユーザーアカウントを無効化すると、userAccountControlの値が66048から66050に変化します。
UserAccountControlはユーザーアカウントのオプション設定を表現するビットフラグです。

UserAccountControlの解説は、このサポート技術情報が参考に。

http://support.microsoft.com/kb/305144/ja
UserAccountControl フラグを使用して、ユーザー アカウントのプロパティを操作する方法


UserAccountControlの値を16進数で表現すると、こうなります。
無効化前:10200
無効化後:10202

上記のサポート技術情報によると、ACCOUNTDISABLEが0x0002です。
つまりユーザーアカウントが無効化されると、UserAccountControlに0x0002が加算されるわけですから、UserAccountControlが66048から66050に変化した原因はこれでした。
無効化された日時と関係はなさそうです。

uSNChangedは更新シーケンス番号のようです。
したがってこれもユーザーアカウントが無効化された日時とは関係ないですね。

uSNChangedについてはここで解説されています。

http://www-01.ibm.com/support/knowledgecenter/SSCQGF_7.1.1/com.ibm.IBMDI.doc_7.1.1/referenceguide11.htm
IBM Knowledge Center - Active Directory 変更検出コネクター



以下は参考です。
ユーザーアカウントを無効化したり、その後でユーザーを配置するOUを移動したりした時の画面のハードコピーです。

(写真2)ユーザーアカウントを無効化
ユーザーアカウントを無効化

(写真3)ユーザーアカウントを無効化後にOUを移動(1/3)
ユーザーアカウントを無効化後にOUを移動(1/3)

(写真4)ユーザーアカウントを無効化後にOUを移動(2/3)
ユーザーアカウントを無効化後にOUを移動(2/3)

(写真5)ユーザーアカウントを無効化後にOUを移動(3/3)
ユーザーアカウントを無効化後にOUを移動(3/3)

結果としては無効化した日を記録している属性は無いと言う事がわかりました。
無効化してから一定期間経過したユーザーを削除するなどを考えていたのですが、それは難しそうですね。
ユーザーのプロパティの説明の欄に、無効化した日付をメモとして書き込んでおくなどが現実的な対処法かもしれません。


【参考】
「Get-ADUser "TEST001" -Properties *」コマンドで、TEST001ユーザーの詳細情報を表示したところです。(続きを読む)

続きを読む

テーマ : Windows
ジャンル : コンピュータ

Windows Server 2008 R2でActive Directory関連のPowerShellコマンドレットを使用する

最近は実際の業務でもWindows Server 2012 R2を利用する機会が増えているので、日ごろから努めてWindows Server 2012 R2を使用するようにしています。
その状態でWindows Server 2008 R2に戻ると戸惑う事も多々あります。

今日ハマったのはこれ。

Windows Server 2008 R2ドメインコントローラーでPowerShellのコマンド画面を起動して、「Get-Command Get-AD*」を実行しても、Active Directory関連のコマンドレットが何も表示されない。
うーんと、何かモジュールのインポートが必要だったような気がするが、思い出せない。

(写真1)Import-Module ActiveDirectoryを実行
Import-Module ActiveDirectoryを実行
正解はこれですね。
普通のPowerShellのコマンド画面を起動したら、Import-Module ActiveDirectoryを実行しなければなりません。
すると「Get-Command Get-AD*」で、Active Directory関連のコマンドレットが表示されます。

(写真2)管理ツールからWindows PowerShell 用の Active Directory モジュールを実行
管理ツールからWindows PowerShell 用の Active Directory モジュールを実行
またはこの方法でもOKです。
管理ツールから「Windows PowerShell 用の Active Directory モジュール」を実行すると、Active Directory関連のモジュールがインポートされた状態でPowerShellのコマンド画面が起動します。

コマンドレットの実行例
Get-ADForest |export-csv -encoding default -path C:\Users\Administrator\Documents\Get-ADForest.csv
Get-ADDomain |export-csv -encoding default -path C:\Users\Administrator\Documents\Get-ADDomain.csv
Get-ADDomainController -Filter * |export-csv -encoding default -path C:\Users\Administrator\Documents\Get-ADDomainController.csv
Get-ADComputer -Filter * |export-csv -encoding default -path C:\Users\Administrator\Documents\Get-ADComputer.csv
Get-ADGroup -Filter * |export-csv -encoding default -path C:\Users\Administrator\Documents\Get-ADGroup.csv
Get-ADOptionalFeature -Filter * |export-csv -encoding default -path C:\Users\Administrator\Documents\Get-ADOptionalFeature.csv
Get-ADOrganizationalUnit -Filter * |export-csv -encoding default -path C:\Users\Administrator\Documents\Get-ADOrganizationalUnit.csv
Get-ADRootDSE |export-csv -encoding default -path C:\Users\Administrator\Documents\Get-ADRootDSE.csv
Get-ADUser -Filter * |export-csv -encoding default -path C:\Users\Administrator\Documents\Get-ADUser.csv

テーマ : Windows
ジャンル : コンピュータ

PowerShellのSet-ADUserコマンドレットでActive Directoryのユーザーの有効期限を変更する

以前はPowerShellのGet-ADUserコマンドレットでActive Directoryのユーザー情報を取得したり、New-ADUserでユーザーを登録したりしました。
今回はSet-ADUserコマンドレットで、ユーザーアカウントの有効期限を変更してみます。
環境はWindows Server 2012 R2のドメインコントローラーです。

なお、Get-ADUser、New-ADUser、Set-ADUserの各コマンドレットで、ユーザーアカウントの有効期限のオプションは「AccountExpirationDate」です。

(写真1)有効期限変更前のユーザーのプロパティ
有効期限変更前のユーザーのプロパティ
test01.localドメインのユーザー「TEST001」は、Active DirectoryユーザーとコンピューターのGUIで見ると、アカウントの有効期限が2015/2/28までとなっています。

(写真2)有効期限によってユーザーを抽出
管理者:Windows PowerShell
PS C:\> Get-ADUser -Filter {AccountExpirationDate -le "2015/12/31"} |Format-Table -Property Name,Enabled,AccountExpirationDate

Name                                  Enabled AccountExpirationDate
----                                  ------- ---------------------
TEST001                                  True


PS C:\> Get-ADUser -Filter {AccountExpirationDate -le "2015/03/01"} |Format-Table -Property Name,Enabled,AccountExpirationDate

Name                                  Enabled AccountExpirationDate
----                                  ------- ---------------------
TEST001                                  True


PS C:\> Get-ADUser -Filter {AccountExpirationDate -le "2015/02/28"} |Format-Table -Property Name,Enabled,AccountExpirationDate
PS C:\>
「Get-ADUser -Filter {AccountExpirationDate -le "2015/12/31"} |Format-Table -Property Name,Enabled,AccountExpirationDate」で、アカウントの有効期限が2015/12/31と同じか、それよりも短いユーザーを抽出します。
AccountExpirationDateが2015/12/31、2015/3/1ではTEST001はヒットします。
しかし2015/2/28だとヒットしません。ちょっと不思議です。
Active Directoryユーザーとコンピューターでは有効期限が2015/2/28なのに。

ここではパイプで「Format-Table」に送って、プロパティの中から「Name,Enabled,AccountExpirationDate」を選択して表示しています。
しかし肝心のAccountExpirationDateが何も表示されない理由はよくわかりません。

(写真3)有効期限変更前のユーザーの詳細情報
管理者:Windows PowerShell
PS C:\> Get-ADUser -Filter {AccountExpirationDate -le "2015/03/01"} -Properties *


AccountExpirationDate                : 2015/03/01 0:00:00
accountExpires                       : 130696092000000000
AccountLockoutTime                   :
AccountNotDelegated                  : False
AllowReversiblePasswordEncryption    : False
AuthenticationPolicy                 : {}
AuthenticationPolicySilo             : {}
BadLogonCount                        : 0
badPasswordTime                      : 0
badPwdCount                          : 0
CannotChangePassword                 : False
CanonicalName                        : test01.local/Users/TEST001
Certificates                         : {}
City                                 :
CN                                   : TEST001
codePage                             : 0
~以下略~
「Get-ADUser -Filter {AccountExpirationDate -le "2015/03/01"} -Properties *」を実行すると、有効期限が2015/3/1と同じかそれよりも短いユーザーの詳細な情報がリスト形式で表示されます。
AccountExpirationDateを見ると、「2015/03/01 0:00:00」になっています。
ああ、そう言う事ね。だから2015/2/28ではヒットしないのね。

(写真4)ユーザーアカウントの有効期限を変更

管理者:Windows PowerShell
PS C:\> Set-ADUser "CN=TEST001,CN=Users,DC=test01,DC=local" -AccountExpirationDate "2015/12/31"
PS C:\>
「Set-ADUser "CN=TEST001,CN=Users,DC=test01,DC=local" -AccountExpirationDate "2015/12/31"」を実行すると、TEST0001のアカウントの有効期限が2015/12/31に変更されます。
PowerShellのコマンド画面には何も反応がないのが淋しいです。

(写真5)有効期限によってユーザーを抽出

管理者:Windows PowerShell
PS C:\> Get-ADUser -Filter {AccountExpirationDate -le "2015/12/31"} |Format-Table -Property Name,Enabled,AccountExpirationDate

Name                                  Enabled AccountExpirationDate
----                                  ------- ---------------------
TEST001                                  True


PS C:\> Get-ADUser -Filter {AccountExpirationDate -le "2015/03/01"} |Format-Table -Property Name,Enabled,AccountExpirationDate
PS C:\> Get-ADUser -Filter {AccountExpirationDate -le "2015/02/28"} |Format-Table -Property Name,Enabled,AccountExpirationDate
PS C:\>
再度Get-ADUserでユーザーを抽出してみます。
「Get-ADUser -Filter {AccountExpirationDate -le "2015/12/31"}」だとTEST001がヒットしますが、2015/3/1や2015/2/28ではヒットしません。
想定通りです。

(写真6)有効期限変更後のユーザーの詳細情報

管理者:Windows PowerShell
PS C:\> Get-ADUser -Filter {AccountExpirationDate -le "2015/12/31"} -Properties *


AccountExpirationDate                : 2015/12/31 0:00:00
accountExpires                       : 130959612000000000
AccountLockoutTime                   :
AccountNotDelegated                  : False
AllowReversiblePasswordEncryption    : False
AuthenticationPolicy                 : {}
AuthenticationPolicySilo             : {}
BadLogonCount                        : 0
badPasswordTime                      : 0
badPwdCount                          : 0
CannotChangePassword                 : False
CanonicalName                        : test01.local/Users/TEST001
Certificates                         : {}
City                                 :
CN                                   : TEST001
codePage                             : 0

~以下略~
Get-ADUser -Filter {AccountExpirationDate -le "2015/12/31"} -Properties *」を実行すると、TEST001の詳細情報が表示されます。
AccountExpirationDateの値は何故か2015/12/31 0:00:00になっています。

(写真7)有効期限変更後のユーザーのプロパティ
有効期限変更後のユーザーのプロパティ
Active Directoryユーザーとコンピューターで有効期限を設定し、Get-ADUserでAccountExpirationDateを見ると翌日の0:00:00がセットされます。
しかしSet-ADUserでAccountExpirationDateを設定すると、当日の0:00:00がセットされます。
うーん、この辺の仕様はちょっと謎ですが。
こんな感じでSet-ADUserコマンドレットを使ってアカウントの有効期限を設定する事が出来ました。



以下参考

有効期限の変更前に、いつものおまじないのようなコマンドで、Active Directoryのユーザー情報をCSV形式にエクスポートしてみました。

(写真8)Active Directoryユーザーの情報をCSV形式にエクスポート
管理者:Windows PowerShell
PS C:\> Get-ADUser -Properties * -Filter * |export-csv -encoding default -path C:\Users\Administrator\Documents\ADUSER.csv
PS C:\>

(写真9)ADUSER.csvをExcelで開いてみた
ADUSER.csvをExcelで開いてみた

(写真10)ADUSER.csvをテキストエディタで開いてみた
ADUSER.csvをテキストエディタで開いてみた

Active Directoryユーザーとコンピューターでアカウントの有効期限が「2015/2/28」となっている時に、Active Directoryのユーザー情報をGet-ADUserでCSV形式にエクスポートし、念のためAccountExpirationDateの値をTeraPadやExcelで見てみました。
しかし間違いなく「2015/03/01 0:00:00」が入っていました。
GUIから有効期限を設定すると、内部的には翌日の0:00:00とセットされるんですね。
しかしSet-ADUserで有効期限を設定すると、その日の0:00:00がセットされるのは謎仕様ですが、まあその辺は良しとします。

テーマ : Windows
ジャンル : コンピュータ

テスト中

全ての記事を表示する

ブロとも申請フォーム

ブログ検索
プロフィール

norimaki2000

norimaki2000のブログにようこそ
・2013/01/05テンプレートをsantaからhouseに変更
・2012/10/29テンプレートをsweet_donutsからsantaに変更
Follow norimaki2000 on Twitter気軽に話しかけてね

ニューヨーク・マンハッタン(タイムズスクェア)180×135

千葉県在住で東京都内に勤務。SE歴20年超えました。

昔々はオフコンで販売管理などのアプリケーション開発してた。
ファミリーレストランの無線オーダリングやPOS、キッチンプリンタの全国展開なんかもやっていました。
数年前まではWindows上のアプリケーション展開が多かったかな。
ここ数年はWindowsサーバーを中心としたサーバーインフラの提案・構築・保守を中心にやってます。
主な取り扱い製品は、
・Windows 2000 Server以降 (もちろんNT3.5やNT4.0も知っていますが)
・Active Directory (今で言うAD DS)
・Symantec Backup Exec
・Symantec System Recovery
・CA ARCserve Backup for Windows
・CA ARCserve Replication
・CA ARCserve D2D
・EMC RepliStor
・VMware vSphere
・某メーカーのクラスタソフトウェア

どれもこれも中途半端な知識と技術力ですが、なんとかやっています。
私自身は技術や製品を担当する立場ではなく、特定業種のお客さん(ユーザ企業)の対応窓口となるSEの役割りですから、必要であれば詳しい知識や経験豊富な別のSEを探してきてプロジェクトメンバに加えます。

もちろん小さな物件では自分で提案、インストール、お客さんへの導入、アフターサポートまでやります。
大きな物件では提案はやりますが、構築部分は専門部隊に依頼します。
その場合でもアフターサポート窓口は私がやりますので、お客さんに対しては一貫して窓口SEとなります。

サーバの世界の大きなトレンドは統合・仮想化。
2007年はVirtual Server 2005 R2によるサーバ仮想化も、2つのお客さんで本稼動させた。
2008年はVMware ESX 3.5を2セット構築。単純なローカル起動と、SANブート/VMotion/DRS/HA/VCBのフル装備もやった。
2009年はぜひHyper-Vの仮想環境を構築したいな。と思っていたが、なかなか機会に恵まれなかった。
2010年はVMware ESX 4.0でHA/VMotion/VCBバックアップを進行中。

そのほかにも、ドメインコントローラやファイルサーバの全国展開とデータ移行、特定のアプリケーションの実行基盤となるサーバ群のOS・バックアップ・DBクラスタなどインフラ部分の構築などをやっています。


2011年のポイントも引き続き、【ご利用は計画的に】。
今まで長年に渡って仕事も私生活も行き当たりばったりなので、少しでも物事を計画的に進められるようにしたい。
いつも計画性の無さが災いして多くの人に迷惑をかけています。
自分自身も計画的な仕事ができないため、いつもいろいろ苦労しています。
今年はさらに計画的に仕事をするようにしなきゃ。

それと若手を上手に使うようにならなきゃならん。
若手の育成はもちろんだけど、僕自身も仕事を上手に他の人に振ることができるようになりたい。
仕事の種類のせいなのか性格なのか、どうしても一人で抱え込んでしまうから。

【Twitter】2010年の元旦から始めました。平均して1日あたり10ツィート程度です。
仕事関連の呟きが少し、くだらない呟きがほとんどかな。
Follow norimaki2000 on Twitter
・norimaki2000 on Twitter

Follow norimaki2000 on Twitter
・norimaki2000 on Twilog


オンライン上ではあるけれど、今まで知らなかった人たちと交流する機会を得ることになり、非常に刺激を受けます。
仕事でも私生活でも、いろんな人のつぶやきは息抜きにもなり、また助けられたり、あるいは「もっとがんばんなきゃ」と励みになったりします。
Twitterを考え出した人の発想、システムとして作り上げた努力と情熱はすごい!!


【好きな音楽】ベテランの皆さんなら浜田省吾、尾崎豊、エコーズ、若手なら鬼束ちひろ、平原綾香、現在注目の若手はいきものがかり

【好きなアイドル】千葉県柏市を中心に活動する地元アイドルの「コズミック☆倶楽部」を激推し中です。

【好きな飲み物】シャンパンはご存知モエ・エ・シャンドン ブリュット アンペリアル、ビールはキリン ブラウマイスター、水ならビッテル、お茶ならキリン生茶

【好きなTVドラマ】Xファイル、24、ミレニアム、ER、CSI:科学捜査班シリーズ、NCIS:ネイビー犯罪捜査班、ザ・プラクティス、ボストン・リーガル



パソコン困り事相談もよろしく


最近の記事
最近のコメント
カレンダー
03 | 2017/04 | 05
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 - - - - - -
カテゴリー
FC2カウンター
キーワード

Windows_Server VMware_ESX VMware vCenter_Server VMware_Player PowerShell PowerCLI vSphere_Client VirtualCenter Active_Directory vStorage_API Converter Windows 文音 Hyper-V Microsoft_Security_Essentials コズミック☆倶楽部 Windows_8 Backup_Exec VMware_Converter vSphere sora カラオケ なるみん あいひょん SQL_Server Windows_Server_2012 System_Center VCB Red_Hat_Enterprise_Linux Tech_Fielders メモリダンプ System_Recovery ESX ARCserve_Backup Internet_Explorer VMware_vSphere RHEL ジン子 マークス vSphere_CLI VMware_HA Exec Directory Firefox vMotion Oracle Active Symantec Server Backup Sysinternals NTFS Twitter Oracle_Database vCenter_Converter wevtutil コズミック倶楽部 DMC-FZ1000 schtasks XenServer キリン 若手 remi 麗美 Recovery Visual_Studio Windows_Update Office System SE Vista DRS 氷結 スリムス フィット グランダム 掃除 セルシオ 洗濯 のどごし生 洗車 サッポロ ロッキー おやつカンパニー カルディ スパークリングウォーター ベビースター おとなのおつまみ 白石美帆 経済産業省 えびしお corega セキュリティ ついにステップワゴンを契約してしまった 糖質 一番搾り食物繊維 スタローン 東京国際フォーラム スパリゾートハワイアンズ サクセス カーナビ ラガー 人口甘味料 コロン ブラックホーク・ダウン ジョシュ・ハートネット ハワイ 神戸 北野 献血 けんけつちゃん シャンプー台のむこうに デュポン 映画 東京タワー 写真 マッハ ムエタイ はばたき福祉事業団 ワイヤーアクション お茶のチューハイ バルボア キャンプ 万座温泉 夏休み 草津 鬼押し出し園 カーポート 高原 バーベキュー 関西空港 羽田 グレープフルーツ ウォーター ポケモン・スタンプラリー 伊藤園 日本赤十字社  サーバ 雨どい Resource ARCserve_D2D ARCserve_Replication VMFS バックアップ Virtual_Infrastructure SkyDrive vStorag_API OpenOffice.org ジャンプフェスタ XP Word Uptime.exe ULPC OEM ITIL DSP グループポリシー Apache 浜田省吾 Linux VMware_ESXi OneDrive HUAWEI れみ GR5 IP38X/N500 NVR500 バッチ Tween OpenOffice iStorage Windows_Azure AWS robocopy USB2.0 USB CDRW-AB24JL CD CAB CG CR-V DVD CoolMax Brio ATAPI 破損 2008 オレッツァ 修復 圧縮 0x0000007B コマンドライン Gathers Hyperion STOPエラー SAP Paper.li SUPPLEX SweetGrass Tools Thunderbird Replication PCI Kit IZZE IDE NR-7900A NetBackup PC-Success OREZZA エイドリアン 

月別アーカイブ
リンク
RSSフィード